1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
<HTML>
<HEAD>
<META http-equiv="content-type" content="text/html; charset=iso-8859-2">
</HEAD>
<BODY BGCOLOR=WHITE>
<FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>
<P>
<B>Pytanie:</B> Co to jest GCC 2.96 ? Nie mogę tego znaleźć na stronie GNU.
</P>
<P>
<B>Odpowiedź:</B> Przeczytaj <A
HREF="http://gcc.gnu.org/gcc-2.96.html">oficjalną odpowiedź zespołu GNU
GCC.</A>
</P>
<P>
<B>Pytanie:</B> Jaki jest problem z GCC 2.96 ? I z X-ami 3.x ?
</P>
<P>
<B>Odpowiedź:</B>
</P>
<P>Przeczytaj w dokumentacji MySQL:</P>
<P><I> Wskazówki do kompilatora: Kilku z naszych użytkowników zgłosiło losowe
zwisy i uszkodzenie tablicy w binariach MySQL, kompilowanych z gcc
dwa-kropka-dziewięć-sześć na platformie x86 Linux. Chociaż nie byliśmy w stanie
zduplikować tego problemu sami, albo zrozumieć jego właściwej przyczyny,
podejrzewamy, że, z dużym stopniem prawdopodobieństwa, można powiązać ten
problem z kompilatorem. Zamieniając błędne binaria na nasze własne, zawsze
eliminowaliśmy ten problem. </I></P>
<P>
A dla ludzi, którzy regularnie pytają, jakie są dokładnie problemy z gcc 2.96,
moja odpowiedź brzmi: <I>nie wiemy dokładnie.</I> Są różne problemy i coraz
nowe problemy i błędy pojawiają się okresowo. Nie ma <I>jednego
błędu/problemu</I>. Dostajemy różne raporty o błędach, w większości są to
wewnętrzne błędy gcc, błędy składniowe kompilatora w źródłach bądź w źle
skompilowanym kodzie. Wszystkie one są rozwiązywane z użyciem innej wersji gcc.
Rozumiem, że gcc 2.96 ma inne domyślne flagi optymalizacji, które są w
konflikcie z naszym kodem asemblerowym inlline, ale my nie możemy tego zmienić,
a nawet nie chcemy poprawiać ich, skoro działają dobrze z innymi kompilatorami
lub innymi wersjami gcc, a poprawka mogłaby spowodować utratę szybkości
działania programu.
</P>
<P>
Myślę, żę gcc 2.96 powinien być poprawiony, tak by miał opcję zgodności z
innymi wydaniami, ale faceci z redhata odmówili zrobienia tego. Jeśli ktoś jest
zainteresowany - niech zapyta Eugene K., autora avifile, on wiele z nimi na ten
temat korespondował, ponieważ ten sam problem jest z avifile. Ostatecznie
zmienił on źródła avifile tak, aby <I>obchodziły</I> błędy gcc 2.96... My po
prostu nie mamy czsu ani nie jesteśmy zainteresowani robieniem tego.
</P>
<P>
A jeśli chodzi o błąd pipe-in-comment: to tak naprawdę nie jest nasz
błąd. Rozmawialiśmy z jednym z maintainerów gcc i on powiedział, że gcc 2.96 i
3.x wspierają składnię asemblera intela i to powoduje błąd pipe. Ale to
<I>jest</I> błąd, ponieważ gcc <I>po cichu</I>, bez żadnych ostrzeżeń,
ignorowało cały blok asemblerowych instrukcji!
</P>
<P> Inne problemy gcc 3.x pochodzą z błędnej instalacji nagłówków libstdc++ lub
glibc (std_*.h). To nie jest nasza wina. MPlayer kompiluje się i pracuje
poprawnie z wersjami gcc 3.x. <B>Tylko 2.96 jest zepsute</B>, ale to zależy od
wielu elementów środowiska , włączając numer wydania gcc 2.96, włączone opcje
mplayera, itp.
<I>Jeśli wszystko działa u was, używających gcc 2.96, to nie znaczy, że będzie
działało u wszystkich.</I>
</P>
<P><B>Odpowiedź 2:</B></P>
<P>
Przeczytaj także <A HREF="users_against_developers.html">ten</A> tekst !!!</P>
<P>
<B>Pytanie:</B> Nie! Mylicie się! wszystko działa dobrze z gcc 2.96 <I>za
wyjątkiem</I> MPlayera.
</P>
<P>
<B>Odpowiedź:</B>
</P>
<P> Nie. To ty jesteś w błędzie!
Kilka projektów (przeważnie tych, które zawierają wysoko zoptymalizowany kod
inline asemblera) ma problemy z gcc 2.96. Na przykład: avifile, MESA / DRI,
Wine, ffmpeg, lame, NuppelVideo. Ale inne projekty już opracowały sposoby
radzenia sobie z błędami gcc (zmieniając kod, który wywoływał błędy
kompilatora), więc teraz działają dobrze. </P>
<P>
<B>Pytanie:</B> Nie! Mylicie się! Wszystko świetnie działa z gcc 2.96
<I>włącznie z</I> MPlayerem.
</P>
<P>
<B>Odpowiedź:</B>
</P>
Dobrze. Ciesz się. Ale musisz wiedzieć, że to jest uzaleznione od wielu
elementów środowiska, włącznie z numerem wydania gcc 2.96, włączonymi opcjami
mplayera, itp.
<I>Jeśli wszystko działa u cieibe, używającego gcc 2.96, to nie znaczy, że
będzie działało u wszystkich.</I>
To tylko oznacza, że masz szczęście, do chwili, gdzy znajdziesz problem. Ale
nie zapomnij:
<B>Zasada nr 1 użytkowników gcc 2.96: NIGDY NIE ZGŁASZAJ BŁĘDÓW, JEŚLI UŻYWASZ
GCC 2.96</B>
<P>
<B>Pytanie:</B> Ok. Zrozumiałem. Ale chcę spróbować i dowiedzieć się ... jak
skompilować mplayera z gcc 2.96?
</P>
<P>
<B>Odpowiedź:</B> Naprawdę? Jesteś pewien? Ok. Wiesz ... jest pewien sposób:
./configure --disable-gcc-checking
</P>
<P>
<B>Pytanie:</B> Nie! Nie zgadzam się z wami, ponieważ ...
</P>
<P>
<B>Odpowiedź:</B> To nie ma znaczenia. Zachowaj dla siebie swoje uwagi. Nie
jesteśmy zainteresowani opowieściami o gcc 2.96.
</P>
</FONT>
</BODY>
</HTML>
|