Mercurial > hg > CbC > CbC_gcc
annotate NEWS @ 48:9907f3135723
update CbC on GCC from 4.4.2 to 4.4.3.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 07 Feb 2010 17:48:31 +0900 (2010-02-07) |
parents | 3bfb6c00c1e0 |
children |
rev | line source |
---|---|
0 | 1 This file contains information about GCC releases which has been generated |
2 automatically from the online release notes. It covers releases of GCC | |
3 (and the former EGCS project) since EGCS 1.0, on the line of development | |
4 that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, | |
5 see ONEWS. | |
6 | |
7 ====================================================================== | |
8 http://gcc.gnu.org/gcc-4.4/index.html | |
9 GCC 4.4 Release Series | |
10 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
11 October 15, 2009 |
0 | 12 |
13 The [1]GNU project and the GCC developers are pleased to announce the | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
14 release of GCC 4.4.3. |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
15 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
16 This release is a bug-fix release, containing fixes for regressions in |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
17 GCC 4.4.1 relative to previous releases of GCC. |
0 | 18 |
19 Release History | |
20 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
21 GCC 4.4.3 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
22 January 21, 2010 ([2]changes) |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
23 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
24 GCC 4.4.2 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
25 October 15, 2009 ([3]changes) |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
26 |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
27 GCC 4.4.1 |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
28 July 22, 2009 ([4]changes) |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
29 |
0 | 30 GCC 4.4.0 |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
31 April 21, 2009 ([5]changes) |
0 | 32 |
33 References and Acknowledgements | |
34 | |
35 GCC used to stand for the GNU C Compiler, but since the compiler | |
36 supports several other languages aside from C, it now stands for the | |
37 GNU Compiler Collection. | |
38 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
39 A list of [6]successful builds is updated as new information becomes |
0 | 40 available. |
41 | |
42 The GCC developers would like to thank the numerous people that have | |
43 contributed new features, improvements, bug fixes, and other changes as | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
44 well as test results to GCC. This [7]amazing group of volunteers is |
0 | 45 what makes GCC successful. |
46 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
47 For additional information about GCC please refer to the [8]GCC project |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
48 web site or contact the [9]GCC development mailing list. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
49 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
50 To obtain GCC please use [10]our mirror sites or [11]our SVN server. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
51 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
52 Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
53 are also [13]other ways to contact the FSF. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
54 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
55 These pages are maintained by [14]the GCC team. |
0 | 56 |
57 | |
58 For questions related to the use of GCC, please consult these web | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
59 pages and the [15]GCC manuals. If that fails, the |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
60 [16]gcc-help@gcc.gnu.org mailing list might help. |
0 | 61 Please send comments on these web pages and the development of GCC to |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
62 our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
63 All of our lists have [19]public archives. |
0 | 64 |
65 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
66 Floor, Boston, MA 02110, USA. | |
67 | |
68 Verbatim copying and distribution of this entire article is permitted | |
69 in any medium, provided this notice is preserved. | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
70 Last modified 2010-01-21 [20]Valid XHTML 1.0 |
0 | 71 |
72 References | |
73 | |
74 1. http://www.gnu.org/ | |
75 2. http://gcc.gnu.org/gcc-4.4/changes.html | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
76 3. http://gcc.gnu.org/gcc-4.4/changes.html |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
77 4. http://gcc.gnu.org/gcc-4.4/changes.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
78 5. http://gcc.gnu.org/gcc-4.4/changes.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
79 6. http://gcc.gnu.org/gcc-4.4/buildstat.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
80 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
81 8. http://gcc.gnu.org/index.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
82 9. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
83 10. http://gcc.gnu.org/mirrors.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
84 11. http://gcc.gnu.org/svn.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
85 12. mailto:gnu@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
86 13. http://www.gnu.org/home.html#ContactInfo |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
87 14. http://gcc.gnu.org/about.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
88 15. http://gcc.gnu.org/onlinedocs/ |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
89 16. mailto:gcc-help@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
90 17. mailto:gcc@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
91 18. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
92 19. http://gcc.gnu.org/lists.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
93 20. http://validator.w3.org/check/referer |
0 | 94 ====================================================================== |
95 http://gcc.gnu.org/gcc-4.4/changes.html | |
96 GCC 4.4 Release Series | |
97 Changes, New Features, and Fixes | |
98 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
99 The latest release in the 4.4 release series is [1]GCC 4.4.3. |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
100 |
0 | 101 Caveats |
102 | |
103 * __builtin_stdarg_start has been completely removed from GCC. | |
104 Support for <varargs.h> had been deprecated since GCC 4.0. Use | |
105 __builtin_va_start as a replacement. | |
106 * Some of the errors issued by the C++ front end that could be | |
107 downgraded to warnings in previous releases by using -fpermissive | |
108 are now warnings by default. They can be converted into errors by | |
109 using -pedantic-errors. | |
110 * Use of the cpp assertion extension will now emit a warning when | |
111 -Wdeprecated or -pedantic is used. This extension has been | |
112 deprecated for many years, but never warned about. | |
113 * Packed bit-fields of type char were not properly bit-packed on many | |
114 targets prior to GCC 4.4. On these targets, the fix in GCC 4.4 | |
115 causes an ABI change. For example there is no longer a 4-bit | |
116 padding between field a and b in this structure: | |
117 struct foo | |
118 { | |
119 char a:4; | |
120 char b:8; | |
121 } __attribute__ ((packed)); | |
122 There is a new warning to help identify fields that are affected: | |
123 foo.c:5: note: Offset of packed bit-field 'b' has changed in GCC 4.4 | |
124 The warning can be disabled with -Wno-packed-bitfield-compat. | |
125 * On ARM EABI targets, the C++ mangling of the va_list type has been | |
126 changed to conform to the current revision of the EABI. This does | |
127 not affect the libstdc++ library included with GCC. | |
128 * The SCOUNT and POS bits of the MIPS DSP control register are now | |
129 treated as global. Previous versions of GCC treated these fields as | |
130 call-clobbered instead. | |
131 * The MIPS port no longer recognizes the h asm constraint. It was | |
132 necessary to remove this constraint in order to avoid generating | |
133 unpredictable code sequences. | |
134 One of the main uses of the h constraint was to extract the high | |
135 part of a multiplication on 64-bit targets. For example: | |
136 asm ("dmultu\t%1,%2" : "=h" (result) : "r" (x), "r" (y)); | |
137 You can now achieve the same effect using 128-bit types: | |
138 typedef unsigned int uint128_t __attribute__((mode(TI))); | |
139 result = ((uint128_t) x * y) >> 64; | |
140 The second sequence is better in many ways. For example, if x and y | |
141 are constants, the compiler can perform the multiplication at | |
142 compile time. If x and y are not constants, the compiler can | |
143 schedule the runtime multiplication better than it can schedule an | |
144 asm statement. | |
145 * Support for a number of older systems and recently unmaintained or | |
146 untested target ports of GCC has been declared obsolete in GCC 4.4. | |
147 Unless there is activity to revive them, the next release of GCC | |
148 will have their sources permanently removed. | |
149 The following ports for individual systems on particular | |
150 architectures have been obsoleted: | |
151 + Generic a.out on IA32 and m68k (i[34567]86-*-aout*, | |
152 m68k-*-aout*) | |
153 + Generic COFF on ARM, H8300, IA32, m68k and SH (arm-*-coff*, | |
154 armel-*-coff*, h8300-*-*, i[34567]86-*-coff*, m68k-*-coff*, | |
155 sh-*-*). This does not affect other more specific targets | |
156 using the COFF object format on those architectures, or the | |
157 more specific H8300 and SH targets (h8300-*-rtems*, | |
158 h8300-*-elf*, sh-*-elf*, sh-*-symbianelf*, sh-*-linux*, | |
159 sh-*-netbsdelf*, sh-*-rtems*, sh-wrs-vxworks). | |
160 + 2BSD on PDP-11 (pdp11-*-bsd) | |
161 + AIX 4.1 and 4.2 on PowerPC (rs6000-ibm-aix4.[12]*, | |
162 powerpc-ibm-aix4.[12]*) | |
163 + Tuning support for Itanium1 (Merced) variants. Note that code | |
164 tuned for Itanium2 should also run correctly on Itanium1. | |
165 * The protoize and unprotoize utilities have been obsoleted and will | |
166 be removed in GCC 4.5. These utilities have not been installed by | |
167 default since GCC 3.0. | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
168 * Support has been removed for all the [2]configurations obsoleted in |
0 | 169 GCC 4.3. |
170 * Unknown -Wno-* options are now silently ignored by GCC if no other | |
171 diagnostics are issued. If other diagnostics are issued, then GCC | |
172 warns about the unknown options. | |
173 * More information on porting to GCC 4.4 from previous versions of | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
174 GCC can be found in the [3]porting guide for this release. |
0 | 175 |
176 General Optimizer Improvements | |
177 | |
178 * A new command-line switch -findirect-inlining has been added. When | |
179 turned on it allows the inliner to also inline indirect calls that | |
180 are discovered to have known targets at compile time thanks to | |
181 previous inlining. | |
182 * A new command-line switch -ftree-switch-conversion has been added. | |
183 This new pass turns simple initializations of scalar variables in | |
184 switch statements into initializations from a static array, given | |
185 that all the values are known at compile time and the ratio between | |
186 the new array size and the original switch branches does not exceed | |
187 the parameter --param switch-conversion-max-branch-ratio (default | |
188 is eight). | |
189 * A new command-line switch -ftree-builtin-call-dce has been added. | |
190 This optimization eliminates unnecessary calls to certain builtin | |
191 functions when the return value is not used, in cases where the | |
192 calls can not be eliminated entirely because the function may set | |
193 errno. This optimization is on by default at -O2 and above. | |
194 * A new command-line switch -fconserve-stack directs the compiler to | |
195 minimize stack usage even if it makes the generated code slower. | |
196 This affects inlining decisions. | |
197 * When the assembler supports it, the compiler will now emit unwind | |
198 information using assembler .cfi directives. This makes it possible | |
199 to use such directives in inline assembler code. The new option | |
200 -fno-dwarf2-cfi-asm directs the compiler to not use .cfi | |
201 directives. | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
202 * The [4]Graphite branch has been merged. This merge has brought in a |
0 | 203 new framework for loop optimizations based on a polyhedral |
204 intermediate representation. These optimizations apply to all the | |
205 languages supported by GCC. The following new code transformations | |
206 are available in GCC 4.4: | |
207 + -floop-interchange performs loop interchange transformations | |
208 on loops. Interchanging two nested loops switches the inner | |
209 and outer loops. For example, given a loop like: | |
210 DO J = 1, M | |
211 DO I = 1, N | |
212 A(J, I) = A(J, I) * C | |
213 ENDDO | |
214 ENDDO | |
215 | |
216 loop interchange will transform the loop as if the user had | |
217 written: | |
218 DO I = 1, N | |
219 DO J = 1, M | |
220 A(J, I) = A(J, I) * C | |
221 ENDDO | |
222 ENDDO | |
223 | |
224 which can be beneficial when N is larger than the caches, | |
225 because in Fortran, the elements of an array are stored in | |
226 memory contiguously by column, and the original loop iterates | |
227 over rows, potentially creating at each access a cache miss. | |
228 + -floop-strip-mine performs loop strip mining transformations | |
229 on loops. Strip mining splits a loop into two nested loops. | |
230 The outer loop has strides equal to the strip size and the | |
231 inner loop has strides of the original loop within a strip. | |
232 For example, given a loop like: | |
233 DO I = 1, N | |
234 A(I) = A(I) + C | |
235 ENDDO | |
236 | |
237 loop strip mining will transform the loop as if the user had | |
238 written: | |
239 DO II = 1, N, 4 | |
240 DO I = II, min (II + 3, N) | |
241 A(I) = A(I) + C | |
242 ENDDO | |
243 ENDDO | |
244 | |
245 + -floop-block performs loop blocking transformations on loops. | |
246 Blocking strip mines each loop in the loop nest such that the | |
247 memory accesses of the element loops fit inside caches. For | |
248 example, given a loop like: | |
249 DO I = 1, N | |
250 DO J = 1, M | |
251 A(J, I) = B(I) + C(J) | |
252 ENDDO | |
253 ENDDO | |
254 | |
255 loop blocking will transform the loop as if the user had | |
256 written: | |
257 DO II = 1, N, 64 | |
258 DO JJ = 1, M, 64 | |
259 DO I = II, min (II + 63, N) | |
260 DO J = JJ, min (JJ + 63, M) | |
261 A(J, I) = B(I) + C(J) | |
262 ENDDO | |
263 ENDDO | |
264 ENDDO | |
265 ENDDO | |
266 | |
267 which can be beneficial when M is larger than the caches, | |
268 because the innermost loop will iterate over a smaller amount | |
269 of data that can be kept in the caches. | |
270 * A new register allocator has replaced the old one. It is called | |
271 integrated register allocator (IRA) because coalescing, register | |
272 live range splitting, and hard register preferencing are done | |
273 on-the-fly during coloring. It also has better integration with the | |
274 reload pass. IRA is a regional register allocator which uses modern | |
275 Chaitin-Briggs coloring instead of Chow's priority coloring used in | |
276 the old register allocator. More info about IRA internals and | |
277 options can be found in the GCC manuals. | |
278 * A new instruction scheduler and software pipeliner, based on the | |
279 selective scheduling approach, has been added. The new pass | |
280 performs instruction unification, register renaming, substitution | |
281 through register copies, and speculation during scheduling. The | |
282 software pipeliner is able to pipeline non-countable loops. The new | |
283 pass is targeted at scheduling-eager in-order platforms. In GCC 4.4 | |
284 it is available for the Intel Itanium platform working by default | |
285 as the second scheduling pass (after register allocation) at the | |
286 -O3 optimization level. | |
287 * When using -fprofile-generate with a multi-threaded program, the | |
288 profile counts may be slightly wrong due to race conditions. The | |
289 new -fprofile-correction option directs the compiler to apply | |
290 heuristics to smooth out the inconsistencies. By default the | |
291 compiler will give an error message when it finds an inconsistent | |
292 profile. | |
293 * The new -fprofile-dir=PATH option permits setting the directory | |
294 where profile data files are stored when using -fprofile-generate | |
295 and friends, and the directory used when reading profile data files | |
296 using -fprofile-use and friends. | |
297 | |
298 New warning options | |
299 | |
300 * The new -Wframe-larger-than=NUMBER option directs GCC to emit a | |
301 warning if any stack frame is larger than NUMBER bytes. This may be | |
302 used to help ensure that code fits within a limited amount of stack | |
303 space. | |
304 * The new -Wno-mudflap option disables warnings about constructs | |
305 which can not be instrumented when using -fmudflap. | |
306 | |
307 New Languages and Language specific improvements | |
308 | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
309 * Version 3.0 of the [5]OpenMP specification is now supported for the |
0 | 310 C, C++, and Fortran compilers. |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
311 * New character data types, per [6]TR 19769: New character types in |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
312 C, are now supported for the C compiler in -std=gnu99 mode, as |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
313 __CHAR16_TYPE__ and __CHAR32_TYPE__, and for the C++ compiler in |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
314 -std=c++0x and -std=gnu++0x modes, as char16_t and char32_t too. |
0 | 315 |
316 C family | |
317 | |
318 * A new optimize attribute was added to allow programmers to change | |
319 the optimization level and particular optimization options for an | |
320 individual function. You can also change the optimization options | |
321 via the GCC optimize pragma for functions defined after the pragma. | |
322 The GCC push_options pragma and the GCC pop_options pragma allow | |
323 you temporarily save and restore the options used. The GCC | |
324 reset_options pragma restores the options to what was specified on | |
325 the command line. | |
326 * Uninitialized warnings do not require enabling optimization | |
327 anymore, that is, -Wuninitialized can be used together with -O0. | |
328 Nonetheless, the warnings given by -Wuninitialized will probably be | |
329 more accurate if optimization is enabled. | |
330 * -Wparentheses now warns about expressions such as (!x | y) and (!x | |
331 & y). Using explicit parentheses, such as in ((!x) | y), silences | |
332 this warning. | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
333 * -Wsequence-point now warns within if, while,do while and for |
0 | 334 conditions, and within for begin/end expressions. |
335 * A new option -dU is available to dump definitions of preprocessor | |
336 macros that are tested or expanded. | |
337 | |
338 C++ | |
339 | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
340 * [7]Improved experimental support for the upcoming ISO C++ standard, |
0 | 341 C++0x. Including support for auto, inline namespaces, generalized |
342 initializer lists, defaulted and deleted functions, new character | |
343 types, and scoped enums. | |
344 * Those errors that may be downgraded to warnings to build legacy | |
345 code now mention -fpermissive when -fdiagnostics-show-option is | |
346 enabled. | |
347 * -Wconversion now warns if the result of a static_cast to enumeral | |
348 type is unspecified because the value is outside the range of the | |
349 enumeral type. | |
350 * -Wuninitialized now warns if a non-static reference or non-static | |
351 const member appears in a class without constructors. | |
352 * G++ now properly implements value-initialization, so objects with | |
353 an initializer of () and an implicitly defined default constructor | |
354 will be zero-initialized before the default constructor is called. | |
355 | |
356 Runtime Library (libstdc++) | |
357 | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
358 * [8]Improved experimental support for the upcoming ISO C++ standard, |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
359 C++0x, including: |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
360 + Support for <chrono>, <condition_variable>, <cstdatomic>, |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
361 <forward_list>, <initializer_list>, <mutex>, <ratio>, |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
362 <system_error>, and <thread>. |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
363 + unique_ptr, <algorithm> additions, exception propagation, and |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
364 support for the new character types in <string> and <limits>. |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
365 + Existing facilities now exploit initializer lists, defaulted |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
366 and deleted functions, and the newly implemented core C++0x |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
367 features. |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
368 + Some standard containers are more efficient together with |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
369 stateful allocators, i.e., no allocator is constructed on the |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
370 fly at element construction time. |
0 | 371 * Experimental support for non-standard pointer types in containers. |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
372 * The long standing libstdc++/30928 has been fixed for targets |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
373 running glibc 2.10 or later. |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
374 * As usual, many small and larger bug fixes, in particular quite a |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
375 few corner cases in <locale>. |
0 | 376 |
377 Fortran | |
378 | |
379 * GNU Fortran now employs libcpp directly instead of using cc1 as an | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
380 external preprocessor. The [9]-cpp option was added to allow manual |
0 | 381 invocation of the preprocessor without relying on filename |
382 extensions. | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
383 * The [10]-Warray-temporaries option warns about array temporaries |
0 | 384 generated by the compiler, as an aid to optimization. |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
385 * The [11]-fcheck-array-temporaries option has been added, printing a |
0 | 386 notification at run time, when an array temporary had to be created |
387 for an function argument. Contrary to -Warray-temporaries the | |
388 warning is only printed if the array is noncontiguous. | |
389 * Improved generation of DWARF debugging symbols | |
390 * If using an intrinsic not part of the selected standard (via -std= | |
391 and -fall-intrinsics) gfortran will now treat it as if this | |
392 procedure were declared EXTERNAL and try to link to a user-supplied | |
393 procedure. -Wintrinsics-std will warn whenever this happens. The | |
394 now-useless option -Wnonstd-intrinsic was removed. | |
395 * The flag -falign-commons has been added to control the alignment of | |
396 variables in COMMON blocks, which is enabled by default in line | |
397 with previous GCC version. Using -fno-align-commons one can force | |
398 commons to be contiguous in memory as required by the Fortran | |
399 standard, however, this slows down the memory access. The option | |
400 -Walign-commons, which is enabled by default, warns when padding | |
401 bytes were added for alignment. The proper solution is to sort the | |
402 common objects by decreasing storage size, which avoids the | |
403 alignment problems. | |
404 * Fortran 2003 support has been extended: | |
405 + Wide characters (ISO 10646, UCS-4, kind=4) and UTF-8 I/O is | |
406 now supported (except internal reads from/writes to wide | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
407 strings). [12]-fbackslash now supports also \unnnn and |
0 | 408 \Unnnnnnnn to enter Unicode characters. |
409 + Asynchronous I/O (implemented as synchronous I/O) and the | |
410 decimal=, size=, sign=, pad=, blank=, and delim= specifiers | |
411 are now supported in I/O statements. | |
412 + Support for Fortran 2003 structure constructors and for array | |
413 constructor with typespec has been added. | |
414 + Procedure Pointers (but not yet as component in derived types | |
415 and as function results) are now supported. | |
416 + Abstract types, type extension, and type-bound procedures | |
417 (both PROCEDURE and GENERIC but not as operators). Note: As | |
418 CLASS/polymorphyic types are not implemented, type-bound | |
419 procedures with PASS accept as non-standard extension TYPE | |
420 arguments. | |
421 * Fortran 2008 support has been added: | |
422 + The -std=f2008 option and support for the file extensions | |
423 .f2008 and .F2008 has been added. | |
424 + The g0 format descriptor is now supported. | |
425 + The Fortran 2008 mathematical intrinsics ASINH, ACOSH, ATANH, | |
426 ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_*, HYPOT, and ERFC_SCALED | |
427 are now available (some of them existed as GNU extension | |
428 before). Note: The hyperbolic functions are not yet supporting | |
429 complex arguments and the three- argument version of BESSEL_*N | |
430 is not available. | |
431 + The bit intrinsics LEADZ and TRAILZ have been added. | |
432 | |
433 Java (GCJ) | |
434 | |
435 Ada | |
436 | |
437 * The Ada runtime now supports multilibs on many platforms including | |
438 x86_64, SPARC and PowerPC. Their build is enabled by default. | |
439 | |
440 New Targets and Target Specific Improvements | |
441 | |
442 ARM | |
443 | |
444 * GCC now supports optimizing for the Cortex-A9, Cortex-R4 and | |
445 Cortex-R4F processors and has many other improvements to | |
446 optimization for ARM processors. | |
447 * GCC now supports the VFPv3 variant with 16 double-precision | |
448 registers with -mfpu=vfpv3-d16. The option -mfpu=vfp3 has been | |
449 renamed to -mfpu=vfpv3. | |
450 * GCC now supports the -mfix-cortex-m3-ldrd option to work around an | |
451 erratum on Cortex-M3 processors. | |
452 * GCC now supports the __sync_* atomic operations for ARM EABI | |
453 GNU/Linux. | |
454 * The section anchors optimization is now enabled by default when | |
455 optimizing for ARM. | |
456 * GCC now uses a new EABI-compatible profiling interface for EABI | |
457 targets. This requires a function __gnu_mcount_nc, which is | |
458 provided by GNU libc versions 2.8 and later. | |
459 | |
460 AVR | |
461 | |
462 * The -mno-tablejump option has been deprecated because it has the | |
463 same effect as the -fno-jump-tables option. | |
464 * Added support for these new AVR devices: | |
465 + ATA6289 | |
466 + ATtiny13A | |
467 + ATtiny87 | |
468 + ATtiny167 | |
469 + ATtiny327 | |
470 + ATmega8C1 | |
471 + ATmega16C1 | |
472 + ATmega32C1 | |
473 + ATmega8M1 | |
474 + ATmega16M1 | |
475 + ATmega32M1 | |
476 + ATmega32U4 | |
477 + ATmega16HVB | |
478 + ATmega4HVD | |
479 + ATmega8HVD | |
480 + ATmega64C1 | |
481 + ATmega64M1 | |
482 + ATmega16U4 | |
483 + ATmega32U6 | |
484 + ATmega128RFA1 | |
485 + AT90PWM81 | |
486 + AT90SCR100 | |
487 + M3000F | |
488 + M3000S | |
489 + M3001B | |
490 | |
491 IA-32/x86-64 | |
492 | |
493 * Support for Intel AES built-in functions and code generation is | |
494 available via -maes. | |
495 * Support for Intel PCLMUL built-in function and code generation is | |
496 available via -mpclmul. | |
497 * Support for Intel AVX built-in functions and code generation is | |
498 available via -mavx. | |
499 * Automatically align the stack for local variables with alignment | |
500 requirement. | |
501 * GCC can now utilize the SVML library for vectorizing calls to a set | |
502 of C99 functions if -mveclibabi=svml is specified and you link to | |
503 an SVML ABI compatible library. | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
504 * On x86-64, the ABI has been changed in the following cases to |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
505 conform to the x86-64 ABI: |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
506 + Passing/returning structures with flexible array member: |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
507 struct foo |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
508 { |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
509 int i; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
510 int flex[]; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
511 }; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
512 + Passing/returning structures with complex float member: |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
513 struct foo |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
514 { |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
515 int i; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
516 __complex__ float f; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
517 }; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
518 + Passing/returning unions with long double member: |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
519 union foo |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
520 { |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
521 int x; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
522 long double ld; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
523 }; |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
524 Code built with previous versions of GCC that uses any of these is |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
525 not compatible with code built with GCC 4.4.0 or later. |
0 | 526 * A new target attribute was added to allow programmers to change the |
527 target options like -msse2 or -march=k8 for an individual function. | |
528 You can also change the target options via the GCC target pragma | |
529 for functions defined after the pragma. | |
530 * GCC can now be configured with options --with-arch-32, | |
531 --with-arch-64, --with-cpu-32, --with-cpu-64, --with-tune-32 and | |
532 --with-tune-64 to control the default optimization separately for | |
533 32-bit and 64-bit modes. | |
534 | |
535 IA-32/IA64 | |
536 | |
537 * Support for __float128 (TFmode) IEEE quad type and corresponding | |
538 TCmode IEEE complex quad type is available via the soft-fp library | |
539 on IA-32/IA64 targets. This includes basic arithmetic operations | |
540 (addition, subtraction, negation, multiplication and division) on | |
541 __float128 real and TCmode complex values, the full set of IEEE | |
542 comparisons between __float128 values, conversions to and from | |
543 float, double and long double floating point types, as well as | |
544 conversions to and from signed or unsigned integer, signed or | |
545 unsigned long integer and signed or unsigned quad (TImode, IA64 | |
546 only) integer types. Additionally, all operations generate the full | |
547 set of IEEE exceptions and support the full set of IEEE rounding | |
548 modes. | |
549 | |
550 M68K/ColdFire | |
551 | |
552 * GCC now supports instruction scheduling for ColdFire V1, V3 and V4 | |
553 processors. (Scheduling support for ColdFire V2 processors was | |
554 added in GCC 4.3.) | |
555 * GCC now supports the -mxgot option to support programs requiring | |
556 many GOT entries on ColdFire. | |
557 * The m68k-*-linux-gnu target now builds multilibs by default. | |
558 | |
559 MIPS | |
560 | |
561 * MIPS Technologies have extended the original MIPS SVR4 ABI to | |
562 include support for procedure linkage tables (PLTs) and copy | |
563 relocations. These extensions allow GNU/Linux executables to use a | |
564 significantly more efficient code model than the one defined by the | |
565 original ABI. | |
566 GCC support for this code model is available via a new command-line | |
567 option, -mplt. There is also a new configure-time option, | |
568 --with-mips-plt, to make -mplt the default. | |
569 The new code model requires support from the assembler, the linker, | |
570 and the runtime C library. This support is available in binutils | |
571 2.19 and GLIBC 2.9. | |
572 * GCC can now generate MIPS16 code for 32-bit GNU/Linux executables | |
573 and 32-bit GNU/Linux shared libraries. This feature requires GNU | |
574 binutils 2.19 or above. | |
575 * Support for RMI's XLR processor is now available through the | |
576 -march=xlr and -mtune=xlr options. | |
577 * 64-bit targets can now perform 128-bit multiplications inline, | |
578 instead of relying on a libgcc function. | |
579 * Native GNU/Linux toolchains now support -march=native and | |
580 -mtune=native, which select the host processor. | |
581 * GCC now supports the R10K, R12K, R14K and R16K processors. The | |
582 canonical -march= and -mtune= names for these processors are | |
583 r10000, r12000, r14000 and r16000 respectively. | |
584 * GCC can now work around the side effects of speculative execution | |
585 on R10K processors. Please see the documentation of the | |
586 -mr10k-cache-barrier option for details. | |
587 * Support for the MIPS64 Release 2 instruction set has been added. | |
588 The option -march=mips64r2 enables generation of these | |
589 instructions. | |
590 * GCC now supports Cavium Networks' Octeon processor. This support is | |
591 available through the -march=octeon and -mtune=octeon options. | |
592 * GCC now supports STMicroelectronics' Loongson 2E/2F processors. The | |
593 canonical -march= and -mtune= names for these processors are | |
594 loongson2e and loongson2f. | |
595 | |
596 picochip | |
597 | |
598 Picochip is a 16-bit processor. A typical picoChip contains over 250 | |
599 small cores, each with small amounts of memory. There are three | |
600 processor variants (STAN, MEM and CTRL) with different instruction sets | |
601 and memory configurations and they can be chosen using the -mae option. | |
602 | |
603 This port is intended to be a "C" only port. | |
604 | |
605 Power Architecture and PowerPC | |
606 | |
607 * GCC now supports the e300c2, e300c3 and e500mc processors. | |
608 * GCC now supports Xilinx processors with a single-precision FPU. | |
609 * Decimal floating point is now supported for e500 processors. | |
610 | |
611 S/390, zSeries and System z9/z10 | |
612 | |
613 * Support for the IBM System z10 EC/BC processor has been added. When | |
614 using the -march=z10 option, the compiler will generate code making | |
615 use of instructions provided by the General-Instruction-Extension | |
616 Facility and the Execute-Extension Facility. | |
617 | |
618 VxWorks | |
619 | |
620 * GCC now supports the thread-local storage mechanism used on | |
621 VxWorks. | |
622 | |
623 Xtensa | |
624 | |
625 * GCC now supports thread-local storage (TLS) for Xtensa processor | |
626 configurations that include the Thread Pointer option. TLS also | |
627 requires support from the assembler and linker; this support is | |
628 provided in the GNU binutils beginning with version 2.19. | |
629 | |
630 Documentation improvements | |
631 | |
632 Other significant improvements | |
633 | |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
634 GCC 4.4.1 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
635 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
636 This is the [13]list of problem reports (PRs) from GCC's bug tracking |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
637 system that are known to be fixed in the 4.4.1 release. This list might |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
638 not be complete (that is, it is possible that some PRs that have been |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
639 fixed are not listed here). |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
640 |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
641 GCC 4.4.2 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
642 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
643 This is the [14]list of problem reports (PRs) from GCC's bug tracking |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
644 system that are known to be fixed in the 4.4.2 release. This list might |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
645 not be complete (that is, it is possible that some PRs that have been |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
646 fixed are not listed here). |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
647 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
648 GCC 4.4.3 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
649 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
650 This is the [15]list of problem reports (PRs) from GCC's bug tracking |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
651 system that are known to be fixed in the 4.4.3 release. This list might |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
652 not be complete (that is, it is possible that some PRs that have been |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
653 fixed are not listed here). |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
654 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
655 Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
656 are also [17]other ways to contact the FSF. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
657 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
658 These pages are maintained by [18]the GCC team. |
0 | 659 |
660 | |
661 For questions related to the use of GCC, please consult these web | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
662 pages and the [19]GCC manuals. If that fails, the |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
663 [20]gcc-help@gcc.gnu.org mailing list might help. |
0 | 664 Please send comments on these web pages and the development of GCC to |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
665 our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
666 All of our lists have [23]public archives. |
0 | 667 |
668 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
669 Floor, Boston, MA 02110, USA. | |
670 | |
671 Verbatim copying and distribution of this entire article is permitted | |
672 in any medium, provided this notice is preserved. | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
673 Last modified 2010-01-21 [24]Valid XHTML 1.0 |
0 | 674 |
675 References | |
676 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
677 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.3 |
19
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
678 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
679 3. http://gcc.gnu.org/gcc-4.4/porting_to.html |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
680 4. http://gcc.gnu.org/wiki/Graphite |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
681 5. http://openmp.org/wp/openmp-specifications/ |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
682 6. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
683 7. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
684 8. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#id476343 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
685 9. http://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
686 10. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
687 11. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
688 12. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34 |
58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
kent@firefly.cr.ie.u-ryukyu.ac.jp
parents:
0
diff
changeset
|
689 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1 |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
690 14. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
691 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
692 16. mailto:gnu@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
693 17. http://www.gnu.org/home.html#ContactInfo |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
694 18. http://gcc.gnu.org/about.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
695 19. http://gcc.gnu.org/onlinedocs/ |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
696 20. mailto:gcc-help@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
697 21. mailto:gcc@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
698 22. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
699 23. http://gcc.gnu.org/lists.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
700 24. http://validator.w3.org/check/referer |
0 | 701 ====================================================================== |
702 http://gcc.gnu.org/gcc-4.3/index.html | |
703 GCC 4.3 Release Series | |
704 | |
705 January 24, 2009 | |
706 | |
707 The [1]GNU project and the GCC developers are pleased to announce the | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
708 release of GCC 4.3.4. |
0 | 709 |
710 This release is a bug-fix release, containing fixes for regressions in | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
711 GCC 4.3.3 relative to previous releases of GCC. |
0 | 712 |
713 Release History | |
714 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
715 GCC 4.3.4 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
716 August 4, 2009 ([2]changes) |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
717 |
0 | 718 GCC 4.3.3 |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
719 January 24, 2009 ([3]changes) |
0 | 720 |
721 GCC 4.3.2 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
722 August 27, 2008 ([4]changes) |
0 | 723 |
724 GCC 4.3.1 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
725 June 6, 2008 ([5]changes) |
0 | 726 |
727 GCC 4.3.0 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
728 March 5, 2008 ([6]changes) |
0 | 729 |
730 References and Acknowledgements | |
731 | |
732 GCC used to stand for the GNU C Compiler, but since the compiler | |
733 supports several other languages aside from C, it now stands for the | |
734 GNU Compiler Collection. | |
735 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
736 A list of [7]successful builds is updated as new information becomes |
0 | 737 available. |
738 | |
739 The GCC developers would like to thank the numerous people that have | |
740 contributed new features, improvements, bug fixes, and other changes as | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
741 well as test results to GCC. This [8]amazing group of volunteers is |
0 | 742 what makes GCC successful. |
743 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
744 For additional information about GCC please refer to the [9]GCC project |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
745 web site or contact the [10]GCC development mailing list. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
746 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
747 To obtain GCC please use [11]our mirror sites or [12]our SVN server. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
748 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
749 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
750 are also [14]other ways to contact the FSF. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
751 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
752 These pages are maintained by [15]the GCC team. |
0 | 753 |
754 | |
755 For questions related to the use of GCC, please consult these web | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
756 pages and the [16]GCC manuals. If that fails, the |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
757 [17]gcc-help@gcc.gnu.org mailing list might help. |
0 | 758 Please send comments on these web pages and the development of GCC to |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
759 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
760 All of our lists have [20]public archives. |
0 | 761 |
762 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
763 Floor, Boston, MA 02110, USA. | |
764 | |
765 Verbatim copying and distribution of this entire article is permitted | |
766 in any medium, provided this notice is preserved. | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
767 Last modified 2009-10-15 [21]Valid XHTML 1.0 |
0 | 768 |
769 References | |
770 | |
771 1. http://www.gnu.org/ | |
772 2. http://gcc.gnu.org/gcc-4.3/changes.html | |
773 3. http://gcc.gnu.org/gcc-4.3/changes.html | |
774 4. http://gcc.gnu.org/gcc-4.3/changes.html | |
775 5. http://gcc.gnu.org/gcc-4.3/changes.html | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
776 6. http://gcc.gnu.org/gcc-4.3/changes.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
777 7. http://gcc.gnu.org/gcc-4.3/buildstat.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
778 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
779 9. http://gcc.gnu.org/index.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
780 10. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
781 11. http://gcc.gnu.org/mirrors.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
782 12. http://gcc.gnu.org/svn.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
783 13. mailto:gnu@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
784 14. http://www.gnu.org/home.html#ContactInfo |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
785 15. http://gcc.gnu.org/about.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
786 16. http://gcc.gnu.org/onlinedocs/ |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
787 17. mailto:gcc-help@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
788 18. mailto:gcc@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
789 19. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
790 20. http://gcc.gnu.org/lists.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
791 21. http://validator.w3.org/check/referer |
0 | 792 ====================================================================== |
793 http://gcc.gnu.org/gcc-4.3/changes.html | |
794 GCC 4.3 Release Series | |
795 Changes, New Features, and Fixes | |
796 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
797 The latest release in the 4.3 release series is [1]GCC 4.3.4. |
0 | 798 |
799 Caveats | |
800 | |
801 * GCC requires the [2]GMP and [3]MPFR libraries for building all the | |
802 various front-end languages it supports. See the [4]prerequisites | |
803 page for version requirements. | |
804 * ColdFire targets now treat long double as having the same format as | |
805 double. In earlier versions of GCC, they used the 68881 long double | |
806 format instead. | |
807 * The m68k-uclinux target now uses the same calling conventions as | |
808 m68k-linux-gnu. You can select the original calling conventions by | |
809 configuring for m68k-uclinuxoldabi instead. Note that | |
810 m68k-uclinuxoldabi also retains the original 80-bit long double on | |
811 ColdFire targets. | |
812 * The -fforce-mem option has been removed because it has had no | |
813 effect in the last few GCC releases. | |
814 * The i386 -msvr3-shlib option has been removed since it is no longer | |
815 used. | |
816 * Fastcall for i386 has been changed not to pass aggregate arguments | |
817 in registers, following Microsoft compilers. | |
818 * Support for the AOF assembler has been removed from the ARM back | |
819 end; this affects only the targets arm-semi-aof and armel-semi-aof, | |
820 which are no longer recognized. We removed these targets without a | |
821 deprecation period because we discovered that they have been | |
822 unusable since GCC 4.0.0. | |
823 * Support for the TMS320C3x/C4x processor (targets c4x-* and tic4x-*) | |
824 has been removed. This support had been deprecated since GCC 4.0.0. | |
825 * Support for a number of older systems and recently unmaintained or | |
826 untested target ports of GCC has been declared obsolete in GCC 4.3. | |
827 Unless there is activity to revive them, the next release of GCC | |
828 will have their sources permanently removed. | |
829 All GCC ports for the following processor architectures have been | |
830 declared obsolete: | |
831 + Morpho MT (mt-*) | |
832 The following aliases for processor architectures have been | |
833 declared obsolete. Users should use the indicated generic target | |
834 names instead, with compile-time options such as -mcpu or | |
835 configure-time options such as --with-cpu to control the | |
836 configuration more precisely. | |
837 + strongarm*-*-*, ep9312*-*-*, xscale*-*-* (use arm*-*-* | |
838 instead). | |
839 + parisc*-*-* (use hppa*-*-* instead). | |
840 + m680[012]0-*-* (use m68k-*-* instead). | |
841 All GCC ports for the following operating systems have been | |
842 declared obsolete: | |
843 + BeOS (*-*-beos*) | |
844 + kaOS (*-*-kaos*) | |
845 + GNU/Linux using the a.out object format (*-*-linux*aout*) | |
846 + GNU/Linux using version 1 of the GNU C Library | |
847 (*-*-linux*libc1*) | |
848 + Solaris versions before Solaris 7 (*-*-solaris2.[0-6], | |
849 *-*-solaris2.[0-6].*) | |
850 + Miscellaneous System V (*-*-sysv*) | |
851 + WindISS (*-*-windiss*) | |
852 Also, those for some individual systems on particular architectures | |
853 have been obsoleted: | |
854 + UNICOS/mk on DEC Alpha (alpha*-*-unicosmk*) | |
855 + CRIS with a.out object format (cris-*-aout) | |
856 + BSD 4.3 on PA-RISC (hppa1.1-*-bsd*) | |
857 + OSF/1 on PA-RISC (hppa1.1-*-osf*) | |
858 + PRO on PA-RISC (hppa1.1-*-pro*) | |
859 + Sequent PTX on IA32 (i[34567]86-sequent-ptx4*, | |
860 i[34567]86-sequent-sysv4*) | |
861 + SCO Open Server 5 on IA32 (i[34567]86-*-sco3.2v5*) | |
862 + UWIN on IA32 (i[34567]86-*-uwin*) (support for UWIN as a host | |
863 was previously [5]removed in 2001, leaving only the support | |
864 for UWIN as a target now being deprecated) | |
865 + ChorusOS on PowerPC (powerpc-*-chorusos*) | |
866 + All VAX configurations apart from NetBSD and OpenBSD | |
867 (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*) | |
868 * The [6]-Wconversion option has been modified. Its purpose now is to | |
869 warn for implicit conversions that may alter a value. This new | |
870 behavior is available for both C and C++. Warnings about | |
871 conversions between signed and unsigned integers can be disabled by | |
872 using -Wno-sign-conversion. In C++, they are disabled by default | |
873 unless -Wsign-conversion is explicitly requested. The old behavior | |
874 of -Wconversion, that is, warn for prototypes causing a type | |
875 conversion that is different from what would happen to the same | |
876 argument in the absence of a prototype, has been moved to a new | |
877 option -Wtraditional-conversion, which is only available for C. | |
878 * The -m386, -m486, -mpentium and -mpentiumpro tuning options have | |
879 been removed because they were deprecated for more than 3 GCC major | |
880 releases. Use -mtune=i386, -mtune=i486, -mtune=pentium or | |
881 -mtune=pentiumpro as a replacement. | |
882 * The -funsafe-math-optimizations option now automatically turns on | |
883 -fno-trapping-math in addition to -fno-signed-zeros, as it enables | |
884 reassociation and thus may introduce or remove traps. | |
885 * The -ftree-vectorize option is now on by default under -O3. In | |
886 order to generate code for a SIMD extension, it has to be enabled | |
887 as well: use -maltivec for PowerPC platforms and -msse/-msse2 for | |
888 i?86 and x86_64. | |
889 * More information on porting to GCC 4.3 from previous versions of | |
890 GCC can be found in the [7]porting guide for this release. | |
891 | |
892 General Optimizer Improvements | |
893 | |
894 * The GCC middle-end has been integrated with the [8]MPFR library. | |
895 This allows GCC to evaluate and replace at compile-time calls to | |
896 built-in math functions having constant arguments with their | |
897 mathematically equivalent results. In making use of [9]MPFR, GCC | |
898 can generate correct results regardless of the math library | |
899 implementation or floating point precision of the host platform. | |
900 This also allows GCC to generate identical results regardless of | |
901 whether one compiles in native or cross-compile configurations to a | |
902 particular target. The following built-in functions take advantage | |
903 of this new capability: acos, acosh, asin, asinh, atan2, atan, | |
904 atanh, cbrt, cos, cosh, drem, erf, erfc, exp10, exp2, exp, expm1, | |
905 fdim, fma, fmax, fmin, gamma_r, hypot, j0, j1, jn, lgamma_r, log10, | |
906 log1p, log2, log, pow10, pow, remainder, remquo, sin, sincos, sinh, | |
907 tan, tanh, tgamma, y0, y1 and yn. The float and long double | |
908 variants of these functions (e.g. sinf and sinl) are also handled. | |
909 The sqrt and cabs functions with constant arguments were already | |
910 optimized in prior GCC releases. Now they also use [10]MPFR. | |
911 * A new forward propagation pass on RTL was added. The new pass | |
912 replaces several slower transformations, resulting in compile-time | |
913 improvements as well as better code generation in some cases. | |
914 * A new command-line switch -frecord-gcc-switches has been added to | |
915 GCC, although it is only enabled for some targets. The switch | |
916 causes the command line that was used to invoke the compiler to be | |
917 recorded into the object file that is being created. The exact | |
918 format of this recording is target and binary file format | |
919 dependent, but it usually takes the form of a note section | |
920 containing ASCII text. The switch is related to the -fverbose-asm | |
921 switch, but that one only records the information in the assembler | |
922 output file as comments, so the information never reaches the | |
923 object file. | |
924 * The inliner heuristic is now aware of stack frame consumption. New | |
925 command-line parameters --param large-stack-frame and --param | |
926 large-stack-frame-growth can be used to limit stack frame size | |
927 growth caused by inlining. | |
928 * During feedback directed optimizations, the expected block size the | |
929 memcpy, memset and bzero functions operate on is discovered and for | |
930 cases of commonly used small sizes, specialized inline code is | |
931 generated. | |
932 * __builtin_expect no longer requires its argument to be a compile | |
933 time constant. | |
934 * Interprocedural optimization was reorganized to work on functions | |
935 in SSA form. This enables more precise and cheaper dataflow | |
936 analysis and makes writing interprocedural optimizations easier. | |
937 The following improvements have been implemented on top of this | |
938 framework: | |
939 + Pre-inline optimization: Selected local optimization passes | |
940 are run before the inliner (and other interprocedural passes) | |
941 are executed. This significantly improves the accuracy of code | |
942 growth estimates used by the inliner and reduces the overall | |
943 memory footprint for large compilation units. | |
944 + Early inlining (a simple bottom-up inliner pass inlining only | |
945 functions whose body is smaller than the expected call | |
946 overhead) is now executed with the early optimization passes, | |
947 thus inlining already optimized function bodies into an | |
948 unoptimized function that is subsequently optimized by early | |
949 optimizers. This enables the compiler to quickly eliminate | |
950 abstraction penalty in C++ programs. | |
951 + Interprocedural constant propagation now operate on SSA form | |
952 increasing accuracy of the analysis. | |
953 * A new internal representation for GIMPLE statements has been | |
954 contributed, resulting in compile-time memory savings. | |
955 * The vectorizer was enhanced to support vectorization of outer | |
956 loops, intra-iteration parallelism (loop-aware SLP), vectorization | |
957 of strided accesses and loops with multiple data-types. Run-time | |
958 dependency testing using loop versioning was added. The cost model, | |
959 turned on by -fvect-cost-model, was developed. | |
960 | |
961 New Languages and Language specific improvements | |
962 | |
963 * We have added new command-line options | |
964 -finstrument-functions-exclude-function-list and | |
965 -finstrument-functions-exclude-file-list. They provide more control | |
966 over which functions are annotated by the -finstrument-functions | |
967 option. | |
968 | |
969 C family | |
970 | |
971 * Implicit conversions between generic vector types are now only | |
972 permitted when the two vectors in question have the same number of | |
973 elements and compatible element types. (Note that the restriction | |
974 involves compatible element types, not implicitly-convertible | |
975 element types: thus, a vector type with element type int may not be | |
976 implicitly converted to a vector type with element type unsigned | |
977 int.) This restriction, which is in line with specifications for | |
978 SIMD architectures such as AltiVec, may be relaxed using the flag | |
979 -flax-vector-conversions. This flag is intended only as a | |
980 compatibility measure and should not be used for new code. | |
981 * -Warray-bounds has been added and is now enabled by default for | |
982 -Wall . It produces warnings for array subscripts that can be | |
983 determined at compile time to be always out of bounds. | |
984 -Wno-array-bounds will disable the warning. | |
985 * The constructor and destructor function attributes now accept | |
986 optional priority arguments which control the order in which the | |
987 constructor and destructor functions are run. | |
988 * New [11]command-line options -Wtype-limits, | |
989 -Wold-style-declaration, -Wmissing-parameter-type, -Wempty-body, | |
990 -Wclobbered and -Wignored-qualifiers have been added for finer | |
991 control of the diverse warnings enabled by -Wextra. | |
992 * A new function attribute alloc_size has been added to mark up | |
993 malloc style functions. For constant sized allocations this can be | |
994 used to find out the size of the returned pointer using the | |
995 __builtin_object_size() function for buffer overflow checking and | |
996 similar. This supplements the already built-in malloc and calloc | |
997 constant size handling. | |
998 * Integer constants written in binary are now supported as a GCC | |
999 extension. They consist of a prefix 0b or 0B, followed by a | |
1000 sequence of 0 and 1 digits. | |
1001 * A new predefined macro __COUNTER__ has been added. It expands to | |
1002 sequential integral values starting from 0. In conjunction with the | |
1003 ## operator, this provides a convenient means to generate unique | |
1004 identifiers. | |
1005 * A new command-line option -fdirectives-only has been added. It | |
1006 enables a special preprocessing mode which improves the performance | |
1007 of applications like distcc and ccache. | |
1008 * Fixed-point data types and operators have been added. They are | |
1009 based on Chapter 4 of the Embedded-C specification (n1169.pdf). | |
1010 Currently, only MIPS targets are supported. | |
1011 * Decimal floating-point arithmetic based on draft ISO/IEC TR 24732, | |
1012 N1241, is now supported as a GCC extension to C for targets | |
1013 i[34567]86-*-linux-gnu, powerpc*-*-linux-gnu, s390*-ibm-linux-gnu, | |
1014 and x86_64-*-linux-gnu. The feature introduces new data types | |
1015 _Decimal32, _Decimal64, and _Decimal128 with constant suffixes DF, | |
1016 DD, and DL. | |
1017 | |
1018 C++ | |
1019 | |
1020 * [12]Experimental support for the upcoming ISO C++ standard, C++0x. | |
1021 * -Wc++0x-compat has been added and is now enabled by default for | |
1022 -Wall. It produces warnings for constructs whose meaning differs | |
1023 between ISO C++ 1998 and C++0x. | |
1024 * The -Wparentheses option now works for C++ as it does for C. It | |
1025 warns if parentheses are omitted when operators with confusing | |
1026 precedence are nested. It also warns about ambiguous else | |
1027 statements. Since -Wparentheses is enabled by -Wall, this may cause | |
1028 additional warnings with existing C++ code which uses -Wall. These | |
1029 new warnings may be disabled by using -Wall -Wno-parentheses. | |
1030 * The -Wmissing-declarations now works for C++ as it does for C. | |
1031 * The -fvisibility-ms-compat flag was added, to make it easier to | |
1032 port larger projects using shared libraries from Microsoft's Visual | |
1033 Studio to ELF and Mach-O systems. | |
1034 * C++ attribute handling has been overhauled for template arguments | |
1035 (ie dependent types). In particular, __attribute__((aligned(T))); | |
1036 works for C++ types. | |
1037 | |
1038 Runtime Library (libstdc++) | |
1039 | |
1040 * [13]Experimental support for the upcoming ISO C++ standard, C++0x. | |
1041 * Support for TR1 mathematical special functions and regular | |
1042 expressions. ([14]Implementation status of TR1) | |
1043 * Default what implementations give more elaborate exception strings | |
1044 for bad_cast, bad_typeid, bad_exception, and bad_alloc. | |
1045 * Header dependencies have been streamlined, reducing unnecessary | |
1046 includes and pre-processed bloat. | |
1047 * Variadic template implementations of items in <tuple> and | |
1048 <functional>. | |
1049 * An experimental [15]parallel mode has been added. This is a | |
1050 parallel implementation of many C++ Standard library algorithms, | |
1051 like std::accumulate, std::for_each, std::transform, or std::sort, | |
1052 to give but four examples. These algorithms can be substituted for | |
1053 the normal (sequential) libstdc++ algorithms on a piecemeal basis, | |
1054 or all existing algorithms can be transformed via the | |
1055 -D_GLIBCXX_PARALLEL macro. | |
1056 * Debug mode versions of classes in <unordered_set> and | |
1057 <unordered_map>. | |
1058 * Formal deprecation of <ext/hash_set> and <ext/hash_map>, which are | |
1059 now <backward/hash_set> and <backward/hash_map>. This code: | |
1060 #include <ext/hash_set> | |
1061 __gnu_cxx::hash_set<int> s; | |
1062 | |
1063 Can be transformed (in order of preference) to: | |
1064 #include <tr1/unordered_set> | |
1065 std::tr1::unordered_set<int> s; | |
1066 | |
1067 or | |
1068 #include <backward/hash_set> | |
1069 __gnu_cxx::hash_set<int> s; | |
1070 | |
1071 Similar transformations apply to __gnu_cxx::hash_map, | |
1072 __gnu_cxx::hash_multimap, __gnu_cxx::hash_set, | |
1073 __gnu_cxx::hash_multiset. | |
1074 | |
1075 Fortran | |
1076 | |
1077 * Due to the fact that the [16]GMP and [17]MPFR libraries are | |
1078 required for all languages, Fortran is no longer special in this | |
1079 regard and is available by default. | |
1080 * The [18]-fexternal-blas option has been added, which generates | |
1081 calls to BLAS routines for intrinsic matrix operations such as | |
1082 matmul rather than using the built-in algorithms. | |
1083 * Support to give a backtrace (compiler flag -fbacktrace or | |
1084 environment variable GFORTRAN_ERROR_BACKTRACE; on glibc systems | |
1085 only) or a core dump (-fdump-core, GFORTRAN_ERROR_DUMPCORE) when a | |
1086 run-time error occured. | |
1087 * GNU Fortran now defines __GFORTRAN__ when it runs the C | |
1088 preprocessor (CPP). | |
1089 * The [19]-finit-local-zero, -finit-real, -finit-integer, | |
1090 -finit-character, and -finit-logical options have been added, which | |
1091 can be used to initialize local variables. | |
1092 * The intrinsic procedures [20]GAMMA and [21]LGAMMA have been added, | |
1093 which calculate the Gamma function and its logarithm. Use EXTERNAL | |
1094 gamma if you want to use your own gamma function. | |
1095 * GNU Fortran now regards the backslash character as literal (as | |
1096 required by the Fortran 2003 standard); using [22]-fbackslash GNU | |
1097 Fortran interprets backslashes as C-style escape characters. | |
1098 * The [23]interpretation of binary, octal and hexadecimal (BOZ) | |
1099 literal constants has been changed. Before they were always | |
1100 interpreted as integer; now they are bit-wise transferred as | |
1101 argument of INT, REAL, DBLE and CMPLX as required by the Fortran | |
1102 2003 standard, and for real and complex variables in DATA | |
1103 statements or when directly assigned to real and complex variables. | |
1104 Everywhere else and especially in expressions they are still | |
1105 regarded as integer constants. | |
1106 * Fortran 2003 support has been extended: | |
1107 + Intrinsic statements IMPORT, PROTECTED, VALUE and VOLATILE | |
1108 + Pointer intent | |
1109 + Intrinsic module ISO_ENV_FORTRAN | |
1110 + Interoperability with C (ISO C Bindings) | |
1111 + ABSTRACT INTERFACES and PROCEDURE statements (without POINTER | |
1112 attribute) | |
1113 + Fortran 2003 BOZ | |
1114 | |
1115 Java (GCJ) | |
1116 | |
1117 * gcj now uses the Eclipse Java compiler for its Java parsing needs. | |
1118 This enables the use of all 1.5 language features, and fixes most | |
1119 existing front end bugs. | |
1120 * libgcj now supports all 1.5 language features which require runtime | |
1121 support: foreach, enum, annotations, generics, and auto-boxing. | |
1122 * We've made many changes to the tools shipped with gcj. | |
1123 + The old jv-scan tool has been removed. This tool never really | |
1124 worked properly. There is no replacement. | |
1125 + gcjh has been rewritten. Some of its more obscure options no | |
1126 longer work, but are still recognized in an attempt at | |
1127 compatibility. gjavah is a new program with similar | |
1128 functionality but different command-line options. | |
1129 + grmic and grmiregistry have been rewritten. grmid has been | |
1130 added. | |
1131 + gjar replaces the old fastjar. | |
1132 + gjarsigner (used for signing jars), gkeytool (used for key | |
1133 management), gorbd (for CORBA), gserialver (computes | |
1134 serialization UIDs), and gtnameserv (also for CORBA) are now | |
1135 installed. | |
1136 * The ability to dump the contents of the java run time heap to a | |
1137 file for off-line analysis has been added. The heap dumps may be | |
1138 analyzed with the new gc-analyze tool. They may be generated on | |
1139 out-of-memory conditions or on demand and are controlled by the new | |
1140 run time class gnu.gcj.util.GCInfo. | |
1141 * java.util.TimeZone can now read files from /usr/share/zoneinfo to | |
1142 provide correct, updated, timezone information. This means that | |
1143 packagers no longer have to update libgcj when a time zone change | |
1144 is published. | |
1145 | |
1146 New Targets and Target Specific Improvements | |
1147 | |
1148 IA-32/x86-64 | |
1149 | |
1150 * Tuning for Intel Core 2 processors is available via -mtune=core2 | |
1151 and -march=core2. | |
1152 * Tuning for AMD Geode processors is available via -mtune=geode and | |
1153 -march=geode. | |
1154 * Code generation of block move (memcpy) and block set (memset) was | |
1155 rewritten. GCC can now pick the best algorithm (loop, unrolled | |
1156 loop, instruction with rep prefix or a library call) based on the | |
1157 size of the block being copied and the CPU being optimized for. A | |
1158 new option -minline-stringops-dynamically has been added. With this | |
1159 option string operations of unknown size are expanded such that | |
1160 small blocks are copied by in-line code, while for large blocks a | |
1161 library call is used. This results in faster code than | |
1162 -minline-all-stringops when the library implementation is capable | |
1163 of using cache hierarchy hints. The heuristic choosing the | |
1164 particular algorithm can be overwritten via -mstringop-strategy. | |
1165 Newly also memset of values different from 0 is inlined. | |
1166 * GCC no longer places the cld instruction before string operations. | |
1167 Both i386 and x86-64 ABI documents mandate the direction flag to be | |
1168 clear at the entry of a function. It is now invalid to set the flag | |
1169 in asm statement without reseting it afterward. | |
1170 * Support for SSSE3 built-in functions and code generation are | |
1171 available via -mssse3. | |
1172 * Support for SSE4.1 built-in functions and code generation are | |
1173 available via -msse4.1. | |
1174 * Support for SSE4.2 built-in functions and code generation are | |
1175 available via -msse4.2. | |
1176 * Both SSE4.1 and SSE4.2 support can be enabled via -msse4. | |
1177 * A new set of options -mpc32, -mpc64 and -mpc80 have been added to | |
1178 allow explicit control of x87 floating point precision. | |
1179 * Support for __float128 (TFmode) IEEE quad type and corresponding | |
1180 TCmode IEEE complex quad type is available via the soft-fp library | |
1181 on x86_64 targets. This includes basic arithmetic operations | |
1182 (addition, subtraction, negation, multiplication and division) on | |
1183 __float128 real and TCmode complex values, the full set of IEEE | |
1184 comparisons between __float128 values, conversions to and from | |
1185 float, double and long double floating point types, as well as | |
1186 conversions to and from signed or unsigned integer, signed or | |
1187 unsigned long integer and signed or unsigned quad (TImode) integer | |
1188 types. Additionally, all operations generate the full set of IEEE | |
1189 exceptions and support the full set of IEEE rounding modes. | |
1190 * GCC can now utilize the ACML library for vectorizing calls to a set | |
1191 of C99 functions on x86_64 if -mveclibabi=acml is specified and you | |
1192 link to an ACML ABI compatible library. | |
1193 | |
1194 ARM | |
1195 | |
1196 * Compiler and Library support for Thumb-2 and the ARMv7 architecture | |
1197 has been added. | |
1198 | |
1199 CRIS | |
1200 | |
1201 New features | |
1202 | |
1203 * Compiler and Library support for the CRIS v32 architecture, as | |
1204 found in Axis Communications ETRAX FS and ARTPEC-3 chips, has been | |
1205 added. | |
1206 | |
1207 Configuration changes | |
1208 | |
1209 * The cris-*-elf target now includes support for CRIS v32, including | |
1210 libraries, through the -march=v32 option. | |
1211 * A new crisv32-*-elf target defaults to generate code for CRIS v32. | |
1212 * A new crisv32-*-linux* target defaults to generate code for CRIS | |
1213 v32. | |
1214 * The cris-*-aout target has been obsoleted. | |
1215 | |
1216 Improved support for built-in functions | |
1217 | |
1218 * GCC can now use the lz and swapwbr instructions to implement the | |
1219 __builtin_clz, __builtin_ctz and __builtin_ffs family of functions. | |
1220 * __builtin_bswap32 is now implemented using the swapwb instruction, | |
1221 when available. | |
1222 | |
1223 m68k and ColdFire | |
1224 | |
1225 New features | |
1226 | |
1227 * Support for several new ColdFire processors has been added. You can | |
1228 generate code for them using the new -mcpu option. | |
1229 * All targets now support ColdFire processors. | |
1230 * m68k-uclinux targets have improved support for C++ constructors and | |
1231 destructors, and for shared libraries. | |
1232 * It is now possible to set breakpoints on the first or last line of | |
1233 a function, even if there are no statements on that line. | |
1234 | |
1235 Optimizations | |
1236 | |
1237 * Support for sibling calls has been added. | |
1238 * More use is now made of the ColdFire mov3q instruction. | |
1239 * __builtin_clz is now implemented using the ff1 ColdFire | |
1240 instruction, when available. | |
1241 * GCC now honors the -m68010 option. 68010 code now uses clr rather | |
1242 than move to zero volatile memory. | |
1243 * 68020 targets and above can now use symbol(index.size*scale) | |
1244 addresses for indexed array accesses. Earlier compilers would | |
1245 always load the symbol into a base register first. | |
1246 | |
1247 Configuration changes | |
1248 | |
1249 * All m68k and ColdFire targets now allow the default processor to be | |
1250 set at configure time using --with-cpu. | |
1251 * A --with-arch configuration option has been added. This option | |
1252 allows you to restrict a target to ColdFire or non-ColdFire | |
1253 processors. | |
1254 | |
1255 Preprocessor macros | |
1256 | |
1257 * An __mcfv*__ macro is now defined for all ColdFire targets. | |
1258 (Earlier versions of GCC only defined __mcfv4e__.) | |
1259 * __mcf_cpu_*, __mcf_family_* and __mcffpu__ macros have been added. | |
1260 * All targets now define __mc68010 and __mc68010__ when generating | |
1261 68010 code. | |
1262 | |
1263 Command-line changes | |
1264 | |
1265 * New command-line options -march, -mcpu, -mtune and -mhard-float | |
1266 have been added. These options apply to both m68k and ColdFire | |
1267 targets. | |
1268 * -mno-short, -mno-bitfield and -mno-rtd are now accepted as negative | |
1269 versions of -mshort, etc. | |
1270 * -fforce-addr has been removed. It is now ignored by the compiler. | |
1271 | |
1272 Other improvements | |
1273 | |
1274 * ColdFire targets now try to maintain a 4-byte-aligned stack where | |
1275 possible. | |
1276 * m68k-uclinux targets now try to avoid situations that lead to the | |
1277 load-time error: BINFMT_FLAT: reloc outside program. | |
1278 | |
1279 MIPS | |
1280 | |
1281 Changes to existing configurations | |
1282 | |
1283 * libffi and libjava now support all three GNU/Linux ABIs: o32, n32 | |
1284 and n64. Every GNU/Linux configuration now builds these libraries | |
1285 by default. | |
1286 * GNU/Linux configurations now generate -mno-shared code unless | |
1287 overridden by -fpic, -fPIC, -fpie or -fPIE. | |
1288 * mipsisa32*-linux-gnu configurations now generate hard-float code by | |
1289 default, just like other mipsisa32* and mips*-linux-gnu | |
1290 configurations. You can build a soft-float version of any | |
1291 mips*-linux-gnu configuration by passing --with-float=soft to | |
1292 configure. | |
1293 * mips-wrs-vxworks now supports run-time processes (RTPs). | |
1294 | |
1295 Changes to existing command-line options | |
1296 | |
1297 * The -march and -mtune options no longer accept 24k as a processor | |
1298 name. Please use 24kc, 24kf2_1 or 24kf1_1 instead. | |
1299 * The -march and -mtune options now accept 24kf2_1, 24kef2_1 and | |
1300 34kf2_1 as synonyms for 24kf, 24kef and 34kf respectively. The | |
1301 options also accept 24kf1_1, 24kef1_1 and 34kf1_1 as synonyms for | |
1302 24kx, 24kex and 34kx. | |
1303 | |
1304 New configurations | |
1305 | |
1306 GCC now supports the following configurations: | |
1307 * mipsisa32r2*-linux-gnu*, which generates MIPS32 revision 2 code by | |
1308 default. Earlier releases also recognized this configuration, but | |
1309 they treated it in the same way as mipsisa32*-linux-gnu*. Note that | |
1310 you can customize any mips*-linux-gnu* configuration to a | |
1311 particular ISA or processor by passing an appropriate --with-arch | |
1312 option to configure. | |
1313 * mipsisa*-sde-elf*, which provides compatibility with MIPS | |
1314 Technologies' SDE toolchains. The configuration uses the SDE | |
1315 libraries by default, but you can use it like other newlib-based | |
1316 ELF configurations by passing --with-newlib to configure. It is the | |
1317 only configuration besides mips64vr*-elf* to build MIPS16 as well | |
1318 as non-MIPS16 libraries. | |
1319 * mipsisa*-elfoabi*, which is similar to the general mipsisa*-elf* | |
1320 configuration, but uses the o32 and o64 ABIs instead of the 32-bit | |
1321 and 64-bit forms of the EABI. | |
1322 | |
1323 New processors and application-specific extensions | |
1324 | |
1325 * Support for the SmartMIPS ASE is available through the new | |
1326 -msmartmips option. | |
1327 * Support for revision 2 of the DSP ASE is available through the new | |
1328 -mdspr2 option. A new preprocessor macro called __mips_dsp_rev | |
1329 indicates the revision of the ASE in use. | |
1330 * Support for the 4KS and 74K families of processors is available | |
1331 through the -march and -mtune options. | |
1332 | |
1333 Improved support for built-in functions | |
1334 | |
1335 * GCC can now use load-linked, store-conditional and sync | |
1336 instructions to implement atomic built-in functions such as | |
1337 __sync_fetch_and_add. The memory reference must be 4 bytes wide for | |
1338 32-bit targets and either 4 or 8 bytes wide for 64-bit targets. | |
1339 * GCC can now use the clz and dclz instructions to implement the | |
1340 __builtin_ctz and __builtin_ffs families of functions. | |
1341 * There is a new __builtin___clear_cache function for flushing the | |
1342 instruction cache. GCC expands this function inline on MIPS32 | |
1343 revision 2 targets, otherwise it calls the function specified by | |
1344 -mcache-flush-func. | |
1345 | |
1346 MIPS16 improvements | |
1347 | |
1348 * GCC can now compile objects that contain a mixture of MIPS16 and | |
1349 non-MIPS16 code. There are two new attributes, mips16 and nomips16, | |
1350 for specifying which mode a function should use. | |
1351 * A new option called -minterlink-mips16 makes non-MIPS16 code | |
1352 link-compatible with MIPS16 code. | |
1353 * After many bug fixes, the long-standing MIPS16 -mhard-float support | |
1354 should now work fairly reliably. | |
1355 * GCC can now use the MIPS16e save and restore instructions. | |
1356 * -fsection-anchors now works in MIPS16 mode. MIPS16 code compiled | |
1357 with -G0 -fsection-anchors is often smaller than code compiled with | |
1358 -G8. However, please note that you must usually compile all objects | |
1359 in your application with the same -G option; see the documentation | |
1360 of -G for details. | |
1361 * A new option called-mcode-readable specifies which instructions are | |
1362 allowed to load from the code segment. -mcode-readable=yes is the | |
1363 default and says that any instruction may load from the code | |
1364 segment. The other alternatives are -mcode-readable=pcrel, which | |
1365 says that only PC-relative MIPS16 instructions may load from the | |
1366 code segment, and -mcode-readable=no, which says that no | |
1367 instruction may do so. Please see the documentation for more | |
1368 details, including example uses. | |
1369 | |
1370 Small-data improvements | |
1371 | |
1372 There are three new options for controlling small data: | |
1373 * -mno-extern-sdata, which disables small-data accesses for | |
1374 externally-defined variables. Code compiled with -Gn | |
1375 -mno-extern-sdata will be link-compatible with any -G setting | |
1376 between -G0 and -Gn inclusive. | |
1377 * -mno-local-sdata, which disables the use of small-data sections for | |
1378 data that is not externally visible. This option can be a useful | |
1379 way of reducing small-data usage in less performance-critical parts | |
1380 of an application. | |
1381 * -mno-gpopt, which disables the use of the $gp register while still | |
1382 honoring the -G limit when placing externally-visible data. This | |
1383 option implies -mno-extern-sdata and -mno-local-sdata and it can be | |
1384 useful in situations where $gp does not necessarily hold the | |
1385 expected value. | |
1386 | |
1387 Miscellaneous improvements | |
1388 | |
1389 * There is a new option called -mbranch-cost for tweaking the | |
1390 perceived cost of branches. | |
1391 * If GCC is configured to use a version of GAS that supports the | |
1392 .gnu_attribute directive, it will use that directive to record | |
1393 certain properties of the output code. .gnu_attribute is new to GAS | |
1394 2.18. | |
1395 * There are two new function attributes, near and far, for overriding | |
1396 the command-line setting of -mlong-calls on a function-by-function | |
1397 basis. | |
1398 * -mfp64, which previously required a 64-bit target, now works with | |
1399 MIPS32 revision 2 targets as well. The mipsisa*-elfoabi* and | |
1400 mipsisa*-sde-elf* configurations provide suitable library support. | |
1401 * GCC now recognizes the -mdmx and -mmt options and passes them down | |
1402 to the assembler. It does nothing else with the options at present. | |
1403 | |
1404 SPU (Synergistic Processor Unit) of the Cell Broadband Engine Architecture | |
1405 (BEA) | |
1406 | |
1407 * Support has been added for this new architecture. | |
1408 | |
1409 RS6000 (POWER/PowerPC) | |
1410 | |
1411 * Support for the PowerPC 750CL paired-single instructions has been | |
1412 added with a new powerpc-*-linux*paired* target configuration. It | |
1413 is enabled by an associated -mpaired option and can be accessed | |
1414 using new built-in functions. | |
1415 * Support for auto-detecting architecture and system configuration to | |
1416 auto-select processor optimization tuning. | |
1417 * Support for VMX on AIX 5.3 has been added. | |
1418 * Support for AIX Version 6.1 has been added. | |
1419 | |
1420 S/390, zSeries and System z9 | |
1421 | |
1422 * Support for the IBM System z9 EC/BC processor (z9 GA3) has been | |
1423 added. When using the -march=z9-ec option, the compiler will | |
1424 generate code making use of instructions provided by the decimal | |
1425 floating point facility and the floating point conversion facility | |
1426 (pfpo). Besides the instructions used to implement decimal floating | |
1427 point operations these facilities also contain instructions to move | |
1428 between general purpose and floating point registers and to modify | |
1429 and copy the sign-bit of floating point values. | |
1430 * When the -march=z9-ec option is used the new | |
1431 -mhard-dfp/-mno-hard-dfp options can be used to specify whether the | |
1432 decimal floating point hardware instructions will be used or not. | |
1433 If none of them is given the hardware support is enabled by | |
1434 default. | |
1435 * The -mstack-guard option can now be omitted when using stack | |
1436 checking via -mstack-size in order to let GCC choose a sensible | |
1437 stack guard value according to the frame size of each function. | |
1438 * Various changes to improve performance of generated code have been | |
1439 implemented, including: | |
1440 + The condition code set by an add logical with carry | |
1441 instruction is now available for overflow checks like: a + b + | |
1442 carry < b. | |
1443 + The test data class instruction is now used to implement | |
1444 sign-bit and infinity checks of binary and decimal floating | |
1445 point numbers. | |
1446 | |
1447 Xtensa | |
1448 | |
1449 * Stack unwinding for exception handling now uses by default a | |
1450 specialized version of DWARF unwinding. This is not | |
1451 binary-compatible with the setjmp/longjmp (sjlj) unwinding used for | |
1452 Xtensa with previous versions of GCC. | |
1453 * For Xtensa processors that include the Conditional Store option, | |
1454 the built-in functions for atomic memory access are now implemented | |
1455 using S32C1I instructions. | |
1456 * If the Xtensa NSA option is available, GCC will use it to implement | |
1457 the __builtin_ctz and __builtin_clz functions. | |
1458 | |
1459 Documentation improvements | |
1460 | |
1461 * Existing libstdc++ documentation has been edited and restructured | |
1462 into a single DocBook XML manual. The results can be viewed online | |
1463 [24]here. | |
1464 | |
1465 Other significant improvements | |
1466 | |
1467 * The compiler's --help command-line option has been extended so that | |
1468 it now takes an optional set of arguments. These arguments restrict | |
1469 the information displayed to specific classes of command-line | |
1470 options, and possibly only a subset of those options. It is also | |
1471 now possible to replace the descriptive text associated with each | |
1472 displayed option with an indication of its current value, or for | |
1473 binary options, whether it has been enabled or disabled. | |
1474 Here are some examples. The following will display all the options | |
1475 controlling warning messages: | |
1476 --help=warnings | |
1477 | |
1478 Whereas this will display all the undocumented, target specific | |
1479 options: | |
1480 --help=target,undocumented | |
1481 | |
1482 This sequence of commands will display the binary optimizations | |
1483 that are enabled by -O3: | |
1484 gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts | |
1485 gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts | |
1486 diff /tmp/O2-opts /tmp/O3-opts | grep enabled | |
1487 | |
1488 * The configure options --with-pkgversion and --with-bugurl have been | |
1489 added. These allow distributors of GCC to include a | |
1490 distributor-specific string in manuals and --version output and to | |
1491 specify the URL for reporting bugs in their versions of GCC. | |
1492 | |
1493 GCC 4.3.1 | |
1494 | |
1495 This is the [25]list of problem reports (PRs) from GCC's bug tracking | |
1496 system that are known to be fixed in the 4.3.1 release. This list might | |
1497 not be complete (that is, it is possible that some PRs that have been | |
1498 fixed are not listed here). | |
1499 | |
1500 Target Specific Changes | |
1501 | |
1502 IA-32/x86-64 | |
1503 | |
1504 ABI changes | |
1505 | |
1506 * Starting with GCC 4.3.1, decimal floating point variables are | |
1507 aligned to their natural boundaries when they are passed on the | |
1508 stack for i386. | |
1509 | |
1510 Command-line changes | |
1511 | |
1512 * Starting with GCC 4.3.1, the -mcld option has been added to | |
1513 automatically generate a cld instruction in the prologue of | |
1514 functions that use string instructions. This option is used for | |
1515 backward compatibility on some operating systems and can be enabled | |
1516 by default for 32-bit x86 targets by configuring GCC with the | |
1517 --enable-cld configure option. | |
1518 | |
1519 GCC 4.3.2 | |
1520 | |
1521 This is the [26]list of problem reports (PRs) from GCC's bug tracking | |
1522 system that are known to be fixed in the 4.3.2 release. This list might | |
1523 not be complete (that is, it is possible that some PRs that have been | |
1524 fixed are not listed here). | |
1525 | |
1526 GCC 4.3.3 | |
1527 | |
1528 This is the [27]list of problem reports (PRs) from GCC's bug tracking | |
1529 system that are known to be fixed in the 4.3.3 release. This list might | |
1530 not be complete (that is, it is possible that some PRs that have been | |
1531 fixed are not listed here). | |
1532 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1533 GCC 4.3.4 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1534 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1535 This is the [28]list of problem reports (PRs) from GCC's bug tracking |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1536 system that are known to be fixed in the 4.3.4 release. This list might |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1537 not be complete (that is, it is possible that some PRs that have been |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1538 fixed are not listed here). |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1539 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1540 Please send FSF & GNU inquiries & questions to [29]gnu@gnu.org. There |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1541 are also [30]other ways to contact the FSF. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1542 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1543 These pages are maintained by [31]the GCC team. |
0 | 1544 |
1545 | |
1546 For questions related to the use of GCC, please consult these web | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1547 pages and the [32]GCC manuals. If that fails, the |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1548 [33]gcc-help@gcc.gnu.org mailing list might help. |
0 | 1549 Please send comments on these web pages and the development of GCC to |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1550 our developer mailing list at [34]gcc@gnu.org or [35]gcc@gcc.gnu.org. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1551 All of our lists have [36]public archives. |
0 | 1552 |
1553 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1554 Floor, Boston, MA 02110, USA. | |
1555 | |
1556 Verbatim copying and distribution of this entire article is permitted | |
1557 in any medium, provided this notice is preserved. | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1558 Last modified 2009-08-13 [37]Valid XHTML 1.0 |
0 | 1559 |
1560 References | |
1561 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1562 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.4 |
0 | 1563 2. http://gmplib.org/ |
1564 3. http://www.mpfr.org/ | |
1565 4. http://gcc.gnu.org/install/prerequisites.html | |
1566 5. http://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html | |
1567 6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options | |
1568 7. http://gcc.gnu.org/gcc-4.3/porting_to.html | |
1569 8. http://www.mpfr.org/ | |
1570 9. http://www.mpfr.org/ | |
1571 10. http://www.mpfr.org/ | |
1572 11. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html | |
1573 12. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html | |
1574 13. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html | |
1575 14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#m anual.intro.status.standard.tr1 | |
1576 15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html | |
1577 16. http://gmplib.org/ | |
1578 17. http://www.mpfr.org/ | |
1579 18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options | |
1580 19. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 | |
1581 20. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/GAMMA.html | |
1582 21. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html | |
1583 22. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html | |
1584 23. http://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html | |
1585 24. http://gcc.gnu.org/onlinedocs/libstdc++/ | |
1586 25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1 | |
1587 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2 | |
1588 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1589 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1590 29. mailto:gnu@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1591 30. http://www.gnu.org/home.html#ContactInfo |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1592 31. http://gcc.gnu.org/about.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1593 32. http://gcc.gnu.org/onlinedocs/ |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1594 33. mailto:gcc-help@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1595 34. mailto:gcc@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1596 35. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1597 36. http://gcc.gnu.org/lists.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1598 37. http://validator.w3.org/check/referer |
0 | 1599 ====================================================================== |
1600 http://gcc.gnu.org/gcc-4.2/index.html | |
1601 GCC 4.2 Release Series | |
1602 | |
1603 May 19, 2008 | |
1604 | |
1605 The [1]GNU project and the GCC developers are pleased to announce the | |
1606 release of GCC 4.2.4. | |
1607 | |
1608 This release is a bug-fix release, containing fixes for regressions in | |
1609 GCC 4.2.3 relative to previous releases of GCC. | |
1610 | |
1611 Release History | |
1612 | |
1613 GCC 4.2.4 | |
1614 May 19, 2008 ([2]changes) | |
1615 | |
1616 GCC 4.2.3 | |
1617 February 1, 2008 ([3]changes) | |
1618 | |
1619 GCC 4.2.2 | |
1620 October 7, 2007 ([4]changes) | |
1621 | |
1622 GCC 4.2.1 | |
1623 July 18, 2007 ([5]changes) | |
1624 | |
1625 GCC 4.2.0 | |
1626 May 13, 2007 ([6]changes) | |
1627 | |
1628 References and Acknowledgements | |
1629 | |
1630 GCC used to stand for the GNU C Compiler, but since the compiler | |
1631 supports several other languages aside from C, it now stands for the | |
1632 GNU Compiler Collection. | |
1633 | |
1634 A list of [7]successful builds is updated as new information becomes | |
1635 available. | |
1636 | |
1637 The GCC developers would like to thank the numerous people that have | |
1638 contributed new features, improvements, bug fixes, and other changes as | |
1639 well as test results to GCC. This [8]amazing group of volunteers is | |
1640 what makes GCC successful. | |
1641 | |
1642 For additional information about GCC please refer to the [9]GCC project | |
1643 web site or contact the [10]GCC development mailing list. | |
1644 | |
1645 To obtain GCC please use [11]our mirror sites or [12]our SVN server. | |
1646 | |
1647 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There | |
1648 are also [14]other ways to contact the FSF. | |
1649 | |
1650 These pages are maintained by [15]the GCC team. | |
1651 | |
1652 | |
1653 For questions related to the use of GCC, please consult these web | |
1654 pages and the [16]GCC manuals. If that fails, the | |
1655 [17]gcc-help@gcc.gnu.org mailing list might help. | |
1656 Please send comments on these web pages and the development of GCC to | |
1657 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. | |
1658 All of our lists have [20]public archives. | |
1659 | |
1660 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1661 Floor, Boston, MA 02110, USA. | |
1662 | |
1663 Verbatim copying and distribution of this entire article is permitted | |
1664 in any medium, provided this notice is preserved. | |
1665 Last modified 2008-10-04 [21]Valid XHTML 1.0 | |
1666 | |
1667 References | |
1668 | |
1669 1. http://www.gnu.org/ | |
1670 2. http://gcc.gnu.org/gcc-4.2/changes.html | |
1671 3. http://gcc.gnu.org/gcc-4.2/changes.html | |
1672 4. http://gcc.gnu.org/gcc-4.2/changes.html | |
1673 5. http://gcc.gnu.org/gcc-4.2/changes.html | |
1674 6. http://gcc.gnu.org/gcc-4.2/changes.html | |
1675 7. http://gcc.gnu.org/gcc-4.2/buildstat.html | |
1676 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
1677 9. http://gcc.gnu.org/index.html | |
1678 10. mailto:gcc@gcc.gnu.org | |
1679 11. http://gcc.gnu.org/mirrors.html | |
1680 12. http://gcc.gnu.org/svn.html | |
1681 13. mailto:gnu@gnu.org | |
1682 14. http://www.gnu.org/home.html#ContactInfo | |
1683 15. http://gcc.gnu.org/about.html | |
1684 16. http://gcc.gnu.org/onlinedocs/ | |
1685 17. mailto:gcc-help@gcc.gnu.org | |
1686 18. mailto:gcc@gnu.org | |
1687 19. mailto:gcc@gcc.gnu.org | |
1688 20. http://gcc.gnu.org/lists.html | |
1689 21. http://validator.w3.org/check/referer | |
1690 ====================================================================== | |
1691 http://gcc.gnu.org/gcc-4.2/changes.html | |
1692 GCC 4.2 Release Series | |
1693 Changes, New Features, and Fixes | |
1694 | |
1695 Caveats | |
1696 | |
1697 * GCC no longer accepts the -fshared-data option. This option has had | |
1698 no effect in any GCC 4 release; the targets to which the option | |
1699 used to apply had been removed before GCC 4.0. | |
1700 | |
1701 General Optimizer Improvements | |
1702 | |
1703 * New command-line options specify the possible relationships among | |
1704 parameters and between parameters and global data. For example, | |
1705 -fargument-noalias-anything specifies that arguments do not alias | |
1706 any other storage. | |
1707 Each language will automatically use whatever option is required by | |
1708 the language standard. You should not need to use these options | |
1709 yourself. | |
1710 | |
1711 New Languages and Language specific improvements | |
1712 | |
1713 * [1]OpenMP is now supported for the C, C++ and Fortran compilers. | |
1714 * New command-line options -fstrict-overflow and -Wstrict-overflow | |
1715 have been added. -fstrict-overflow tells the compiler that it may | |
1716 assume that the program follows the strict signed overflow | |
1717 semantics permitted for the language: for C and C++ this means that | |
1718 the compiler may assume that signed overflow does not occur. For | |
1719 example, a loop like | |
1720 for (i = 1; i > 0; i *= 2) | |
1721 | |
1722 is presumably intended to continue looping until i overflows. With | |
1723 -fstrict-overflow, the compiler may assume that signed overflow | |
1724 will not occur, and transform this into an infinite loop. | |
1725 -fstrict-overflow is turned on by default at -O2, and may be | |
1726 disabled via -fno-strict-overflow. The -Wstrict-overflow option may | |
1727 be used to warn about cases where the compiler assumes that signed | |
1728 overflow will not occur. It takes five different levels: | |
1729 -Wstrict-overflow=1 to 5. See the [2]documentation for details. | |
1730 -Wstrict-overflow=1 is enabled by -Wall. | |
1731 * The new command-line option -fno-toplevel-reorder directs GCC to | |
1732 emit top-level functions, variables, and asm statements in the same | |
1733 order that they appear in the input file. This is intended to | |
1734 support existing code which relies on a particular ordering (for | |
1735 example, code which uses top-level asm statements to switch | |
1736 sections). For new code, it is generally better to use function and | |
1737 variable attributes. The -fno-toplevel-reorder option may be used | |
1738 for most cases which currently use -fno-unit-at-a-time. The | |
1739 -fno-unit-at-a-time option will be removed in some future version | |
1740 of GCC. If you know of a case which requires -fno-unit-at-a-time | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1741 which is not fixed by -fno-toplevel-reorder, please open a bug |
0 | 1742 report. |
1743 | |
1744 C family | |
1745 | |
1746 * The pragma redefine_extname will now macro expand its tokens for | |
1747 compatibility with SunPRO. | |
1748 * In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct | |
1749 GCC to handle inline functions as specified in the C99 standard. In | |
1750 preparation for this, GCC 4.2 will warn about any use of non-static | |
1751 inline functions in gnu99 or c99 mode. This new warning may be | |
1752 disabled with the new gnu_inline function attribute or the new | |
1753 -fgnu89-inline command-line option. Also, GCC 4.2 and later will | |
1754 define one of the preprocessor macros __GNUC_GNU_INLINE__ or | |
1755 __GNUC_STDC_INLINE__ to indicate the semantics of inline functions | |
1756 in the current compilation. | |
1757 * A new command-line option -Waddress has been added to warn about | |
1758 suspicious uses of memory addresses as, for example, using the | |
1759 address of a function in a conditional expression, and comparisons | |
1760 against the memory address of a string literal. This warning is | |
1761 enabled by -Wall. | |
1762 | |
1763 C++ | |
1764 | |
1765 * C++ visibility handling has been overhauled. | |
1766 Restricted visiblity is propagated from classes to members, from | |
1767 functions to local statics, and from templates and template | |
1768 arguments to instantiations, unless the latter has explicitly | |
1769 declared visibility. | |
1770 The visibility attribute for a class must come between the | |
1771 class-key and the name, not after the closing brace. | |
1772 Attributes are now allowed for enums and elaborated-type-specifiers | |
1773 that only declare a type. | |
1774 Members of the anonymous namespace are now local to a particular | |
1775 translation unit, along with any other declarations which use them, | |
1776 though they are still treated as having external linkage for | |
1777 language semantics. | |
1778 * The (undocumented) extension which permitted templates with default | |
1779 arguments to be bound to template template parameters with fewer | |
1780 parameters has been removed. For example: | |
1781 template <template <typename> class C> | |
1782 void f(C<double>) {} | |
1783 | |
1784 template <typename T, typename U = int> | |
1785 struct S {}; | |
1786 | |
1787 template void f(S<double>); | |
1788 | |
1789 is no longer accepted by G++. The reason this code is not accepted | |
1790 is that S is a template with two parameters; therefore, it cannot | |
1791 be bound to C which has only one parameter. | |
1792 * The <?, >?, <?=, and >?= operators, deprecated in previous GCC | |
1793 releases, have been removed. | |
1794 * The command-line option -fconst-strings, deprecated in previous GCC | |
1795 releases, has been removed. | |
1796 * The configure variable enable-__cxa_atexit is now enabled by | |
1797 default for more targets. Enabling this variable is necessary in | |
1798 order for static destructors to be executed in the correct order, | |
1799 but it depends upon the presence of a non-standard C library in the | |
1800 target library in order to work. The variable is now enabled for | |
1801 more targets which are known to have suitable C libraries. | |
1802 * -Wextra will produce warnings for if statements with a semicolon as | |
1803 the only body, to catch code like: | |
1804 if (a); | |
1805 return 1; | |
1806 return 0; | |
1807 | |
1808 To suppress the warning in valid cases, use { } instead. | |
1809 * The C++ frontend now also produces strict aliasing warnings when | |
1810 -fstrict-aliasing -Wstrict-aliasing is in effect. | |
1811 | |
1812 Runtime Library (libstdc++) | |
1813 | |
1814 * Added support for TR1 <random>, <complex>, and C compatibility | |
1815 headers. In addition, a lock-free version of shared_ptr was | |
1816 contributed as part of Phillip Jordan's Google Summer of Code | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1817 project on lock-free containers. ([3]Implementation status of TR1) |
0 | 1818 * In association with the Summer of Code work on lock-free |
1819 containers, the interface for atomic builtins was adjusted, | |
1820 creating simpler alternatives for non-threaded code paths. Also, | |
1821 usage was consolidated and all elements were moved from namespace | |
1822 std to namespace__gnu_cxx. Affected interfaces are the functions | |
1823 __exchange_and_add, __atomic_add, and the objects __mutex, | |
1824 __recursive_mutex, and __scoped_lock. | |
1825 * Support for versioning weak symbol names via namespace association | |
1826 was added. However, as this changes the names of exported symbols, | |
1827 this is turned off by default in the current ABI. Intrepid users | |
1828 can enable this feature by using | |
1829 --enable-symvers=gnu-versioned-namespace during configuration. | |
1830 * Revised, simplified, and expanded policy-based associative | |
1831 containers, including data types for tree and trie forms | |
1832 (basic_tree, tree, trie), lists (list_update), and both | |
1833 collision-chaining and probing hash-based containers | |
1834 (basic_hash_table, cc_hash_table, gp_hash_table). More details per | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1835 the [4]documentation. |
0 | 1836 * The implementation of the debug mode was modified, whereby the |
1837 debug namespaces were nested inside of namespace std and namespace | |
1838 __gnu_cxx in order to resolve some long standing corner cases | |
1839 involving name lookup. Debug functionality from the policy-based | |
1840 data structures was consolidated and enabled with the single macro, | |
1841 _GLIBCXX_DEBUG. See PR 26142 for more information. | |
1842 * Added extensions for type traits: __conditional_type, | |
1843 __numeric_traits, __add_unsigned, __removed_unsigned, __enable_if. | |
1844 * Added a typelist implementation for compile-time meta-programming. | |
1845 Elements for typelist construction and operation can be found | |
1846 within namespace __gnu_cxx::typelist. | |
1847 * Added a new allocator, __gnu_cxx::throw_allocator, for testing | |
1848 exception-safety. | |
1849 * Enabled library-wide visibility control, allowing -fvisibility to | |
1850 be used. | |
1851 * Consolidated all nested namespaces and the conversion of | |
1852 __gnu_internal implementation-private details to anonymous | |
1853 namespaces whenever possible. | |
1854 * Implemented LWG resolutions DR 431 and DR 538. | |
1855 | |
1856 Fortran | |
1857 | |
1858 * Support for allocatable components has been added (TR 15581 and | |
1859 Fortran 2003). | |
1860 * Support for the Fortran 2003 streaming IO extension has been added. | |
1861 * The GNU Fortran compiler now uses 4-byte record markers by default | |
1862 for unformatted files to be compatible with g77 and most other | |
1863 compilers. The implementation allows for records greater than 2 GB | |
1864 and is compatible with several other compilers. Older versions of | |
1865 gfortran used 8-byte record markers by default (on most systems). | |
1866 In order to change the length of the record markers, e.g. to read | |
1867 unformatted files created by older gfortran versions, the | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1868 [5]-frecord-marker=8 option can be used. |
0 | 1869 |
1870 Java (GCJ) | |
1871 | |
1872 * A new command-line option -static-libgcj has been added for targets | |
1873 that use a linker compatible with GNU Binutils. As its name | |
1874 implies, this causes libgcj to be linked statically. In some cases | |
1875 this causes the resulting executable to start faster and use less | |
1876 memory than if the shared version of libgcj were used. However | |
1877 caution should be used as it can also cause essential parts of the | |
1878 library to be omitted. Some of these issues are discussed in: | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1879 [6]http://gcc.gnu.org/wiki/Statically_linking_libgcj |
0 | 1880 * fastjar is no longer bundled with GCC. To build libgcj, you will |
1881 need either InfoZIP (both zip and unzip) or an external jar | |
1882 program. In the former case, the GCC build will install a jar shell | |
1883 script that is based on InfoZIP and provides the same functionality | |
1884 as fastjar. | |
1885 | |
1886 New Targets and Target Specific Improvements | |
1887 | |
1888 IA-32/x86-64 | |
1889 | |
1890 * -mtune=generic can now be used to generate code running well on | |
1891 common x86 chips. This includes AMD Athlon, AMD Opteron, Intel | |
1892 Pentium-M, Intel Pentium 4 and Intel Core 2. | |
1893 * -mtune=native and -march=native will produce code optimized for the | |
1894 host architecture as detected using the cpuid instruction. | |
1895 * Added a new command-line option -fstackrealign and and | |
1896 __attribute__ ((force_align_arg_pointer)) to realign the stack at | |
1897 runtime. This allows functions compiled with a vector-aligned stack | |
1898 to be invoked from legacy objects that keep only word-alignment. | |
1899 | |
1900 SPARC | |
1901 | |
1902 * The default CPU setting has been changed from V7 to V9 in 32-bit | |
1903 mode on Solaris 7 and above. This is already the case in 64-bit | |
1904 mode. It can be overridden by specifying --with-cpu at configure | |
1905 time. | |
1906 * Back-end support of built-in functions for atomic memory access has | |
1907 been implemented. | |
1908 * Support for the Sun UltraSPARC T1 (Niagara) processor has been | |
1909 added. | |
1910 | |
1911 M32C | |
1912 | |
1913 * Various bug fixes have made some functions (notably, functions | |
1914 returning structures) incompatible with previous releases. | |
1915 Recompiling all libraries is recommended. Note that code quality | |
1916 has considerably improved since 4.1, making a recompile even more | |
1917 beneficial. | |
1918 | |
1919 MIPS | |
1920 | |
1921 * Added support for the Broadcom SB-1A core. | |
1922 | |
1923 IA-64 | |
1924 | |
1925 * Added support for IA-64 data and control speculation. By default | |
1926 speculation is enabled only during second scheduler pass. A number | |
1927 of machine flags was introduced to control the usage of speculation | |
1928 for both scheduler passes. | |
1929 | |
1930 HPPA | |
1931 | |
1932 * Added Java language support (libffi and libjava) for 32-bit HP-UX | |
1933 11 target. | |
1934 | |
1935 Obsolete Systems | |
1936 | |
1937 Documentation improvements | |
1938 | |
1939 PDF Documentation | |
1940 | |
1941 * A make pdf target has been added to the top-level makefile, | |
1942 enabling automated production of PDF documentation files. | |
1943 (Front-ends external to GCC should modify their Make-lang.in file | |
1944 to add a lang.pdf: target.) | |
1945 | |
1946 Other significant improvements | |
1947 | |
1948 Build system improvements | |
1949 | |
1950 * All the components of the compiler are now bootstrapped by default. | |
1951 This improves the resilience to bugs in the system compiler or | |
1952 binary compatibility problems, as well as providing better testing | |
1953 of GCC 4.2 itself. In addition, if you build the compiler from a | |
1954 combined tree, the assembler, linker, etc. will also be | |
1955 bootstrapped (i.e. built with themselves). | |
1956 You can disable this behavior, and go back to the pre-GCC 4.2 set | |
1957 up, by configuring GCC with --disable-bootstrap. | |
1958 * The rules that configure follows to find target tools resemble more | |
1959 closely the locations that the built compiler will search. In | |
1960 addition, you can use the new configure option --with-target-tools | |
1961 to specify where to find the target tools used during the build, | |
1962 without affecting what the built compiler will use. | |
1963 This can be especially useful when building packages of GCC. For | |
1964 example, you may want to build GCC with GNU as or ld, even if the | |
1965 resulting compiler to work with the native assembler and linker. To | |
1966 do so, you can use --with-target-tools to point to the native | |
1967 tools. | |
1968 | |
1969 Incompatible changes to the build system | |
1970 | |
1971 * Front-ends external to GCC should modify their Make-lang.in file to | |
1972 replace double-colon rules (e.g. dvi::) with normal rules (like | |
1973 lang.dvi:). Front-end makefile hooks do not use double-colon rules | |
1974 anymore. | |
1975 * Up to GCC 4.1, a popular way to specify the target tools used | |
1976 during the build was to create directories named gas, binutils, | |
1977 etc. in the build tree, and create links to the tools from there. | |
1978 This does not work any more when the compiler is bootstrapped. The | |
1979 new configure option --with-target-tools provides a better way to | |
1980 achieve the same effect, and works for all native and cross | |
1981 settings. | |
1982 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1983 Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1984 are also [8]other ways to contact the FSF. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1985 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1986 These pages are maintained by [9]the GCC team. |
0 | 1987 |
1988 | |
1989 For questions related to the use of GCC, please consult these web | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1990 pages and the [10]GCC manuals. If that fails, the |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1991 [11]gcc-help@gcc.gnu.org mailing list might help. |
0 | 1992 Please send comments on these web pages and the development of GCC to |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1993 our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
1994 All of our lists have [14]public archives. |
0 | 1995 |
1996 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1997 Floor, Boston, MA 02110, USA. | |
1998 | |
1999 Verbatim copying and distribution of this entire article is permitted | |
2000 in any medium, provided this notice is preserved. | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2001 Last modified 2009-11-08 [15]Valid XHTML 1.0 |
0 | 2002 |
2003 References | |
2004 | |
2005 1. http://gcc.gnu.org/projects/gomp/ | |
2006 2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2007 3. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2008 4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2009 5. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2010 6. http://gcc.gnu.org/wiki/Statically_linking_libgcj |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2011 7. mailto:gnu@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2012 8. http://www.gnu.org/home.html#ContactInfo |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2013 9. http://gcc.gnu.org/about.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2014 10. http://gcc.gnu.org/onlinedocs/ |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2015 11. mailto:gcc-help@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2016 12. mailto:gcc@gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2017 13. mailto:gcc@gcc.gnu.org |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2018 14. http://gcc.gnu.org/lists.html |
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
2019 15. http://validator.w3.org/check/referer |
0 | 2020 ====================================================================== |
2021 http://gcc.gnu.org/gcc-4.1/index.html | |
2022 GCC 4.1 Release Series | |
2023 | |
2024 February 13, 2007 | |
2025 | |
2026 The [1]GNU project and the GCC developers are pleased to announce the | |
2027 release of GCC 4.1.2. | |
2028 | |
2029 This release is a bug-fix release, containing fixes for regressions in | |
2030 GCC 4.1.1 relative to previous releases of GCC. | |
2031 | |
2032 Release History | |
2033 | |
2034 GCC 4.1.2 | |
2035 February 13, 2007 ([2]changes) | |
2036 | |
2037 GCC 4.1.1 | |
2038 May 24, 2006 ([3]changes) | |
2039 | |
2040 GCC 4.1.0 | |
2041 February 28, 2006 ([4]changes) | |
2042 | |
2043 References and Acknowledgements | |
2044 | |
2045 GCC used to stand for the GNU C Compiler, but since the compiler | |
2046 supports several other languages aside from C, it now stands for the | |
2047 GNU Compiler Collection. | |
2048 | |
2049 A list of [5]successful builds is updated as new information becomes | |
2050 available. | |
2051 | |
2052 The GCC developers would like to thank the numerous people that have | |
2053 contributed new features, improvements, bug fixes, and other changes as | |
2054 well as test results to GCC. This [6]amazing group of volunteers is | |
2055 what makes GCC successful. | |
2056 | |
2057 For additional information about GCC please refer to the [7]GCC project | |
2058 web site or contact the [8]GCC development mailing list. | |
2059 | |
2060 To obtain GCC please use [9]our mirror sites or [10]our SVN server. | |
2061 | |
2062 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
2063 are also [12]other ways to contact the FSF. | |
2064 | |
2065 These pages are maintained by [13]the GCC team. | |
2066 | |
2067 | |
2068 For questions related to the use of GCC, please consult these web | |
2069 pages and the [14]GCC manuals. If that fails, the | |
2070 [15]gcc-help@gcc.gnu.org mailing list might help. | |
2071 Please send comments on these web pages and the development of GCC to | |
2072 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
2073 All of our lists have [18]public archives. | |
2074 | |
2075 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
2076 Floor, Boston, MA 02110, USA. | |
2077 | |
2078 Verbatim copying and distribution of this entire article is permitted | |
2079 in any medium, provided this notice is preserved. | |
2080 Last modified 2008-10-04 [19]Valid XHTML 1.0 | |
2081 | |
2082 References | |
2083 | |
2084 1. http://www.gnu.org/ | |
2085 2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 | |
2086 3. http://gcc.gnu.org/gcc-4.1/changes.html | |
2087 4. http://gcc.gnu.org/gcc-4.1/changes.html | |
2088 5. http://gcc.gnu.org/gcc-4.1/buildstat.html | |
2089 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
2090 7. http://gcc.gnu.org/index.html | |
2091 8. mailto:gcc@gcc.gnu.org | |
2092 9. http://gcc.gnu.org/mirrors.html | |
2093 10. http://gcc.gnu.org/svn.html | |
2094 11. mailto:gnu@gnu.org | |
2095 12. http://www.gnu.org/home.html#ContactInfo | |
2096 13. http://gcc.gnu.org/about.html | |
2097 14. http://gcc.gnu.org/onlinedocs/ | |
2098 15. mailto:gcc-help@gcc.gnu.org | |
2099 16. mailto:gcc@gnu.org | |
2100 17. mailto:gcc@gcc.gnu.org | |
2101 18. http://gcc.gnu.org/lists.html | |
2102 19. http://validator.w3.org/check/referer | |
2103 ====================================================================== | |
2104 http://gcc.gnu.org/gcc-4.1/changes.html | |
2105 GCC 4.1 Release Series | |
2106 Changes, New Features, and Fixes | |
2107 | |
2108 The latest release in the 4.1 release series is [1]GCC 4.1.2. | |
2109 | |
2110 Caveats | |
2111 | |
2112 General Optimizer Improvements | |
2113 | |
2114 * GCC now has infrastructure for inter-procedural optimizations and | |
2115 the following inter-procedural optimizations are implemented: | |
2116 + Profile guided inlining. When doing profile feedback guided | |
2117 optimization, GCC can now use the profile to make better | |
2118 informed decisions on whether inlining of a function is | |
2119 profitable or not. This means that GCC will no longer inline | |
2120 functions at call sites that are not executed very often, and | |
2121 that functions at hot call sites are more likely to be | |
2122 inlined. | |
2123 A new parameter min-inline-recursive-probability is also now | |
2124 available to throttle recursive inlining of functions with | |
2125 small average recursive depths. | |
2126 + Discovery of pure and const functions, a form of side-effects | |
2127 analysis. While older GCC releases could also discover such | |
2128 special functions, the new IPA-based pass runs earlier so that | |
2129 the results are available to more optimizers. The pass is also | |
2130 simply more powerful than the old one. | |
2131 + Analysis of references to static variables and type escape | |
2132 analysis, also forms of side-effects analysis. The results of | |
2133 these passes allow the compiler to be less conservative about | |
2134 call-clobbered variables and references. This results in more | |
2135 redundant loads being eliminated and in making static | |
2136 variables candidates for register promotion. | |
2137 + Improvement of RTL-based alias analysis. The results of type | |
2138 escape analysis are fed to the RTL type-based alias analyzer, | |
2139 allowing it to disambiguate more memory references. | |
2140 + Interprocedural constant propagation and function versioning. | |
2141 This pass looks for functions that are always called with the | |
2142 same constant value for one or more of the function arguments, | |
2143 and propagates those constants into those functions. | |
2144 + GCC will now eliminate static variables whose usage was | |
2145 optimized out. | |
2146 + -fwhole-program --combine can now be used to make all | |
2147 functions in program static allowing whole program | |
2148 optimization. As an exception, the main function and all | |
2149 functions marked with the new externally_visible attribute are | |
2150 kept global so that programs can link with runtime libraries. | |
2151 * GCC can now do a form of partial dead code elimination (PDCE) that | |
2152 allows code motion of expressions to the paths where the result of | |
2153 the expression is actually needed. This is not always a win, so the | |
2154 pass has been limited to only consider profitable cases. Here is an | |
2155 example: | |
2156 int foo (int *, int *); | |
2157 int | |
2158 bar (int d) | |
2159 { | |
2160 int a, b, c; | |
2161 b = d + 1; | |
2162 c = d + 2; | |
2163 a = b + c; | |
2164 if (d) | |
2165 { | |
2166 foo (&b, &c); | |
2167 a = b + c; | |
2168 } | |
2169 printf ("%d\n", a); | |
2170 } | |
2171 | |
2172 The a = b + c can be sunk to right before the printf. Normal code | |
2173 sinking will not do this, it will sink the first one above into the | |
2174 else-branch of the conditional jump, which still gives you two | |
2175 copies of the code. | |
2176 * GCC now has a value range propagation pass. This allows the | |
2177 compiler to eliminate bounds checks and branches. The results of | |
2178 the pass can also be used to accurately compute branch | |
2179 probabilities. | |
2180 * The pass to convert PHI nodes to straight-line code (a form of | |
2181 if-conversion for GIMPLE) has been improved significantly. The two | |
2182 most significant improvements are an improved algorithm to | |
2183 determine the order in which the PHI nodes are considered, and an | |
2184 improvement that allow the pass to consider if-conversions of basic | |
2185 blocks with more than two predecessors. | |
2186 * Alias analysis improvements. GCC can now differentiate between | |
2187 different fields of structures in Tree-SSA's virtual operands form. | |
2188 This lets stores/loads from non-overlapping structure fields not | |
2189 conflict. A new algorithm to compute points-to sets was contributed | |
2190 that can allows GCC to see now that p->a and p->b, where p is a | |
2191 pointer to a structure, can never point to the same field. | |
2192 * Various enhancements to auto-vectorization: | |
2193 + Incrementally preserve SSA form when vectorizing. | |
2194 + Incrementally preserve loop-closed form when vectorizing. | |
2195 + Improvements to peeling for alignment: generate better code | |
2196 when the misalignment of an access is known at compile time, | |
2197 or when different accesses are known to have the same | |
2198 misalignment, even if the misalignment amount itself is | |
2199 unknown. | |
2200 + Consider dependence distance in the vectorizer. | |
2201 + Externalize generic parts of data reference analysis to make | |
2202 this analysis available to other passes. | |
2203 + Vectorization of conditional code. | |
2204 + Reduction support. | |
2205 * GCC can now partition functions in sections of hot and cold code. | |
2206 This can significantly improve performance due to better | |
2207 instruction cache locality. This feature works best together with | |
2208 profile feedback driven optimization. | |
2209 * A new pass to avoid saving of unneeded arguments to the stack in | |
2210 vararg functions if the compiler can prove that they will not be | |
2211 needed. | |
2212 * Transition of basic block profiling to tree level implementation | |
2213 has been completed. The new implementation should be considerably | |
2214 more reliable (hopefully avoiding profile mismatch errors when | |
2215 using -fprofile-use or -fbranch-probabilities) and can be used to | |
2216 drive higher level optimizations, such as inlining. | |
2217 The -ftree-based-profiling command-line option was removed and | |
2218 -fprofile-use now implies disabling old RTL level loop optimizer | |
2219 (-fno-loop-optimize). Speculative prefetching optimization | |
2220 (originally enabled by -fspeculative-prefetching) was removed. | |
2221 | |
2222 New Languages and Language specific improvements | |
2223 | |
2224 C and Objective-C | |
2225 | |
2226 * The old Bison-based C and Objective-C parser has been replaced by a | |
2227 new, faster hand-written recursive-descent parser. | |
2228 | |
2229 Ada | |
2230 | |
2231 * The build infrastructure for the Ada runtime library and tools has | |
2232 been changed to be better integrated with the rest of the build | |
2233 infrastructure of GCC. This should make doing cross builds of Ada a | |
2234 bit easier. | |
2235 | |
2236 C++ | |
2237 | |
2238 * ARM-style name-injection of friend declarations is no longer the | |
2239 default. For example: | |
2240 struct S { | |
2241 friend void f(); | |
2242 }; | |
2243 | |
2244 void g() { f(); } | |
2245 will not be accepted; instead a declaration of f will need to be | |
2246 present outside of the scope of S. The new -ffriend-injection | |
2247 option will enable the old behavior. | |
2248 * The (undocumented) extension which permitted templates with default | |
2249 arguments to be bound to template template parameters with fewer | |
2250 parameters has been deprecated, and will be removed in the next | |
2251 major release of G++. For example: | |
2252 template <template <typename> class C> | |
2253 void f(C<double>) {} | |
2254 | |
2255 template <typename T, typename U = int> | |
2256 struct S {}; | |
2257 | |
2258 template void f(S<double>); | |
2259 | |
2260 makes use of the deprecated extension. The reason this code is not | |
2261 valid ISO C++ is that S is a template with two parameters; | |
2262 therefore, it cannot be bound to C which has only one parameter. | |
2263 | |
2264 Runtime Library (libstdc++) | |
2265 | |
2266 * Optimization work: | |
2267 + A new implementation of std::search_n is provided, better | |
2268 performing in case of random access iterators. | |
2269 + Added further efficient specializations of istream functions, | |
2270 i.e., character array and string extractors. | |
2271 + Other smaller improvements throughout. | |
2272 * Policy-based associative containers, designed for high-performance, | |
2273 flexibility and semantic safety are delivered in ext/pb_assoc. | |
2274 * A versatile string class, __gnu_cxx::__versa_string, providing | |
2275 facilities conforming to the standard requirements for | |
2276 basic_string, is delivered in <ext/vstring.h>. In particular: | |
2277 + Two base classes are provided: the default one avoids | |
2278 reference counting and is optimized for short strings; the | |
2279 alternate one, still uses it while improving in a few low | |
2280 level areas (e.g., alignment). See vstring_fwd.h for some | |
2281 useful typedefs. | |
2282 + Various algorithms have been rewritten (e.g., replace), the | |
2283 code streamlined and simple optimizations added. | |
2284 + Option 3 of DR 431 is implemented for both available bases, | |
2285 thus improving the support for stateful allocators. | |
2286 * As usual, many bugs have been fixed (e.g., libstdc++/13583, | |
2287 libstdc++/23953) and LWG resolutions put into effect for the first | |
2288 time (e.g., DR 280, DR 464, N1780 recommendations for DR 233, TR1 | |
2289 Issue 6.19). The implementation status of TR1 is now tracked in the | |
2290 docs in tr1.html. | |
2291 | |
2292 Objective-C++ | |
2293 | |
2294 * A new language front end for Objective-C++ has been added. This | |
2295 language allows users to mix the object oriented features of | |
2296 Objective-C with those of C++. | |
2297 | |
2298 Java (GCJ) | |
2299 | |
2300 * Core library (libgcj) updates based on GNU Classpath 0.15 - 0.19 | |
2301 features (plus some 0.20 bug-fixes) | |
2302 + Networking | |
2303 o The java.net.HttpURLConnection implementation no longer | |
2304 buffers the entire response body in memory. This means | |
2305 that response bodies larger than available memory can now | |
2306 be handled. | |
2307 + (N)IO | |
2308 o NIO FileChannel.map implementation, fast bulk put | |
2309 implementation for DirectByteBuffer (speeds up this | |
2310 method 10x). | |
2311 o FileChannel.lock() and FileChannel.force() implemented. | |
2312 + XML | |
2313 o gnu.xml fix for nodes created outside a namespace | |
2314 context. | |
2315 o Add support for output indenting and | |
2316 cdata-section-elements output instruction in | |
2317 xml.transform. | |
2318 o xml.xpath corrections for cases where elements/attributes | |
2319 might have been created in non-namespace-aware mode. | |
2320 Corrections to handling of XSL variables and minor | |
2321 conformance updates. | |
2322 + AWT | |
2323 o GNU JAWT implementation, the AWT Native Interface, which | |
2324 allows direct access to native screen resources from | |
2325 within a Canvas's paint method. GNU Classpath Examples | |
2326 comes with a Demo, see libjava/classpath/examples/README. | |
2327 o awt.datatransfer updated to 1.5 with support for | |
2328 FlavorEvents. The gtk+ awt peers now allow copy/paste of | |
2329 text, images, URIs/files and serialized objects with | |
2330 other applications and tracking clipboard change events | |
2331 with gtk+ 2.6 (for gtk+ 2.4 only text and serialized | |
2332 objects are supported). A GNU Classpath Examples | |
2333 datatransfer Demo was added to show the new | |
2334 functionality. | |
2335 o Split gtk+ awt peers event handling in two threads and | |
2336 improve gdk lock handling (solves several awt lock ups). | |
2337 o Speed up awt Image loading. | |
2338 o Better gtk+ scrollbar peer implementation when using gtk+ | |
2339 >= 2.6. | |
2340 o Handle image loading errors correctly for gdkpixbuf and | |
2341 MediaTracker. | |
2342 o Better handle GDK lock. Properly prefix gtkpeer native | |
2343 functions (cp_gtk). | |
2344 o GdkGraphics2D has been updated to use Cairo 0.5.x or | |
2345 higher. | |
2346 o BufferedImage and GtkImage rewrites. All image drawing | |
2347 operations should now work correctly (flipping requires | |
2348 gtk+ >= 2.6) | |
2349 o Future Graphics2D, image and text work is documented at: | |
2350 [2]http://developer.classpath.org/mediation/ClasspathGrap | |
2351 hicsImagesText | |
2352 o When gtk+ 2.6 or higher is installed the default log | |
2353 handler will produce stack traces whenever a WARNING, | |
2354 CRITICAL or ERROR message is produced. | |
2355 + Free Swing | |
2356 o The RepaintManager has been reworked for more efficient | |
2357 painting, especially for large GUIs. | |
2358 o The layout manager OverlayLayout has been implemented, | |
2359 the BoxLayout has been rewritten to make use of the | |
2360 SizeRequirements utility class and caching for more | |
2361 efficient layout. | |
2362 o Improved accessibility support. | |
2363 o Significant progress has been made in the implementation | |
2364 of the javax.swing.plaf.metal package, with most UI | |
2365 delegates in a working state now. Please test this with | |
2366 your own applications and provide feedback that will help | |
2367 us to improve this package. | |
2368 o The GUI demo (gnu.classpath.examples.swing.Demo) has been | |
2369 extended to highlight various features in our Free Swing | |
2370 implementation. And it includes a look and feel switcher | |
2371 for Metal (default), Ocean and GNU themes. | |
2372 o The javax.swing.plaf.multi package is now implemented. | |
2373 o Editing and several key actions for JTree and JTable were | |
2374 implemented. | |
2375 o Lots of icons and look and feel improvements for Free | |
2376 Swing basic and metal themes were added. Try running the | |
2377 GNU Classpath Swing Demo in examples | |
2378 (gnu.classpath.examples.swing.Demo) with: | |
2379 -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFee | |
2380 l or | |
2381 -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFee | |
2382 l | |
2383 o Start of styled text capabilites for java.swing.text. | |
2384 o DefaultMutableTreeNode pre-order, post-order, depth-first | |
2385 and breadth-first traversal enumerations implemented. | |
2386 o JInternalFrame colors and titlebar draw properly. | |
2387 o JTree is working up to par (icons, selection and keyboard | |
2388 traversal). | |
2389 o JMenus were made more compatible in visual and | |
2390 programmatic behavior. | |
2391 o JTable changeSelection and multiple selections | |
2392 implemented. | |
2393 o JButton and JToggleButton change states work properly | |
2394 now. | |
2395 o JFileChooser fixes. | |
2396 o revalidate() and repaint() fixes which make Free Swing | |
2397 much more responsive. | |
2398 o MetalIconFactory implemented. | |
2399 o Free Swing Top-Level Compatibility. JFrame, JDialog, | |
2400 JApplet, JInternalFrame, and JWindow are now 1.5 | |
2401 compatible in the sense that you can call add() and | |
2402 setLayout() directly on them, which will have the same | |
2403 effect as calling getContentPane().add() and | |
2404 getContentPane().setLayout(). | |
2405 o The JTree interface has been completed. JTrees now | |
2406 recognizes mouse clicks and selections work. | |
2407 o BoxLayout works properly now. | |
2408 o Fixed GrayFilter to actually work. | |
2409 o Metal SplitPane implemented. | |
2410 o Lots of Free Swing text and editor stuff work now. | |
2411 + Free RMI and Corba | |
2412 o Andrew Watson, Vice President and Technical Director of | |
2413 the Object Management Group, has officially assigned us | |
2414 20 bit Vendor Minor Code Id: 0x47430 ("GC") that will | |
2415 mark remote classpath-specific system exceptions. | |
2416 Obtaining the VMCID means that GNU Classpath now is a | |
2417 recogniseable type of node in a highly interoperable | |
2418 CORBA world. | |
2419 o GNU Classpath now includes the first working draft to | |
2420 support the RMI over IIOP protocol. The current | |
2421 implementation is capable of remote invocations, | |
2422 transferring various Serializables and Externalizables | |
2423 via RMI-IIOP protocol. It can flatten graphs and, at | |
2424 least for the simple cases, is interoperable with 1.5 | |
2425 JDKs. | |
2426 o org.omg.PortableInterceptor and related functionality in | |
2427 other packages is now implemented: | |
2428 # The sever and client interceptors work as required | |
2429 since 1.4. | |
2430 # The IOR interceptor works as needed for 1.5. | |
2431 o The org.omg.DynamicAny package is completed and passes | |
2432 the prepared tests. | |
2433 o The Portable Object Adapter should now support the output | |
2434 of the recent IDL to java compilers. These compilers now | |
2435 generate servants and not CORBA objects as before, making | |
2436 the output depend on the existing POA implementation. | |
2437 Completing POA means that such code can already be tried | |
2438 to run on Classpath. Our POA is tested for the following | |
2439 usager scenarios: | |
2440 # POA converts servant to the CORBA object. | |
2441 # Servant provides to the CORBA object. | |
2442 # POA activates new CORBA object with the given Object | |
2443 Id (byte array) that is later accessible for the | |
2444 servant. | |
2445 # During the first call, the ServantActivator provides | |
2446 servant for this and all subsequent calls on the | |
2447 current object. | |
2448 # During each call, the ServantLocator provides | |
2449 servant for this call only. | |
2450 # ServantLocator or ServantActivator forwards call to | |
2451 another server. | |
2452 # POA has a single servant, responsible for all | |
2453 objects. | |
2454 # POA has a default servant, but some objects are | |
2455 explicitly connected to they specific servants. | |
2456 The POA is verified using tests from the former | |
2457 cost.omg.org. | |
2458 o The CORBA implementation is now a working prototype that | |
2459 should support features up to 1.3 inclusive. We invite | |
2460 groups writing CORBA dependent applications to try | |
2461 Classpath implementation, reporting any possible bugs. | |
2462 The CORBA prototype is interoperable with Sun's | |
2463 implementation v 1.4, transferring object references, | |
2464 primitive types, narrow and wide strings, arrays, | |
2465 structures, trees, abstract interfaces and value types | |
2466 (feature of CORBA 2.3) between these two platforms. | |
2467 Remote exceptions are transferred and handled correctly. | |
2468 The stringified object references (IORs) from various | |
2469 sources are parsed as required. The transient (for | |
2470 current session) and permanent (till jre restart) | |
2471 redirections work. Both Little and Big Endian encoded | |
2472 messages are accepted. The implementation is verified | |
2473 using tests from the former cost.omg.org. The current | |
2474 release includes working examples (see the examples | |
2475 directory), demonstrating the client-server | |
2476 communication, using either CORBA Request or IDL-based | |
2477 stub (usually generated by a IDL to java compiler). These | |
2478 examples also show how to use the Classpath CORBA naming | |
2479 service. The IDL to java compiler is not yet written, but | |
2480 as our library must be compatible, it naturally accepts | |
2481 the output of other idlj implementations. | |
2482 + Misc | |
2483 o Updated TimeZone data against Olson tzdata2005l. | |
2484 o Make zip and jar packages UTF-8 clean. | |
2485 o "native" code builds and compiles (warning free) on | |
2486 Darwin and Solaris. | |
2487 o java.util.logging.FileHandler now rotates files. | |
2488 o Start of a generic JDWP framework in gnu/classpath/jdwp. | |
2489 This is unfinished, but feedback (at classpath@gnu.org) | |
2490 from runtime hackers is greatly appreciated. Although | |
2491 most of the work is currently being done around gcj/gij | |
2492 we want this framework to be as VM neutral as possible. | |
2493 Early design is described in: | |
2494 [3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html | |
2495 o QT4 AWT peers, enable by giving configure | |
2496 --enable-qt-peer. Included, but not ready for production | |
2497 yet. They are explicitly disabled and not supported. But | |
2498 if you want to help with the development of these new | |
2499 features we are interested in feedback. You will have to | |
2500 explicitly enable them to try them out (and they will | |
2501 most likely contain bugs). | |
2502 o Documentation fixes all over the place. See | |
2503 [4]http://developer.classpath.org/doc/ | |
2504 | |
2505 New Targets and Target Specific Improvements | |
2506 | |
2507 IA-32/x86-64 | |
2508 | |
2509 * The x86-64 medium model (that allows building applications whose | |
2510 data segment exceeds 4GB) was redesigned to match latest ABI draft. | |
2511 New implementation split large datastructures into separate segment | |
2512 improving performance of accesses to small datastructures and also | |
2513 allows linking of small model libraries into medium model programs | |
2514 as long as the libraries are not accessing the large datastructures | |
2515 directly. Medium model is also supported in position independent | |
2516 code now. | |
2517 The ABI change results in partial incompatibility among medium | |
2518 model objects. Linking medium model libraries (or objects) compiled | |
2519 with new compiler into medium model program compiled with older | |
2520 will likely result in exceeding ranges of relocations. | |
2521 Binutils 2.16.91 or newer are required for compiling medium model | |
2522 now. | |
2523 | |
2524 RS6000 (POWER/PowerPC) | |
2525 | |
2526 * The AltiVec vector primitives in <altivec.h> are now implemented in | |
2527 a way that puts a smaller burden on the preprocessor, instead | |
2528 processing the "overloading" in the front ends. This should benefit | |
2529 compilation speed on AltiVec vector code. | |
2530 * AltiVec initializers now are generated more efficiently. | |
2531 * The popcountb instruction available on POWER5 now is generated. | |
2532 * The floating point round to integer instructions available on | |
2533 POWER5+ now is generated. | |
2534 * Floating point divides can be synthesized using the floating point | |
2535 reciprocal estimate instructions. | |
2536 * Double precision floating point constants are initialized as single | |
2537 precision values if they can be represented exactly. | |
2538 | |
2539 S/390, zSeries and System z9 | |
2540 | |
2541 * Support for the IBM System z9 109 processor has been added. When | |
2542 using the -march=z9-109 option, the compiler will generate code | |
2543 making use of instructions provided by the extended immediate | |
2544 facility. | |
2545 * Support for 128-bit IEEE floating point has been added. When using | |
2546 the -mlong-double-128 option, the compiler will map the long double | |
2547 data type to 128-bit IEEE floating point. Using this option | |
2548 constitutes an ABI change, and requires glibc support. | |
2549 * Various changes to improve performance of generated code have been | |
2550 implemented, including: | |
2551 + In functions that do not require a literal pool, register %r13 | |
2552 (which is traditionally reserved as literal pool pointer), can | |
2553 now be freely used for other purposes by the compiler. | |
2554 + More precise tracking of register use allows the compiler to | |
2555 generate more efficient function prolog and epilog code in | |
2556 certain cases. | |
2557 + The SEARCH STRING, COMPARE LOGICAL STRING, and MOVE STRING | |
2558 instructions are now used to implement C string functions. | |
2559 + The MOVE CHARACTER instruction with single byte overlap is now | |
2560 used to implement the memset function with non-zero fill byte. | |
2561 + The LOAD ZERO instructions are now used where appropriate. | |
2562 + The INSERT CHARACTERS UNDER MASK, STORE CHARACTERS UNDER MASK, | |
2563 and INSERT IMMEDIATE instructions are now used more frequently | |
2564 to optimize bitfield operations. | |
2565 + The BRANCH ON COUNT instruction is now used more frequently. | |
2566 In particular, the fact that a loop contains a subroutine call | |
2567 no longer prevents the compiler from using this instruction. | |
2568 + The compiler is now aware that all shift and rotate | |
2569 instructions implicitly truncate the shift count to six bits. | |
2570 * Back-end support for the following generic features has been | |
2571 implemented: | |
2572 + The full set of [5]built-in functions for atomic memory | |
2573 access. | |
2574 + The -fstack-protector feature. | |
2575 + The optimization pass avoiding unnecessary stores of incoming | |
2576 argument registers in functions with variable argument list. | |
2577 | |
2578 SPARC | |
2579 | |
2580 * The default code model in 64-bit mode has been changed from | |
2581 Medium/Anywhere to Medium/Middle on Solaris. | |
2582 * TLS support is disabled by default on Solaris prior to release 10. | |
2583 It can be enabled on TLS-capable Solaris 9 versions (4/04 release | |
2584 and later) by specifying --enable-tls at configure time. | |
2585 | |
2586 MorphoSys | |
2587 | |
2588 * Support has been added for this new architecture. | |
2589 | |
2590 Obsolete Systems | |
2591 | |
2592 Documentation improvements | |
2593 | |
2594 Other significant improvements | |
2595 | |
2596 * GCC can now emit code for protecting applications from | |
2597 stack-smashing attacks. The protection is realized by buffer | |
2598 overflow detection and reordering of stack variables to avoid | |
2599 pointer corruption. | |
2600 * Some built-in functions have been fortified to protect them against | |
2601 various buffer overflow (and format string) vulnerabilities. | |
2602 Compared to the mudflap bounds checking feature, the safe builtins | |
2603 have far smaller overhead. This means that programs built using | |
2604 safe builtins should not experience any measurable slowdown. | |
2605 | |
2606 GCC 4.1.2 | |
2607 | |
2608 This is the [6]list of problem reports (PRs) from GCC's bug tracking | |
2609 system that are known to be fixed in the 4.1.2 release. This list might | |
2610 not be complete (that is, it is possible that some PRs that have been | |
2611 fixed are not listed here). | |
2612 | |
2613 When generating code for a shared library, GCC now recognizes that | |
2614 global functions may be replaced when the program runs. Therefore, it | |
2615 is now more conservative in deducing information from the bodies of | |
2616 functions. For example, in this example: | |
2617 void f() {} | |
2618 void g() { | |
2619 try { f(); } | |
2620 catch (...) { | |
2621 cout << "Exception"; | |
2622 } | |
2623 } | |
2624 | |
2625 G++ would previously have optimized away the catch clause, since it | |
2626 would have concluded that f cannot throw exceptions. Because users may | |
2627 replace f with another function in the main body of the program, this | |
2628 optimization is unsafe, and is no longer performed. If you wish G++ to | |
2629 continue to optimize as before, you must add a throw() clause to the | |
2630 declaration of f to make clear that it does not throw exceptions. | |
2631 | |
2632 Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There | |
2633 are also [8]other ways to contact the FSF. | |
2634 | |
2635 These pages are maintained by [9]the GCC team. | |
2636 | |
2637 | |
2638 For questions related to the use of GCC, please consult these web | |
2639 pages and the [10]GCC manuals. If that fails, the | |
2640 [11]gcc-help@gcc.gnu.org mailing list might help. | |
2641 Please send comments on these web pages and the development of GCC to | |
2642 our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. | |
2643 All of our lists have [14]public archives. | |
2644 | |
2645 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
2646 Floor, Boston, MA 02110, USA. | |
2647 | |
2648 Verbatim copying and distribution of this entire article is permitted | |
2649 in any medium, provided this notice is preserved. | |
2650 Last modified 2009-01-25 [15]Valid XHTML 1.0 | |
2651 | |
2652 References | |
2653 | |
2654 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 | |
2655 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText | |
2656 3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html | |
2657 4. http://developer.classpath.org/doc/ | |
2658 5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html | |
2659 6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 | |
2660 7. mailto:gnu@gnu.org | |
2661 8. http://www.gnu.org/home.html#ContactInfo | |
2662 9. http://gcc.gnu.org/about.html | |
2663 10. http://gcc.gnu.org/onlinedocs/ | |
2664 11. mailto:gcc-help@gcc.gnu.org | |
2665 12. mailto:gcc@gnu.org | |
2666 13. mailto:gcc@gcc.gnu.org | |
2667 14. http://gcc.gnu.org/lists.html | |
2668 15. http://validator.w3.org/check/referer | |
2669 ====================================================================== | |
2670 http://gcc.gnu.org/gcc-4.0/index.html | |
2671 GCC 4.0 Release Series | |
2672 | |
2673 January 31, 2007 | |
2674 | |
2675 The [1]GNU project and the GCC developers are pleased to announce the | |
2676 release of GCC 4.0.4. | |
2677 | |
2678 This release is a bug-fix release, containing fixes for regressions in | |
2679 GCC 4.0.3 relative to previous releases of GCC. | |
2680 | |
2681 Release History | |
2682 | |
2683 GCC 4.0.4 | |
2684 January 31, 2007 ([2]changes) | |
2685 | |
2686 GCC 4.0.3 | |
2687 March 10, 2006 ([3]changes) | |
2688 | |
2689 GCC 4.0.2 | |
2690 September 28, 2005 ([4]changes) | |
2691 | |
2692 GCC 4.0.1 | |
2693 July 7, 2005 ([5]changes) | |
2694 | |
2695 GCC 4.0.0 | |
2696 April 20, 2005 ([6]changes) | |
2697 | |
2698 References and Acknowledgements | |
2699 | |
2700 GCC used to stand for the GNU C Compiler, but since the compiler | |
2701 supports several other languages aside from C, it now stands for the | |
2702 GNU Compiler Collection. | |
2703 | |
2704 A list of [7]successful builds is updated as new information becomes | |
2705 available. | |
2706 | |
2707 The GCC developers would like to thank the numerous people that have | |
2708 contributed new features, improvements, bug fixes, and other changes as | |
2709 well as test results to GCC. This [8]amazing group of volunteers is | |
2710 what makes GCC successful. | |
2711 | |
2712 For additional information about GCC please refer to the [9]GCC project | |
2713 web site or contact the [10]GCC development mailing list. | |
2714 | |
2715 To obtain GCC please use [11]our mirror sites, or [12]our SVN server. | |
2716 | |
2717 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There | |
2718 are also [14]other ways to contact the FSF. | |
2719 | |
2720 These pages are maintained by [15]the GCC team. | |
2721 | |
2722 | |
2723 For questions related to the use of GCC, please consult these web | |
2724 pages and the [16]GCC manuals. If that fails, the | |
2725 [17]gcc-help@gcc.gnu.org mailing list might help. | |
2726 Please send comments on these web pages and the development of GCC to | |
2727 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. | |
2728 All of our lists have [20]public archives. | |
2729 | |
2730 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
2731 Floor, Boston, MA 02110, USA. | |
2732 | |
2733 Verbatim copying and distribution of this entire article is permitted | |
2734 in any medium, provided this notice is preserved. | |
2735 Last modified 2008-07-26 [21]Valid XHTML 1.0 | |
2736 | |
2737 References | |
2738 | |
2739 1. http://www.gnu.org/ | |
2740 2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 | |
2741 3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3 | |
2742 4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2 | |
2743 5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 | |
2744 6. http://gcc.gnu.org/gcc-4.0/changes.html | |
2745 7. http://gcc.gnu.org/gcc-4.0/buildstat.html | |
2746 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
2747 9. http://gcc.gnu.org/index.html | |
2748 10. mailto:gcc@gcc.gnu.org | |
2749 11. http://gcc.gnu.org/mirrors.html | |
2750 12. http://gcc.gnu.org/svn.html | |
2751 13. mailto:gnu@gnu.org | |
2752 14. http://www.gnu.org/home.html#ContactInfo | |
2753 15. http://gcc.gnu.org/about.html | |
2754 16. http://gcc.gnu.org/onlinedocs/ | |
2755 17. mailto:gcc-help@gcc.gnu.org | |
2756 18. mailto:gcc@gnu.org | |
2757 19. mailto:gcc@gcc.gnu.org | |
2758 20. http://gcc.gnu.org/lists.html | |
2759 21. http://validator.w3.org/check/referer | |
2760 ====================================================================== | |
2761 http://gcc.gnu.org/gcc-4.0/changes.html | |
2762 GCC 4.0 Release Series | |
2763 Changes, New Features, and Fixes | |
2764 | |
2765 The latest release in the 4.0 release series is [1]GCC 4.0.4. | |
2766 | |
2767 Caveats | |
2768 | |
2769 * GCC now generates location lists by default when compiling with | |
2770 debug info and optimization. | |
2771 + GDB 6.0 and older crashes when it sees location lists. GDB 6.1 | |
2772 or later is needed to debug binaries containing location | |
2773 lists. | |
2774 + When you are trying to view a value of a variable in a part of | |
2775 a function where it has no location (for example when the | |
2776 variable is no longer used and thus its location was used for | |
2777 something else) GDB will say that it is not available. | |
2778 You can disable generating location lists by -fno-var-tracking. | |
2779 * GCC no longer accepts the -fwritable-strings option. Use named | |
2780 character arrays when you need a writable string. | |
2781 * The options -freduce-all-givs and -fmove-all-movables have been | |
2782 discontinued. They were used to circumvent a shortcoming in the | |
2783 heuristics of the old loop optimization code with respect to common | |
2784 Fortran constructs. The new (tree) loop optimizer works differently | |
2785 and doesn't need those work-arounds. | |
2786 * The graph-coloring register allocator, formerly enabled by the | |
2787 option -fnew-ra, has been discontinued. | |
2788 * -I- has been deprecated. -iquote is meant to replace the need for | |
2789 this option. | |
2790 * The MIPS -membedded-pic and -mrnames options have been removed. | |
2791 * All MIPS targets now require the GNU assembler. In particular, IRIX | |
2792 configurations can no longer use the MIPSpro assemblers, although | |
2793 they do still support the MIPSpro linkers. | |
2794 * The SPARC option -mflat has been removed. | |
2795 * English-language diagnostic messages will now use Unicode quotation | |
2796 marks in UTF-8 locales. (Non-English messages already used the | |
2797 quotes appropriate for the language in previous releases.) If your | |
2798 terminal does not support UTF-8 but you are using a UTF-8 locale | |
2799 (such locales are the default on many GNU/Linux systems) then you | |
2800 should set LC_CTYPE=C in the environment to disable that locale. | |
2801 Programs that parse diagnostics and expect plain ASCII | |
2802 English-language messages should set LC_ALL=C. See [2]Markus Kuhn's | |
2803 explanation of Unicode quotation marks for more information. | |
2804 * The specs file is no longer installed on most platforms. Most users | |
2805 will be totally unaffected. However, if you are accustomed to | |
2806 editing the specs file yourself, you will now have to use the | |
2807 -dumpspecs option to generate the specs file, and then edit the | |
2808 resulting file. | |
2809 | |
2810 General Optimizer Improvements | |
2811 | |
2812 * The [3]tree ssa branch has been merged. This merge has brought in a | |
2813 completely new optimization framework based on a higher level | |
2814 intermediate representation than the existing RTL representation. | |
2815 Numerous new code transformations based on the new framework are | |
2816 available in GCC 4.0, including: | |
2817 + Scalar replacement of aggregates | |
2818 + Constant propagation | |
2819 + Value range propagation | |
2820 + Partial redundancy elimination | |
2821 + Load and store motion | |
2822 + Strength reduction | |
2823 + Dead store elimination | |
2824 + Dead and unreachable code elimination | |
2825 + [4]Autovectorization | |
2826 + Loop interchange | |
2827 + Tail recursion by accumulation | |
2828 Many of these passes outperform their counterparts from previous | |
2829 GCC releases. | |
2830 * [5]Swing Modulo Scheduling (SMS). An RTL level instruction | |
2831 scheduling optimization intended for loops that perform heavy | |
2832 computations. | |
2833 | |
2834 New Languages and Language specific improvements | |
2835 | |
2836 C family | |
2837 | |
2838 * The sentinel attribute has been added to GCC. This function | |
2839 attribute allows GCC to warn when variadic functions such as execl | |
2840 are not NULL terminated. See the GCC manual for a complete | |
2841 description of its behavior. | |
2842 * Given __attribute__((alias("target"))) it is now an error if target | |
2843 is not a symbol, defined in the same translation unit. This also | |
2844 applies to aliases created by #pragma weak alias=target. This is | |
2845 because it's meaningless to define an alias to an undefined symbol. | |
2846 On Solaris, the native assembler would have caught this error, but | |
2847 GNU as does not. | |
2848 | |
2849 C and Objective-C | |
2850 | |
2851 * The -Wstrict-aliasing=2 option has been added. This warning catches | |
2852 all unsafe cases, but it may also give a warning for some cases | |
2853 that are safe. | |
2854 * The cast-as-lvalue, conditional-expression-as-lvalue and | |
2855 compound-expression-as-lvalue extensions, which were deprecated in | |
2856 3.3.4 and 3.4, have been removed. | |
2857 * The -fwritable-strings option, which was deprecated in 3.4, has | |
2858 been removed. | |
2859 * #pragma pack() semantics have been brought closer to those used by | |
2860 other compilers. This also applies to C++. | |
2861 * Taking the address of a variable with register storage is invalid | |
2862 in C. GCC now issues an error instead of a warning. | |
2863 * Arrays of incomplete element type are invalid in C. GCC now issues | |
2864 an error for such arrays. Declarations such as extern struct s x[]; | |
2865 (where struct s has not been defined) can be moved after the | |
2866 definition of struct s. Function parameters declared as arrays of | |
2867 incomplete type can instead be declared as pointers. | |
2868 | |
2869 C++ | |
2870 | |
2871 * When compiling without optimizations (-O0), the C++ frontend is | |
2872 much faster than in any previous versions of GCC. Independent | |
2873 testers have measured speed-ups up to 25% in real-world production | |
2874 code, compared to the 3.4 family (which was already the fastest | |
2875 version to date). Upgrading from older versions might show even | |
2876 bigger improvements. | |
2877 * ELF visibility attributes can now be applied to a class type, so | |
2878 that it affects every member function of a class at once, without | |
2879 having to specify each individually: | |
2880 class __attribute__ ((visibility("hidden"))) Foo | |
2881 { | |
2882 int foo1(); | |
2883 void foo2(); | |
2884 }; | |
2885 The syntax is deliberately similar to the __declspec() system used | |
2886 by Microsoft Windows based compilers, allowing cross-platform | |
2887 projects to easily reuse their existing macro system for denoting | |
2888 exports and imports. By explicitly marking internal classes never | |
2889 used outside a binary as hidden, one can completely avoid PLT | |
2890 indirection overheads during their usage by the compiler. You can | |
2891 find out more about the advantages of this at | |
2892 [6]http://people.redhat.com/drepper/dsohowto.pdf | |
2893 * The -fvisibility-inlines-hidden option has been added which marks | |
2894 all inlineable functions as having hidden ELF visibility, thus | |
2895 removing their symbol and typeinfo from the exported symbol table | |
2896 of the output ELF binary. Using this option can reduce the exported | |
2897 symbol count of template-heavy code by up to 40% with no code | |
2898 change at all, thus notably improving link and load times for the | |
2899 binary as well as a reduction in size of up to 10%. Also, check the | |
2900 new [7]-fvisibility option. | |
2901 * The compiler now uses the library interface specified by the [8]C++ | |
2902 ABI for thread-safe initialization of function-scope static | |
2903 variables. Most users should leave this alone, but embedded | |
2904 programmers may want to disable this by specifying | |
2905 -fno-threadsafe-statics for a small savings in code size. | |
2906 * Taking the address of an explicit register variable is no longer | |
2907 supported. Note that C++ allows taking the address of variables | |
2908 with register storage so this will continue to compile with a | |
2909 warning. For example, assuming that r0 is a machine register: | |
2910 register int foo asm ("r0"); | |
2911 register int bar; | |
2912 &foo; // error, no longer accepted | |
2913 &bar; // OK, with a warning | |
2914 * G++ has an undocumented extension to virtual function covariancy | |
2915 rules that allowed the overrider to return a type that was | |
2916 implicitly convertable to the overridden function's return type. | |
2917 For instance a function returning void * could be overridden by a | |
2918 function returning T *. This is now deprecated and will be removed | |
2919 in a future release. | |
2920 * The G++ minimum and maximum operators (<? and >?) and their | |
2921 compound forms (<?=) and >?=) have been deprecated and will be | |
2922 removed in a future version. Code using these operators should be | |
2923 modified to use std::min and std::max instead. | |
2924 * Declaration of nested classes of class templates as friends are | |
2925 supported: | |
2926 template <typename T> struct A { | |
2927 class B {}; | |
2928 }; | |
2929 class C { | |
2930 template <typename T> friend class A<T>::B; | |
2931 }; | |
2932 This complements the feature member functions of class templates as | |
2933 friends introduced in GCC 3.4.0. | |
2934 * When declaring a friend class using an unqualified name, classes | |
2935 outside the innermost non-class scope are not searched: | |
2936 class A; | |
2937 namespace N { | |
2938 class B { | |
2939 friend class A; // Refer to N::A which has not been declared yet | |
2940 // because name outside namespace N are not searched | |
2941 friend class ::A; // Refer to ::A | |
2942 }; | |
2943 } | |
2944 Hiding the friend name until declaration is still not implemented. | |
2945 * Friends of classes defined outside their namespace are correctly | |
2946 handled: | |
2947 namespace N { | |
2948 class A; | |
2949 } | |
2950 class N::A { | |
2951 friend class B; // Refer to N::B in GCC 4.0.0 | |
2952 // but ::B in earlier versions of GCC | |
2953 }; | |
2954 | |
2955 Runtime Library (libstdc++) | |
2956 | |
2957 * Optimization work: | |
2958 + Added efficient specializations of istream functions for char | |
2959 and wchar_t. | |
2960 + Further performance tuning of strings, in particular wrt | |
2961 single-char append and getline. | |
2962 + iter_swap - and therefore most of the mutating algorithms - | |
2963 now makes an unqualified call to swap when the value_type of | |
2964 the two iterators is the same. | |
2965 * A large subset of the features in Technical Report 1 (TR1 for | |
2966 short) is experimentally delivered (i.e., no guarantees about the | |
2967 implementation are provided. In particular it is not promised that | |
2968 the library will remain link-compatible when code using TR1 is | |
2969 used): | |
2970 + General utilities such as reference_wrapper and shared_ptr. | |
2971 + Function objects, i.e., result_of, mem_fn, bind, function. | |
2972 + Support for metaprogramming. | |
2973 + New containers such as tuple, array, unordered_set, | |
2974 unordered_map, unordered_multiset, unordered_multimap. | |
2975 * As usual, many bugs have been fixed and LWG resolutions implemented | |
2976 for the first time (e.g., DR 409). | |
2977 | |
2978 Java | |
2979 | |
2980 * In order to prevent naming conflicts with other implementations of | |
2981 these tools, some GCJ binaries have been renamed: | |
2982 + rmic is now grmic, | |
2983 + rmiregistry is now grmiregistry, and | |
2984 + jar is now fastjar. | |
2985 In particular, these names were problematic for the jpackage.org | |
2986 packaging conventions which install symlinks in /usr/bin that point | |
2987 to the preferred versions of these tools. | |
2988 * The -findirect-dispatch argument to the compiler now works and | |
2989 generates code following a new "binary compatibility" ABI. Code | |
2990 compiled this way follows the binary compatibility rules of the | |
2991 Java Language Specification. | |
2992 * libgcj now has support for using GCJ as a JIT, using the | |
2993 gnu.gcj.jit family of system properties. | |
2994 * libgcj can now find a shared library corresponding to the bytecode | |
2995 representation of a class. See the documentation for the new | |
2996 gcj-dbtool program, and the new gnu.gcj.precompiled.db.path system | |
2997 property. | |
2998 * There have been many improvements to the class library. Here are | |
2999 some highlights: | |
3000 + Much more of AWT and Swing exist. | |
3001 + Many new packages and classes were added, including | |
3002 java.util.regex, java.net.URI, javax.crypto, | |
3003 javax.crypto.interfaces, javax.crypto.spec, javax.net, | |
3004 javax.net.ssl, javax.security.auth, | |
3005 javax.security.auth.callback, javax.security.auth.login, | |
3006 javax.security.auth.x500, javax.security.sasl, org.ietf.jgss, | |
3007 javax.imageio, javax.imageio.event, javax.imageio.spi, | |
3008 javax.print, javax.print.attribute, | |
3009 javax.print.attribute.standard, javax.print.event, and | |
3010 javax.xml | |
3011 + Updated SAX and DOM, and imported GNU JAXP | |
3012 | |
3013 Fortran | |
3014 | |
3015 * A new [9]Fortran front end has replaced the aging GNU Fortran 77 | |
3016 front end. The new front end supports Fortran 90 and Fortran 95. It | |
3017 may not yet be as stable as the old Fortran front end. | |
3018 | |
3019 Ada | |
3020 | |
3021 * Ada (with tasking and Zero Cost Exceptions) is now available on | |
3022 many more targets, including but not limited to: alpha-linux, | |
3023 hppa-hpux, hppa-linux, powerpc-darwin, powerpc-linux, s390-linux, | |
3024 s390x-linux, sparc-linux. | |
3025 * Some of the new Ada 2005 features are now implemented like | |
3026 Wide_Wide_Character and Ada.Containers. | |
3027 * Many bugs have been fixed, tools and documentation improved. | |
3028 * To compile Ada from the sources, install an older working Ada | |
3029 compiler and then use --enable-languages=ada at configuration time, | |
3030 since the Ada frontend is not currently activated by default. See | |
3031 the [10]Installing GCC for details. | |
3032 | |
3033 New Targets and Target Specific Improvements | |
3034 | |
3035 H8/300 | |
3036 | |
3037 * The frame layout has changed. In the new layout, the prologue of a | |
3038 function first saves registers and then allocate space for locals, | |
3039 resulting in an 1% improvement on code size. | |
3040 | |
3041 IA-32/x86-64 (AMD64) | |
3042 | |
3043 * The acos, asin, drem, exp10, exp2, expm1, fmod, ilogb, log10, | |
3044 log1p, log2, logb and tan mathematical builtins (and their float | |
3045 and long double variants) are now implemented as inline x87 | |
3046 intrinsics when using -ffast-math. | |
3047 * The ceil, floor, nearbyint, rint and trunc mathematical builtins | |
3048 (and their float and long double variants) are now implemented as | |
3049 inline x87 intrinsics when using -ffast-math. | |
3050 * The x87's fsincos instruction is now used automatically with | |
3051 -ffast-math when calculating both the sin and cos of the same | |
3052 argument. | |
3053 * Instruction selection for multiplication and division by constants | |
3054 has been improved. | |
3055 | |
3056 IA-64 | |
3057 | |
3058 * Floating point division, integer division and sqrt are now inlined, | |
3059 resulting in significant performance improvements on some codes. | |
3060 | |
3061 MIPS | |
3062 | |
3063 * Division by zero checks now use conditional traps if the target | |
3064 processor supports them. This decreases code size by one word per | |
3065 division operation. The old behavior (branch and break) can be | |
3066 obtained either at configure time by passing --with-divide=breaks | |
3067 to configure or at runtime by passing -mdivide-breaks to GCC. | |
3068 * Support for MIPS64 paired-single instructions has been added. It is | |
3069 enabled by -mpaired-single and can be accessed using both the | |
3070 target-independent vector extensions and new MIPS-specific built-in | |
3071 functions. | |
3072 * Support for the MIPS-3D ASE has been added. It is enabled by | |
3073 -mips3d and provides new MIPS-3D-specific built-in functions. | |
3074 * The -mexplicit-relocs option now supports static n64 code (as is | |
3075 used, for example, in 64-bit linux kernels). -mexplicit-relocs | |
3076 should now be feature-complete and is enabled by default when GCC | |
3077 is configured to use a compatible assembler. | |
3078 * Support for the NEC VR4130 series has been added. This support | |
3079 includes the use of VR-specific instructions and a new VR4130 | |
3080 scheduler. Full VR4130 support can be selected with -march=vr4130 | |
3081 while code for any ISA can be tuned for the VR4130 using | |
3082 -mtune=vr4130. There is also a new -mvr4130-align option that | |
3083 produces better schedules at the cost of increased code size. | |
3084 * Support for the Broadcom SB-1 has been extended. There is now an | |
3085 SB-1 scheduler as well as support for the SB-1-specific | |
3086 paired-single instructions. Full SB-1 support can be selected with | |
3087 -march=sb1 while code for any ISA can be optimized for the SB-1 | |
3088 using -mtune=sb1. | |
3089 * The compiler can now work around errata in R4000, R4400, VR4120 and | |
3090 VR4130 processors. These workarounds are enabled by -mfix-r4000, | |
3091 -mfix-r4400, -mfix-vr4120 and -mfix-vr4130 respectively. The VR4120 | |
3092 and VR4130 workarounds need binutils 2.16 or above. | |
3093 * IRIX shared libraries are now installed into the standard library | |
3094 directories: o32 libraries go into lib/, n32 libraries go into | |
3095 lib32/ and n64 libraries go into lib64/. | |
3096 * The compiler supports a new -msym32 option. It can be used to | |
3097 optimize n64 code in which all symbols are known to have 32-bit | |
3098 values. | |
3099 | |
3100 S/390 and zSeries | |
3101 | |
3102 * New command-line options help to generate code intended to run in | |
3103 an environment where stack space is restricted, e.g. Linux kernel | |
3104 code: | |
3105 + -mwarn-framesize and -mwarn-dynamicstack trigger compile-time | |
3106 warnings for single functions that require large or dynamic | |
3107 stack frames. | |
3108 + -mstack-size and -mstack-guard generate code that checks for | |
3109 stack overflow at run time. | |
3110 + -mpacked-stack generates code that reduces the stack frame | |
3111 size of many functions by reusing unneeded parts of the stack | |
3112 bias area. | |
3113 * The -msoft-float option now ensures that generated code never | |
3114 accesses floating point registers. | |
3115 * The s390x-ibm-tpf target now fully supports C++, including | |
3116 exceptions and threads. | |
3117 * Various changes to improve performance of the generated code have | |
3118 been implemented, including: | |
3119 + GCC now uses sibling calls where possible. | |
3120 + Condition code handling has been optimized, allowing GCC to | |
3121 omit redundant comparisons in certain cases. | |
3122 + The cost function guiding many optimizations has been refined | |
3123 to more accurately represent the z900 and z990 processors. | |
3124 + The ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW | |
3125 instructions are now used to avoid conditional branches in | |
3126 certain cases. | |
3127 + The back end now uses the LEGITIMIZE_RELOAD_ADDRESS feature to | |
3128 optimize address arithmetic required to access large stack | |
3129 frames. | |
3130 + GCC now makes more efficient use of memory-to-memory type | |
3131 instructions (MVC, CLC, ...). | |
3132 + More precise tracking of special register use allows better | |
3133 instruction scheduling, in particular of the function prologue | |
3134 and epilogue sequences. | |
3135 + The Java front end now generates inline code to implement | |
3136 integer division, instead of calling library routines. | |
3137 | |
3138 SPARC | |
3139 | |
3140 * The options -mv8, -msparclite, -mcypress, -msupersparc, -mf930 and | |
3141 -mf934 have been removed. They have been replaced with -mcpu=xxx. | |
3142 * The internal model used to estimate the relative cost of each | |
3143 instruction has been updated. It is expected to give better results | |
3144 on recent UltraSPARC processors. | |
3145 * Code generation for function prologues and epilogues has been | |
3146 improved, resulting in better scheduling and allowing multiple exit | |
3147 points in functions. | |
3148 * Support for Sun's Visual Instruction Set (VIS) has been enhanced. | |
3149 It is enabled by -mvis and provides new built-in functions for VIS | |
3150 instructions on UltraSPARC processors. | |
3151 * The option -mapp-regs has been turned on by default on Solaris too. | |
3152 | |
3153 NetWare | |
3154 | |
3155 * Novell NetWare (on ix86, no other hardware platform was ever really | |
3156 supported by this OS) has been re-enabled and the ABI supported by | |
3157 GCC has been brought into sync with that of MetroWerks CodeWarrior | |
3158 (the ABI previously supported was that of some Unix systems, which | |
3159 NetWare never tried to support). | |
3160 | |
3161 Obsolete Systems | |
3162 | |
3163 Support for a number of older systems has been declared obsolete in GCC | |
3164 4.0. Unless there is activity to revive them, the next release of GCC | |
3165 will have their sources permanently removed. | |
3166 | |
3167 All GCC ports for the following processor architectures have been | |
3168 declared obsolete: | |
3169 * Intel i860 | |
3170 * Ubicom IP2022 | |
3171 * National Semiconductor NS32K | |
3172 * Texas Instruments TMS320C[34]x | |
3173 | |
3174 Also, those for some individual systems have been obsoleted: | |
3175 * SPARC family | |
3176 + SPARClite-based systems (sparclite-*-coff, sparclite-*-elf, | |
3177 sparc86x-*-elf) | |
3178 + OpenBSD 32-bit (sparc-*-openbsd*) | |
3179 | |
3180 Documentation improvements | |
3181 | |
3182 Other significant improvements | |
3183 | |
3184 * Location lists are now generated by default when compiling with | |
3185 debug info and optimization. Location lists provide more accurate | |
3186 debug info about locations of variables and they allow debugging | |
3187 code compiled with -fomit-frame-pointer. | |
3188 * The -fvisibility option has been added which allows the default ELF | |
3189 visibility of all symbols to be set per compilation and the new | |
3190 #pragma GCC visibility preprocessor command allows the setting of | |
3191 default ELF visibility for a region of code. Using | |
3192 -fvisibility=hidden especially in combination with the new | |
3193 -fvisibility-inlines-hidden can yield substantial improvements in | |
3194 output binary quality including avoiding PLT indirection overheads, | |
3195 reduction of the exported symbol count by up to 60% (with resultant | |
3196 improvements to link and load times), better scope for the | |
3197 optimizer to improve code and up to a 20% reduction in binary size. | |
3198 Using these options correctly yields a binary with a similar symbol | |
3199 count to a Windows DLL. | |
3200 Perhaps more importantly, this new feature finally allows (with | |
3201 careful planning) complete avoidance of symbol clashes when | |
3202 manually loading shared objects with RTLD_GLOBAL, thus finally | |
3203 solving problems many projects such as python were forced to use | |
3204 RTLD_LOCAL for (with its resulting issues for C++ correctness). You | |
3205 can find more information about using these options at | |
3206 [11]http://gcc.gnu.org/wiki/Visibility. | |
3207 __________________________________________________________________ | |
3208 | |
3209 GCC 4.0.1 | |
3210 | |
3211 This is the [12]list of problem reports (PRs) from GCC's bug tracking | |
3212 system that are known to be fixed in the 4.0.1 release. This list might | |
3213 not be complete (that is, it is possible that some PRs that have been | |
3214 fixed are not listed here). | |
3215 | |
3216 GCC 4.0.2 | |
3217 | |
3218 This is the [13]list of problem reports (PRs) from GCC's bug tracking | |
3219 system that are known to be fixed in the 4.0.2 release. This list might | |
3220 not be complete (that is, it is possible that some PRs that have been | |
3221 fixed are not listed here). | |
3222 | |
3223 Unfortunately, due to a release engineering failure, this release has a | |
3224 regression on Solaris that will affect some C++ programs. We suggest | |
3225 that Solaris users apply a [14]patch that corrects the problem. Users | |
3226 who do not wish to apply the patch should explicitly link C++ programs | |
3227 with the -pthreads option, even if they do not use threads. This | |
3228 problem has been corrected in the current 4.0 branch sources and will | |
3229 not be present in GCC 4.0.3. | |
3230 | |
3231 GCC 4.0.3 | |
3232 | |
3233 Starting with this release, the function getcontext is recognized by | |
3234 the compiler as having the same semantics as the setjmp function. In | |
3235 particular, the compiler will ensure that all registers are dead before | |
3236 calling such a function and will emit a warning about the variables | |
3237 that may be clobbered after the second return from the function. | |
3238 | |
3239 GCC 4.0.4 | |
3240 | |
3241 This is the [15]list of problem reports (PRs) from GCC's bug tracking | |
3242 system that are known to be fixed in the 4.0.4 release. This list might | |
3243 not be complete (that is, it is possible that some PRs that have been | |
3244 fixed are not listed here). | |
3245 | |
3246 The 4.0.4 release is provided for those that require a high degree of | |
3247 binary compatibility with previous 4.0.x releases. For most users, the | |
3248 GCC team recommends that version 4.1.1 or later be used instead." | |
3249 | |
3250 Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There | |
3251 are also [17]other ways to contact the FSF. | |
3252 | |
3253 These pages are maintained by [18]the GCC team. | |
3254 | |
3255 | |
3256 For questions related to the use of GCC, please consult these web | |
3257 pages and the [19]GCC manuals. If that fails, the | |
3258 [20]gcc-help@gcc.gnu.org mailing list might help. | |
3259 Please send comments on these web pages and the development of GCC to | |
3260 our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. | |
3261 All of our lists have [23]public archives. | |
3262 | |
3263 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
3264 Floor, Boston, MA 02110, USA. | |
3265 | |
3266 Verbatim copying and distribution of this entire article is permitted | |
3267 in any medium, provided this notice is preserved. | |
3268 Last modified 2009-01-25 [24]Valid XHTML 1.0 | |
3269 | |
3270 References | |
3271 | |
3272 1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 | |
3273 2. http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html | |
3274 3. http://gcc.gnu.org/projects/tree-ssa/ | |
3275 4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html | |
3276 5. http://gcc.gnu.org/news/sms.html | |
3277 6. http://people.redhat.com/drepper/dsohowto.pdf | |
3278 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility | |
3279 8. http://www.codesourcery.com/public/cxx-abi/ | |
3280 9. http://gcc.gnu.org/fortran/ | |
3281 10. http://gcc.gnu.org/install/ | |
3282 11. http://gcc.gnu.org/wiki/Visibility | |
3283 12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 | |
3284 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2 | |
3285 14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html | |
3286 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4 | |
3287 16. mailto:gnu@gnu.org | |
3288 17. http://www.gnu.org/home.html#ContactInfo | |
3289 18. http://gcc.gnu.org/about.html | |
3290 19. http://gcc.gnu.org/onlinedocs/ | |
3291 20. mailto:gcc-help@gcc.gnu.org | |
3292 21. mailto:gcc@gnu.org | |
3293 22. mailto:gcc@gcc.gnu.org | |
3294 23. http://gcc.gnu.org/lists.html | |
3295 24. http://validator.w3.org/check/referer | |
3296 ====================================================================== | |
3297 http://gcc.gnu.org/gcc-3.4/index.html | |
3298 GCC 3.4 Release Series | |
3299 | |
3300 May 26, 2006 | |
3301 | |
3302 The [1]GNU project and the GCC developers are pleased to announce the | |
3303 release of GCC 3.4.6. | |
3304 | |
3305 This release is a bug-fix release, containing fixes for regressions in | |
3306 GCC 3.4.4 relative to previous releases of GCC. This is the last of the | |
3307 3.4.x series. | |
3308 | |
3309 The GCC 3.4 release series includes numerous [2]new features, | |
3310 improvements, bug fixes, and other changes, thanks to an [3]amazing | |
3311 group of volunteers. | |
3312 | |
3313 Release History | |
3314 | |
3315 GCC 3.4.6 | |
3316 March 6, 2006 ([4]changes) | |
3317 | |
3318 GCC 3.4.5 | |
3319 November 30, 2005 ([5]changes) | |
3320 | |
3321 GCC 3.4.4 | |
3322 May 18, 2005 ([6]changes) | |
3323 | |
3324 GCC 3.4.3 | |
3325 November 4, 2004 ([7]changes) | |
3326 | |
3327 GCC 3.4.2 | |
3328 September 6, 2004 ([8]changes) | |
3329 | |
3330 GCC 3.4.1 | |
3331 July 1, 2004 ([9]changes) | |
3332 | |
3333 GCC 3.4.0 | |
3334 April 18, 2004 ([10]changes) | |
3335 | |
3336 References and Acknowledgements | |
3337 | |
3338 GCC used to stand for the GNU C Compiler, but since the compiler | |
3339 supports several other languages aside from C, it now stands for the | |
3340 GNU Compiler Collection. | |
3341 | |
3342 A list of [11]successful builds is updated as new information becomes | |
3343 available. | |
3344 | |
3345 The GCC developers would like to thank the numerous people that have | |
3346 contributed new features, improvements, bug fixes, and other changes as | |
3347 well as test results to GCC. This [12]amazing group of volunteers is | |
3348 what makes GCC successful. | |
3349 | |
3350 For additional information about GCC please refer to the [13]GCC | |
3351 project web site or contact the [14]GCC development mailing list. | |
3352 | |
3353 To obtain GCC please use [15]our mirror sites, or [16]our SVN server. | |
3354 | |
3355 Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There | |
3356 are also [18]other ways to contact the FSF. | |
3357 | |
3358 These pages are maintained by [19]the GCC team. | |
3359 | |
3360 | |
3361 For questions related to the use of GCC, please consult these web | |
3362 pages and the [20]GCC manuals. If that fails, the | |
3363 [21]gcc-help@gcc.gnu.org mailing list might help. | |
3364 Please send comments on these web pages and the development of GCC to | |
3365 our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. | |
3366 All of our lists have [24]public archives. | |
3367 | |
3368 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
3369 Floor, Boston, MA 02110, USA. | |
3370 | |
3371 Verbatim copying and distribution of this entire article is permitted | |
3372 in any medium, provided this notice is preserved. | |
3373 Last modified 2008-07-26 [25]Valid XHTML 1.0 | |
3374 | |
3375 References | |
3376 | |
3377 1. http://www.gnu.org/ | |
3378 2. http://gcc.gnu.org/gcc-3.4/changes.html | |
3379 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
3380 4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 | |
3381 5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 | |
3382 6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 | |
3383 7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 | |
3384 8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 | |
3385 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 | |
3386 10. http://gcc.gnu.org/gcc-3.4/changes.html | |
3387 11. http://gcc.gnu.org/gcc-3.4/buildstat.html | |
3388 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
3389 13. http://gcc.gnu.org/index.html | |
3390 14. mailto:gcc@gcc.gnu.org | |
3391 15. http://gcc.gnu.org/mirrors.html | |
3392 16. http://gcc.gnu.org/svn.html | |
3393 17. mailto:gnu@gnu.org | |
3394 18. http://www.gnu.org/home.html#ContactInfo | |
3395 19. http://gcc.gnu.org/about.html | |
3396 20. http://gcc.gnu.org/onlinedocs/ | |
3397 21. mailto:gcc-help@gcc.gnu.org | |
3398 22. mailto:gcc@gnu.org | |
3399 23. mailto:gcc@gcc.gnu.org | |
3400 24. http://gcc.gnu.org/lists.html | |
3401 25. http://validator.w3.org/check/referer | |
3402 ====================================================================== | |
3403 http://gcc.gnu.org/gcc-3.4/changes.html | |
3404 GCC 3.4 Release Series | |
3405 Changes, New Features, and Fixes | |
3406 | |
3407 The final release in the 3.4 release series is [1]GCC 3.4.6. The series | |
3408 is now closed. | |
3409 | |
3410 GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting | |
3411 a bug, please make sure it's really GCC, and not your code, that is | |
3412 broken. | |
3413 | |
3414 Caveats | |
3415 | |
3416 * GNU Make is now required to build GCC. | |
3417 * With -nostdinc the preprocessor used to ignore both standard | |
3418 include paths and include paths contained in environment variables. | |
3419 It was neither documented nor intended that environment variable | |
3420 paths be ignored, so this has been corrected. | |
3421 * GCC no longer accepts the options -fvolatile, -fvolatile-global and | |
3422 -fvolatile-static. It is unlikely that they worked correctly in any | |
3423 3.x release. | |
3424 * GCC no longer ships <varargs.h>. Use <stdarg.h> instead. | |
3425 * Support for all the systems [3]obsoleted in GCC 3.3 has been | |
3426 removed from GCC 3.4. See below for a [4]list of systems which are | |
3427 obsoleted in this release. | |
3428 * GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C | |
3429 compilers will not work. | |
3430 * The implementation of the [5]MIPS ABIs has changed. As a result, | |
3431 the code generated for certain MIPS targets will not be binary | |
3432 compatible with earlier releases. | |
3433 * In previous releases, the MIPS port had a fake "hilo" register with | |
3434 the user-visible name accum. This register has been removed. | |
3435 * The implementation of the [6]SPARC ABIs has changed. As a result, | |
3436 the code generated will not be binary compatible with earlier | |
3437 releases in certain cases. | |
3438 * The configure option --enable-threads=pthreads has been removed; | |
3439 use --enable-threads=posix instead, which should have the same | |
3440 effect. | |
3441 * Code size estimates used by inlining heuristics for C, Objective-C, | |
3442 C++ and Java have been redesigned significantly. As a result the | |
3443 parameters of -finline-insns, --param max-inline-insns-single and | |
3444 --param max-inline-insns-auto need to be reconsidered. | |
3445 * --param max-inline-slope and --param min-inline-insns have been | |
3446 removed; they are not needed for the new bottom-up inlining | |
3447 heuristics. | |
3448 * The new unit-at-a-time compilation scheme has several compatibility | |
3449 issues: | |
3450 + The order in which functions, variables, and top-level asm | |
3451 statements are emitted may have changed. Code relying on some | |
3452 particular ordering needs to be updated. The majority of such | |
3453 top-level asm statements can be replaced by section | |
3454 attributes. | |
3455 + Unreferenced static variables and functions are removed. This | |
3456 may result in undefined references when an asm statement | |
3457 refers to the variable/function directly. In that case either | |
3458 the variable/function shall be listed in asm statement operand | |
3459 or in the case of top-level asm statements the attribute used | |
3460 shall be used to force function/variable to be always output | |
3461 and considered as a possibly used by unknown code. | |
3462 For variables the attribute is accepted only by GCC 3.4 and | |
3463 newer, while for earlier versions it is sufficient to use | |
3464 unused to silence warnings about the variables not being | |
3465 referenced. To keep code portable across different GCC | |
3466 versions, you can use appropriate preprocessor conditionals. | |
3467 + Static functions now can use non-standard passing conventions | |
3468 that may break asm statements calling functions directly. | |
3469 Again the attribute used shall be used to prevent this | |
3470 behavior. | |
3471 As a temporary workaround, -fno-unit-at-a-time can be used, but | |
3472 this scheme may not be supported by future releases of GCC. | |
3473 * GCC 3.4 automatically places zero-initialized variables in the .bss | |
3474 section on some operating systems. Versions of GNU Emacs up to (and | |
3475 including) 21.3 will not work correctly when using this | |
3476 optimization; you can use -fno-zero-initialized-in-bss to disable | |
3477 it. | |
3478 * If GCC 3.4 is configured with --enable-threads=posix (the default | |
3479 on most targets that support pthreads) then _REENTRANT will be | |
3480 defined unconditionally by some libstdc++ headers. C++ code which | |
3481 relies on that macro to detect whether multi-threaded code is being | |
3482 compiled might change in meaning, possibly resulting in linker | |
3483 errors for single-threaded programs. Affected users of [7]Boost | |
3484 should compile single-threaded code with -DBOOST_DISABLE_THREADS. | |
3485 See Bugzilla for [8]more information. | |
3486 | |
3487 General Optimizer Improvements | |
3488 | |
3489 * Usability of the profile feedback and coverage testing has been | |
3490 improved. | |
3491 + Performance of profiled programs has been improved by faster | |
3492 profile merging code. | |
3493 + Better use of the profile feedback for optimization (loop | |
3494 unrolling and loop peeling). | |
3495 + File locking support allowing fork() calls and parallel runs | |
3496 of profiled programs. | |
3497 + Coverage file format has been redesigned. | |
3498 + gcov coverage tool has been improved. | |
3499 + make profiledbootstrap available to build a faster compiler. | |
3500 Experiments made on i386 hardware showed an 11% speedup on -O0 | |
3501 and a 7.5% speedup on -O2 compilation of a [9]large C++ | |
3502 testcase. | |
3503 + New value profiling pass enabled via -fprofile-values | |
3504 + New value profile transformations pass enabled via -fvpt aims | |
3505 to optimize some code sequences by exploiting knowledge about | |
3506 value ranges or other properties of the operands. At the | |
3507 moment a conversion of expensive divisions into cheaper | |
3508 operations has been implemented. | |
3509 + New -fprofile-generate and -fprofile-use command-line options | |
3510 to simplify the use of profile feedback. | |
3511 * A new unit-at-a-time compilation scheme for C, Objective-C, C++ and | |
3512 Java which is enabled via -funit-at-a-time (and implied by -O2). In | |
3513 this scheme a whole file is parsed first and optimized later. The | |
3514 following basic inter-procedural optimizations are implemented: | |
3515 + Removal of unreachable functions and variables | |
3516 + Discovery of local functions (functions with static linkage | |
3517 whose address is never taken) | |
3518 + On i386, these local functions use register parameter passing | |
3519 conventions. | |
3520 + Reordering of functions in topological order of the call graph | |
3521 to enable better propagation of optimizing hints (such as the | |
3522 stack alignments needed by functions) in the back end. | |
3523 + Call graph based out-of-order inlining heuristics which allows | |
3524 to limit overall compilation unit growth (--param | |
3525 inline-unit-growth). | |
3526 Overall, the unit-at-a-time scheme produces a 1.3% improvement for | |
3527 the SPECint2000 benchmark on the i386 architecture (AMD Athlon | |
3528 CPU). | |
3529 * More realistic code size estimates used by inlining for C, | |
3530 Objective-C, C++ and Java. The growth of large functions can now be | |
3531 limited via --param large-function-insns and --param | |
3532 large-function-growth. | |
3533 * A new cfg-level loop optimizer pass replaces the old loop unrolling | |
3534 pass and adds two other loop transformations -- loop peeling and | |
3535 loop unswitching -- and also uses the profile feedback to limit | |
3536 code growth. (The three optimizations are enabled by | |
3537 -funroll-loops, -fpeel-loops and -funswitch-loops flags, | |
3538 respectively). | |
3539 The old loop unroller still can be enabled by -fold-unroll-loops | |
3540 and may produce better code in some cases, especially when the | |
3541 webizer optimization pass is not run. | |
3542 * A new web construction pass enabled via -fweb (and implied by -O3) | |
3543 improves the quality of register allocation, CSE, first scheduling | |
3544 pass and some other optimization passes by avoiding re-use of | |
3545 pseudo registers with non-overlapping live ranges. The pass almost | |
3546 always improves code quality but does make debugging difficult and | |
3547 thus is not enabled by default by -O2 | |
3548 The pass is especially effective as cleanup after code duplication | |
3549 passes, such as the loop unroller or the tracer. | |
3550 * Experimental implementations of superblock or trace scheduling in | |
3551 the second scheduling pass can be enabled via | |
3552 -fsched2-use-superblocks and -fsched2-use-traces, respectively. | |
3553 | |
3554 New Languages and Language specific improvements | |
3555 | |
3556 Ada | |
3557 | |
3558 * The Ada front end has been updated to include numerous bug fixes | |
3559 and enhancements. These include: | |
3560 + Improved project file support | |
3561 + Additional set of warnings about potential wrong code | |
3562 + Improved error messages | |
3563 + Improved code generation | |
3564 + Improved cross reference information | |
3565 + Improved inlining | |
3566 + Better run-time check elimination | |
3567 + Better error recovery | |
3568 + More efficient implementation of unbounded strings | |
3569 + Added features in GNAT.Sockets, GNAT.OS_Lib, GNAT.Debug_Pools, | |
3570 ... | |
3571 + New GNAT.xxxx packages (e.g. GNAT.Strings, | |
3572 GNAT.Exception_Action) | |
3573 + New pragmas | |
3574 + New -gnatS switch replacing gnatpsta | |
3575 + Implementation of new Ada features (in particular limited | |
3576 with, limited aggregates) | |
3577 | |
3578 C/Objective-C/C++ | |
3579 | |
3580 * Precompiled headers are now supported. Precompiled headers can | |
3581 dramatically speed up compilation of some projects. There are some | |
3582 known defects in the current precompiled header implementation that | |
3583 will result in compiler crashes in relatively rare situations. | |
3584 Therefore, precompiled headers should be considered a "technology | |
3585 preview" in this release. Read the manual for details about how to | |
3586 use precompiled headers. | |
3587 * File handling in the preprocessor has been rewritten. GCC no longer | |
3588 gets confused by symlinks and hardlinks, and now has a correct | |
3589 implementation of #import and #pragma once. These two directives | |
3590 have therefore been un-deprecated. | |
3591 * The undocumented extension that allowed C programs to have a label | |
3592 at the end of a compound statement, which has been deprecated since | |
3593 GCC 3.0, has been removed. | |
3594 * The cast-as-lvalue extension has been removed for C++ and | |
3595 deprecated for C and Objective-C. In particular, code like this: | |
3596 int i; | |
3597 (char) i = 5; | |
3598 | |
3599 or this: | |
3600 char *p; | |
3601 ((int *) p)++; | |
3602 | |
3603 is no longer accepted for C++ and will not be accepted for C and | |
3604 Objective-C in a future version. | |
3605 * The conditional-expression-as-lvalue extension has been deprecated | |
3606 for C and Objective-C. In particular, code like this: | |
3607 int a, b, c; | |
3608 (a ? b : c) = 2; | |
3609 | |
3610 will not be accepted for C and Objective-C in a future version. | |
3611 * The compound-expression-as-lvalue extension has been deprecated for | |
3612 C and Objective-C. In particular, code like this: | |
3613 int a, b; | |
3614 (a, b) = 2; | |
3615 | |
3616 will not be accepted for C and Objective-C in a future version. A | |
3617 possible non-intrusive workaround is the following: | |
3618 (*(a, &b)) = 2; | |
3619 | |
3620 * Several [10]built-in functions such as __builtin_popcount for | |
3621 counting bits, finding the highest and lowest bit in a word, and | |
3622 parity have been added. | |
3623 * The -fwritable-strings option has been deprecated and will be | |
3624 removed. | |
3625 * Many C math library functions are now recognized as built-ins and | |
3626 optimized. | |
3627 * The C, C++, and Objective-C compilers can now handle source files | |
3628 written in any character encoding supported by the host C library. | |
3629 The default input character set is taken from the current locale, | |
3630 and may be overridden with the -finput-charset command line option. | |
3631 In the future we will add support for inline encoding markers. | |
3632 | |
3633 C++ | |
3634 | |
3635 * G++ is now much closer to full conformance to the ISO/ANSI C++ | |
3636 standard. This means, among other things, that a lot of invalid | |
3637 constructs which used to be accepted in previous versions will now | |
3638 be rejected. It is very likely that existing C++ code will need to | |
3639 be fixed. This document lists some of the most common issues. | |
3640 * A hand-written recursive-descent C++ parser has replaced the | |
3641 YACC-derived C++ parser from previous GCC releases. The new parser | |
3642 contains much improved infrastructure needed for better parsing of | |
3643 C++ source codes, handling of extensions, and clean separation | |
3644 (where possible) between proper semantics analysis and parsing. The | |
3645 new parser fixes many bugs that were found in the old parser. | |
3646 * You must now use the typename and template keywords to disambiguate | |
3647 dependent names, as required by the C++ standard. | |
3648 struct K { | |
3649 typedef int mytype_t; | |
3650 }; | |
3651 | |
3652 template <class T1> struct A { | |
3653 template <class T2> struct B { | |
3654 void callme(void); | |
3655 }; | |
3656 | |
3657 template <int N> void bar(void) | |
3658 { | |
3659 // Use 'typename' to tell the parser that T1::mytype_t names | |
3660 // a type. This is needed because the name is dependent (in | |
3661 // this case, on template parameter T1). | |
3662 typename T1::mytype_t x; | |
3663 x = 0; | |
3664 } | |
3665 }; | |
3666 | |
3667 template <class T> void template_func(void) | |
3668 { | |
3669 // Use 'template' to prefix member templates within | |
3670 // dependent types (a has type A<T>, which depends on | |
3671 // the template parameter T). | |
3672 A<T> a; | |
3673 a.template bar<0>(); | |
3674 | |
3675 // Use 'template' to tell the parser that B is a nested | |
3676 // template class (dependent on template parameter T), and | |
3677 // 'typename' because the whole A<T>::B<int> is | |
3678 // the name of a type (again, dependent). | |
3679 typename A<T>::template B<int> b; | |
3680 b.callme(); | |
3681 } | |
3682 | |
3683 void non_template_func(void) | |
3684 { | |
3685 // Outside of any template class or function, no names can be | |
3686 // dependent, so the use of the keyword 'typename' and 'template' | |
3687 // is not needed (and actually forbidden). | |
3688 A<K> a; | |
3689 a.bar<0>(); | |
3690 A<K>::B<float> b; | |
3691 b.callme(); | |
3692 } | |
3693 * In a template definition, unqualified names will no longer find | |
3694 members of a dependent base (as specified by [temp.dep]/3 in the | |
3695 C++ standard). For example, | |
3696 template <typename T> struct B { | |
3697 int m; | |
3698 int n; | |
3699 int f (); | |
3700 int g (); | |
3701 }; | |
3702 int n; | |
3703 int g (); | |
3704 template <typename T> struct C : B<T> { | |
3705 void h () | |
3706 { | |
3707 m = 0; // error | |
3708 f (); // error | |
3709 n = 0; // ::n is modified | |
3710 g (); // ::g is called | |
3711 } | |
3712 }; | |
3713 You must make the names dependent, e.g. by prefixing them with | |
3714 this->. Here is the corrected definition of C<T>::h, | |
3715 template <typename T> void C<T>::h () | |
3716 { | |
3717 this->m = 0; | |
3718 this->f (); | |
3719 this->n = 0 | |
3720 this->g (); | |
3721 } | |
3722 As an alternative solution (unfortunately not backwards compatible | |
3723 with GCC 3.3), you may use using declarations instead of this->: | |
3724 template <typename T> struct C : B<T> { | |
3725 using B<T>::m; | |
3726 using B<T>::f; | |
3727 using B<T>::n; | |
3728 using B<T>::g; | |
3729 void h () | |
3730 { | |
3731 m = 0; | |
3732 f (); | |
3733 n = 0; | |
3734 g (); | |
3735 } | |
3736 }; | |
3737 * In templates, all non-dependent names are now looked up and bound | |
3738 at definition time (while parsing the code), instead of later when | |
3739 the template is instantiated. For instance: | |
3740 void foo(int); | |
3741 | |
3742 template <int> struct A { | |
3743 static void bar(void){ | |
3744 foo('a'); | |
3745 } | |
3746 }; | |
3747 | |
3748 void foo(char); | |
3749 | |
3750 int main() | |
3751 { | |
3752 A<0>::bar(); // Calls foo(int), used to call foo(char). | |
3753 } | |
3754 | |
3755 * In an explicit instantiation of a class template, you must use | |
3756 class or struct before the template-id: | |
3757 template <int N> | |
3758 class A {}; | |
3759 | |
3760 template A<0>; // error, not accepted anymore | |
3761 template class A<0>; // OK | |
3762 * The "named return value" and "implicit typename" extensions have | |
3763 been removed. | |
3764 * Default arguments in function types have been deprecated and will | |
3765 be removed. | |
3766 * ARM-style name-injection of friend declarations has been deprecated | |
3767 and will be removed. For example: struct S { friend void f(); }; | |
3768 void g() { f(); } will not be accepted by future versions of G++; | |
3769 instead a declaration of "f" will need to be present outside of the | |
3770 scope of "S". | |
3771 * Covariant returns are implemented for all but varadic functions | |
3772 that require an adjustment. | |
3773 * When -pedantic is used, G++ now issues errors about spurious | |
3774 semicolons. For example, | |
3775 namespace N {}; // Invalid semicolon. | |
3776 void f() {}; // Invalid semicolon. | |
3777 * G++ no longer accepts attributes for a declarator after the | |
3778 initializer associated with that declarator. For example, | |
3779 X x(1) __attribute__((...)); | |
3780 is no longer accepted. Instead, use: | |
3781 X x __attribute__((...)) (1); | |
3782 * Inside the scope of a template class, the name of the class itself | |
3783 can be treated as either a class or a template. So GCC used to | |
3784 accept the class name as argument of type template, and template | |
3785 template parameter. However this is not C++ standard compliant. Now | |
3786 the name is not treated as a valid template template argument | |
3787 unless you qualify the name by its scope. For example, the code | |
3788 below no longer compiles. | |
3789 template <template <class> class TT> class X {}; | |
3790 template <class T> class Y { | |
3791 X<Y> x; // Invalid, Y is always a type template parameter. | |
3792 }; | |
3793 The valid code for the above example is | |
3794 X< ::Y> x; // Valid. | |
3795 (Notice the space between < and : to prevent GCC to interpret this | |
3796 as a digraph for [.) | |
3797 * Friend declarations that refer to template specializations are | |
3798 rejected if the template has not already been declared. For | |
3799 example, | |
3800 template <typename T> | |
3801 class C { | |
3802 friend void f<> (C&); | |
3803 }; | |
3804 is rejected. You must first declare f as a template, | |
3805 template <typename T> | |
3806 void f(T); | |
3807 * In case of friend declarations, every name used in the friend | |
3808 declaration must be accessible at the point of that declaration. | |
3809 Previous versions of G++ used to be less strict about this and | |
3810 allowed friend declarations for private class members, for example. | |
3811 See the ISO C++ Standard Committee's [11]defect report #209 for | |
3812 details. | |
3813 * Declaration of member functions of class templates as friends are | |
3814 supported. For example, | |
3815 template <typename T> struct A { | |
3816 void f(); | |
3817 }; | |
3818 class C { | |
3819 template <typename T> friend void A<T>::f(); | |
3820 }; | |
3821 * You must use template <> to introduce template specializations, as | |
3822 required by the standard. For example, | |
3823 template <typename T> | |
3824 struct S; | |
3825 | |
3826 struct S<int> { }; | |
3827 is rejected. You must write, | |
3828 template <> struct S<int> {}; | |
3829 * G++ used to accept code like this, | |
3830 struct S { | |
3831 int h(); | |
3832 void f(int i = g()); | |
3833 int g(int i = h()); | |
3834 }; | |
3835 This behavior is not mandated by the standard. Now G++ issues an | |
3836 error about this code. To avoid the error, you must move the | |
3837 declaration of g before the declaration of f. The default arguments | |
3838 for g must be visible at the point where it is called. | |
3839 * The C++ ABI Section 3.3.3 specifications for the array construction | |
3840 routines __cxa_vec_new2 and __cxa_vec_new3 were changed to return | |
3841 NULL when the allocator argument returns NULL. These changes are | |
3842 incorporated into the libstdc++ runtime library. | |
3843 * Using a name introduced by a typedef in a friend declaration or in | |
3844 an explicit instantiation is now rejected, as specified by the ISO | |
3845 C++ standard. | |
3846 class A; | |
3847 typedef A B; | |
3848 class C { | |
3849 friend class B; // error, no typedef name here | |
3850 friend B; // error, friend always needs class/struct/enum | |
3851 friend class A; // OK | |
3852 }; | |
3853 | |
3854 template <int> class Q {}; | |
3855 typedef Q<0> R; | |
3856 template class R; // error, no typedef name here | |
3857 template class Q<0>; // OK | |
3858 * When allocating an array with a new expression, GCC used to allow | |
3859 parentheses around the type name. This is actually ill-formed and | |
3860 it is now rejected: | |
3861 int* a = new (int)[10]; // error, not accepted anymore | |
3862 int* a = new int[10]; // OK | |
3863 * When binding an rvalue of class type to a reference, the copy | |
3864 constructor of the class must be accessible. For instance, consider | |
3865 the following code: | |
3866 class A | |
3867 { | |
3868 public: | |
3869 A(); | |
3870 | |
3871 private: | |
3872 A(const A&); // private copy ctor | |
3873 }; | |
3874 | |
3875 A makeA(void); | |
3876 void foo(const A&); | |
3877 | |
3878 void bar(void) | |
3879 { | |
3880 foo(A()); // error, copy ctor is not accessible | |
3881 foo(makeA()); // error, copy ctor is not accessible | |
3882 | |
3883 A a1; | |
3884 foo(a1); // OK, a1 is a lvalue | |
3885 } | |
3886 This might be surprising at first sight, especially since most | |
3887 popular compilers do not correctly implement this rule ([12]further | |
3888 details). | |
3889 * When forming a pointer to member or a pointer to member function, | |
3890 access checks for class visibility (public, protected, private) are | |
3891 now performed using the qualifying scope of the name itself. This | |
3892 is better explained with an example: | |
3893 class A | |
3894 { | |
3895 public: | |
3896 void pub_func(); | |
3897 protected: | |
3898 void prot_func(); | |
3899 private: | |
3900 void priv_func(); | |
3901 }; | |
3902 | |
3903 class B : public A | |
3904 { | |
3905 public: | |
3906 void foo() | |
3907 { | |
3908 &A::pub_func; // OK, pub_func is accessible through A | |
3909 &A::prot_func; // error, cannot access prot_func through A | |
3910 &A::priv_func; // error, cannot access priv_func through A | |
3911 | |
3912 &B::pub_func; // OK, pub_func is accessible through B | |
3913 &B::prot_func; // OK, can access prot_func through B (within B) | |
3914 &B::priv_func; // error, cannot access priv_func through B | |
3915 } | |
3916 }; | |
3917 | |
3918 Runtime Library (libstdc++) | |
3919 | |
3920 * Optimization work: | |
3921 + Streamlined streambuf, filebuf, separate synched with C | |
3922 Standard I/O streambuf. | |
3923 + All formatted I/O now uses cached locale information. | |
3924 + STL optimizations (memory/speed for list, red-black trees as | |
3925 used by sets and maps). | |
3926 + More use of GCC builtins. | |
3927 + String optimizations (avoid contention on | |
3928 increment/decrement-and-test of the reference count in the | |
3929 empty-string object, constructor from input_iterators | |
3930 speedup). | |
3931 * Static linkage size reductions. | |
3932 * Large File Support (files larger than 2 GB on 32-bit systems). | |
3933 * Wide character and variable encoding filebuf work (UTF-8, Unicode). | |
3934 * Generic character traits. | |
3935 * Also support wchar_t specializations on Mac OS 10.3.x, FreeBSD 5.x, | |
3936 Solaris 2.7 and above, AIX 5.x, Irix 6.5. | |
3937 * The allocator class is now standard-conformant, and two additional | |
3938 extension allocators have been added, mt_alloc and | |
3939 bitmap_allocator. | |
3940 * PCH support: -include bits/stdc++.h (2x compile speedup). | |
3941 * Rewrote __cxa_demangle with support for C++ style allocators. | |
3942 * New debug modes for STL containers and iterators. | |
3943 * Testsuite rewrite: five times as many tests, plus increasingly | |
3944 sophisticated tests, including I/O, MT, multi-locale, wide and | |
3945 narrow characters. | |
3946 * Use current versions of GNU "autotools" for build/configuration. | |
3947 | |
3948 Objective-C | |
3949 | |
3950 * The Objective-C front end has been updated to include the numerous | |
3951 bug fixes and enhancements previously available only in Apple's | |
3952 version of GCC. These include: | |
3953 + Structured exception (@try... @catch... @finally, @throw) and | |
3954 synchronization (@synchronized) support. These are accessible | |
3955 via the -fobjc-exceptions switch; as of this writing, they may | |
3956 only be used in conjunction with -fnext-runtime on Mac OS X | |
3957 10.3 and later. See [13]Options Controlling Objective-C | |
3958 Dialect for more information. | |
3959 + An overhaul of @encode logic. The C99 _Bool and C++ bool type | |
3960 may now be encoded as 'B'. In addition, the back-end/codegen | |
3961 dependencies have been removed. | |
3962 + An overhaul of message dispatch construction, ensuring that | |
3963 the various receiver types (and casts thereof) are handled | |
3964 properly, and that correct diagnostics are issued. | |
3965 + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue" | |
3966 (-freplace-objc-classes) debugging modes, currently available | |
3967 on Mac OS X 10.3 and later. See [14]Options Controlling | |
3968 Objective-C Dialect for more information. | |
3969 + Access to optimized runtime entry points (-fno-nil-receivers ) | |
3970 on the assumption that message receivers are never nil. This | |
3971 is currently available on Mac OS X 10.3 and later. See | |
3972 [15]Options Controlling Objective-C Dialect for more | |
3973 information. | |
3974 | |
3975 Java | |
3976 | |
3977 * Compiling a .jar file will now cause non-.class entries to be | |
3978 automatically compiled as resources. | |
3979 * libgcj has been ported to Darwin. | |
3980 * Jeff Sturm has adapted Jan Hubicka's call graph optimization code | |
3981 to gcj. | |
3982 * libgcj has a new gcjlib URL type; this lets URLClassLoader load | |
3983 code from shared libraries. | |
3984 * libgcj has been much more completely merged with [16]GNU Classpath. | |
3985 * Class loading is now much more correct; in particular the caller's | |
3986 class loader is now used when that is required. | |
3987 * [17]Eclipse 2.x will run out of the box using gij. | |
3988 * Parts of java.nio have been implemented. Direct and indirect | |
3989 buffers work, as do fundamental file and socket operations. | |
3990 * java.awt has been improved, though it is still not ready for | |
3991 general use. | |
3992 * The HTTP protocol handler now uses HTTP/1.1 and can handle the POST | |
3993 method. | |
3994 * The MinGW port has matured. Enhancements include socket timeout | |
3995 support, thread interruption, improved Runtime.exec() handling and | |
3996 support for accented characters in filenames. | |
3997 | |
3998 Fortran | |
3999 | |
4000 * Fortran improvements are listed in the [18]Fortran documentation. | |
4001 | |
4002 New Targets and Target Specific Improvements | |
4003 | |
4004 Alpha | |
4005 | |
4006 * Several [19]built-in functions have been added such as | |
4007 __builtin_alpha_zap to allow utilizing the more obscure | |
4008 instructions of the CPU. | |
4009 * Parameter passing of complex arguments has changed to match the | |
4010 [20]ABI. This change is incompatible with previous GCC versions, | |
4011 but does fix compatibility with the Tru64 compiler and several | |
4012 corner cases where GCC was incompatible with itself. | |
4013 | |
4014 ARM | |
4015 | |
4016 * Nicolas Pitre has contributed his hand-coded floating-point support | |
4017 code for ARM. It is both significantly smaller and faster than the | |
4018 existing C-based implementation, even when building applications | |
4019 for Thumb. The arm-elf configuration has been converted to use the | |
4020 new code. | |
4021 * Support for the Intel's iWMMXt architecture, a second generation | |
4022 XScale processor, has been added. Enabled at run time with the | |
4023 -mcpu=iwmmxt command line switch. | |
4024 * A new ARM target has been added: arm-wince-pe. This is similar to | |
4025 the arm-pe target, but it defaults to using the APCS32 ABI. | |
4026 * The existing ARM pipeline description has been converted to the use | |
4027 the [21]DFA processor pipeline model. There is not much change in | |
4028 code performance, but the description is now [22]easier to | |
4029 understand. | |
4030 * Support for the Cirrus EP9312 Maverick floating point co-processor | |
4031 added. Enabled at run time with the -mcpu=ep9312 command line | |
4032 switch. Note however that the multilibs to support this chip are | |
4033 currently disabled in gcc/config/arm/t-arm-elf, so if you want to | |
4034 enable their production you will have to uncomment the entries in | |
4035 that file. | |
4036 | |
4037 H8/300 | |
4038 | |
4039 * Support for long long has been added. | |
4040 * Support for saveall attribute has been added. | |
4041 * Pavel Pisa contributed hand-written 32-bit-by-32-bit division code | |
4042 for H8/300H and H8S, which is much faster than the previous | |
4043 implementation. | |
4044 * A lot of small performance improvements. | |
4045 | |
4046 IA-32/AMD64 (x86-64) | |
4047 | |
4048 * Tuning for K8 (AMD Opteron/Athlon64) core is available via | |
4049 -march=k8 and -mcpu=k8. | |
4050 * Scalar SSE code generation carefully avoids reformatting penalties, | |
4051 hidden dependencies and minimizes the number of uops generated on | |
4052 both Intel and AMD CPUs. | |
4053 * Vector MMX and SSE operands are now passed in registers to improve | |
4054 performance and match the argument passing convention used by the | |
4055 Intel C++ Compiler. As a result it is not possible to call | |
4056 functions accepting vector arguments compiled by older GCC version. | |
4057 * Conditional jump elimination is now more aggressive on modern CPUs. | |
4058 * The Athlon ports has been converted to use the DFA processor | |
4059 pipeline description. | |
4060 * Optimization of indirect tail calls is now possible in a similar | |
4061 fashion as direct sibcall optimization. | |
4062 * Further small performance improvements. | |
4063 * -m128bit-long-double is now less buggy. | |
4064 * __float128 support in 64-bit compilation. | |
4065 * Support for data structures exceeding 2GB in 64-bit mode. | |
4066 * -mcpu has been renamed to -mtune. | |
4067 | |
4068 IA-64 | |
4069 | |
4070 * Tuning code for the Itanium 2 processor has been added. The | |
4071 generation of code tuned for Itanium 2 (option -mtune=itanium2) is | |
4072 enabled by default now. To generate code tuned for Itanium 1 the | |
4073 option -mtune=itanium1 should be used. | |
4074 * [23]DFA processor pipeline descriptions for the IA-64 processors | |
4075 have been added. This resulted in about 3% improvement on the | |
4076 SPECInt2000 benchmark for Itanium 2. | |
4077 * Instruction bundling for the IA-64 processors has been rewritten | |
4078 using the DFA pipeline hazard recognizer. It resulted in about 60% | |
4079 compiler speedup on the SPECInt2000 C programs. | |
4080 | |
4081 M32R | |
4082 | |
4083 * Support for the M32R/2 processor has been added by Renesas. | |
4084 * Support for an M32R Linux target and PIC code generation has been | |
4085 added by Renesas. | |
4086 | |
4087 M68000 | |
4088 | |
4089 * Bernardo Innocenti (Develer S.r.l.) has contributed the | |
4090 m68k-uclinux target, based on former work done by Paul Dale | |
4091 (SnapGear Inc.). Code generation for the ColdFire processors family | |
4092 has been enhanced and extended to support the MCF 53xx and MCF 54xx | |
4093 cores, integrating former work done by Peter Barada (Motorola). | |
4094 | |
4095 MIPS | |
4096 | |
4097 Processor-specific changes | |
4098 | |
4099 * Support for the RM7000 and RM9000 processors has been added. It can | |
4100 be selected using the -march compiler option and should work with | |
4101 any MIPS I (mips-*) or MIPS III (mips64-*) configuration. | |
4102 * Support for revision 2 of the MIPS32 ISA has been added. It can be | |
4103 selected with the command-line option -march=mips32r2. | |
4104 * There is a new option, -mfix-sb1, to work around certain SB-1 | |
4105 errata. | |
4106 | |
4107 Configuration | |
4108 | |
4109 * It is possible to customize GCC using the following configure-time | |
4110 options: | |
4111 + --with-arch, which specifies the default value of the -march | |
4112 option. | |
4113 + --with-tune, which specifies the default value of the -mtune | |
4114 option. | |
4115 + --with-abi, which specifies the default ABI. | |
4116 + --with-float=soft, which tells GCC to use software floating | |
4117 point by default. | |
4118 + --with-float=hard, which tells GCC to use hardware floating | |
4119 point by default. | |
4120 * A 64-bit GNU/Linux port has been added. The associated | |
4121 configurations are mips64-linux-gnu and mips64el-linux-gnu. | |
4122 * The 32-bit GNU/Linux port now supports Java. | |
4123 * The IRIX 6 configuration now supports the o32 ABI and will build | |
4124 o32 multilibs by default. This support is compatible with both | |
4125 binutils and the SGI tools, but note that several features, | |
4126 including debugging information and DWARF2 exception handling, are | |
4127 only available when using the GNU assembler. Use of the GNU | |
4128 assembler and linker (version 2.15 or above) is strongly | |
4129 recommended. | |
4130 * The IRIX 6 configuration now supports 128-bit long doubles. | |
4131 * There are two new RTEMS-specific configurations, mips-rtems and | |
4132 mipsel-rtems. | |
4133 * There are two new *-elf configurations, mipsisa32r2-elf and | |
4134 mipsisa32r2el-elf. | |
4135 | |
4136 General | |
4137 | |
4138 * Several [24]ABI bugs have been fixed. Unfortunately, these changes | |
4139 will break binary compatibility with earlier releases. | |
4140 * GCC can now use explicit relocation operators when generating | |
4141 -mabicalls code. This behavior is controlled by -mexplicit-relocs | |
4142 and can have several performance benefits. For example: | |
4143 + It allows for more optimization of GOT accesses, including | |
4144 better scheduling and redundancy elimination. | |
4145 + It allows sibling calls to be implemented as jumps. | |
4146 + n32 and n64 leaf functions can use a call-clobbered global | |
4147 pointer instead of $28. | |
4148 + The code to set up $gp can be removed from functions that | |
4149 don't need it. | |
4150 * A new option, -mxgot, allows the GOT to be bigger than 64k. This | |
4151 option is equivalent to the assembler's -xgot option and should be | |
4152 used instead of -Wa,-xgot. | |
4153 * Frame pointer elimination is now supported when generating 64-bit | |
4154 MIPS16 code. | |
4155 * Inline block moves have been optimized to take more account of | |
4156 alignment information. | |
4157 * Many internal changes have been made to the MIPS port, mostly aimed | |
4158 at reducing the reliance on assembler macros. | |
4159 | |
4160 PowerPC | |
4161 | |
4162 * GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64 | |
4163 [25]ABI incompatibilities regarding the way parameters are passed | |
4164 during functions calls. These changes may result in incompatibility | |
4165 between code compiled with GCC 3.3 and GCC 3.4. | |
4166 | |
4167 PowerPC Darwin | |
4168 | |
4169 * Support for shared/dylib gcc libraries has been added. It is | |
4170 enabled by default on powerpc-apple-darwin7.0.0 and up. | |
4171 * Libgcj is enabled by default. On systems older than | |
4172 powerpc-apple-darwin7.0.0 you need to install dlcompat. | |
4173 * 128-bit IBM extended precision format support added for long | |
4174 double. | |
4175 | |
4176 PowerPC64 GNU/Linux | |
4177 | |
4178 * By default, PowerPC64 GNU/Linux now uses natural alignment of | |
4179 structure elements. The old four byte alignment for double, with | |
4180 special rules for a struct starting with a double, can be chosen | |
4181 with -malign-power. This change may result in incompatibility | |
4182 between code compiled with GCC 3.3 and GCC 3.4. | |
4183 * -mabi=altivec is now the default rather than -mabi=no-altivec. | |
4184 * 128-bit IBM extended precision format support added for long | |
4185 double. | |
4186 | |
4187 S/390 and zSeries | |
4188 | |
4189 * New command-line options allow to specify the intended execution | |
4190 environment for generated code: | |
4191 + -mesa/-mzarch allows to specify whether to generate code | |
4192 running in ESA/390 mode or in z/Architecture mode (this is | |
4193 applicable to 31-bit code only). | |
4194 + -march allows to specify a minimum processor architecture | |
4195 level (g5, g6, z900, or z990). | |
4196 + -mtune allows to specify which processor to tune for. | |
4197 * It is possible to customize GCC using the following configure-time | |
4198 options: | |
4199 + --with-mode, which specifies whether to default to assuming | |
4200 ESA/390 or z/Architecture mode. | |
4201 + --with-arch, which specifies the default value of the -march | |
4202 option. | |
4203 + --with-tune, which specifies the default value of the -mtune | |
4204 option. | |
4205 * Support for the z990 processor has been added, and can be selected | |
4206 using -march=z990 or -mtune=z990. This includes instruction | |
4207 scheduling tuned for the superscalar instruction pipeline of the | |
4208 z990 processor as well as support for all new instructions provided | |
4209 by the long-displacement facility. | |
4210 * Support to generate 31-bit code optimized for zSeries processors | |
4211 (running in ESA/390 or in z/Architecture mode) has been added. This | |
4212 can be selected using -march=z900 and -mzarch respectively. | |
4213 * Instruction scheduling for the z900 and z990 processors now uses | |
4214 the DFA pipeline hazard recognizer. | |
4215 * GCC no longer generates code to maintain a stack backchain, | |
4216 previously used to generate stack backtraces for debugging | |
4217 purposes. As replacement that does not incur runtime overhead, | |
4218 DWARF-2 call frame information is provided by GCC; this is | |
4219 supported by GDB 6.1. The old behavior can be restored using the | |
4220 -mbackchain option. | |
4221 * The stack frame size of functions may now exceed 2 GB in 64-bit | |
4222 code. | |
4223 * A port for the 64-bit IBM TPF operating system has been added; the | |
4224 configuration is s390x-ibm-tpf. This configuration is supported as | |
4225 cross-compilation target only. | |
4226 * Various changes to improve the generated code have been | |
4227 implemented, including: | |
4228 + GCC now uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT | |
4229 instructions to significantly speed up many floating-point | |
4230 applications. | |
4231 + GCC now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL | |
4232 WITH BORROW instructions to speed up long long arithmetic. | |
4233 + GCC now uses the SEARCH STRING instruction to implement | |
4234 strlen(). | |
4235 + In many cases, function call overhead for 31-bit code has been | |
4236 reduced by placing the literal pool after the function code | |
4237 instead of after the function prolog. | |
4238 + Register 14 is no longer reserved in 64-bit code. | |
4239 + Handling of global register variables has been improved. | |
4240 | |
4241 SPARC | |
4242 | |
4243 * The option -mflat is deprecated. | |
4244 * Support for large (> 2GB) frames has been added to the 64-bit port. | |
4245 * Several [26]ABI bugs have been fixed. Unfortunately, these changes | |
4246 will break binary compatibility with earlier releases. | |
4247 * The default debugging format has been switched from STABS to | |
4248 DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already | |
4249 the default debugging format for 64-bit code on Solaris. | |
4250 | |
4251 SuperH | |
4252 | |
4253 * Support for the SH2E processor has been added. Enabled at run time | |
4254 with the -m2e command line switch, or at configure time by | |
4255 specifying sh2e as the machine part of the target triple. | |
4256 | |
4257 V850 | |
4258 | |
4259 * Support for the Mitsubishi V850E1 processor has been added. This is | |
4260 a variant of the V850E processor with some additional debugging | |
4261 instructions. | |
4262 | |
4263 Xtensa | |
4264 | |
4265 * Several ABI bugs have been fixed. Unfortunately, these changes | |
4266 break binary compatibility with earlier releases. | |
4267 + For big-endian processors, the padding of aggregate return | |
4268 values larger than a word has changed. If the size of an | |
4269 aggregate return value is not a multiple of 32 bits, previous | |
4270 versions of GCC inserted padding in the most-significant bytes | |
4271 of the first return value register. Aggregates larger than a | |
4272 word are now padded in the least-significant bytes of the last | |
4273 return value register used. Aggregates smaller than a word are | |
4274 still padded in the most-significant bytes. The return value | |
4275 padding has not changed for little-endian processors. | |
4276 + Function arguments with 16-byte alignment are now properly | |
4277 aligned. | |
4278 + The implementation of the va_list type has changed. A va_list | |
4279 value created by va_start from a previous release cannot be | |
4280 used with va_arg from this release, or vice versa. | |
4281 * More processor configuration options for Xtensa processors are | |
4282 supported: | |
4283 + the ABS instruction is now optional; | |
4284 + the ADDX* and SUBX* instructions are now optional; | |
4285 + an experimental CONST16 instruction can be used to synthesize | |
4286 constants instead of loading them from constant pools. | |
4287 These and other Xtensa processor configuration options can no | |
4288 longer be enabled or disabled by command-line options; the | |
4289 processor configuration must be specified by the xtensa-config.h | |
4290 header file when building GCC. Additionally, the | |
4291 -mno-serialize-volatile option is no longer supported. | |
4292 | |
4293 Obsolete Systems | |
4294 | |
4295 Support for a number of older systems has been declared obsolete in GCC | |
4296 3.4. Unless there is activity to revive them, the next release of GCC | |
4297 will have their sources permanently removed. | |
4298 | |
4299 All configurations of the following processor architectures have been | |
4300 declared obsolete: | |
4301 * Mitsubishi D30V, d30v-* | |
4302 * AT&T DSP1600 and DSP1610, dsp16xx-* | |
4303 * Intel 80960, i960 | |
4304 | |
4305 Also, some individual systems have been obsoleted: | |
4306 * ARM Family | |
4307 + Support for generating code for operation in APCS/26 mode | |
4308 (-mapcs-26). | |
4309 * IBM ESA/390 | |
4310 + "Bigfoot" port, i370-*. (The other port, s390-*, is actively | |
4311 maintained and supported.) | |
4312 * Intel 386 family | |
4313 + MOSS, i?86-moss-msdos and i?86-*-moss* | |
4314 + NCR 3000 running System V r.4, i?86-ncr-sysv4* | |
4315 + FreeBSD with a.out object format, i?86-*-freebsd*aout* and | |
4316 i?86-*-freebsd2* | |
4317 + Linux with a.out object format, i?86-linux*aout* | |
4318 + Linux with libc5, a.k.a. glibc1, i?86-linux*libc1* | |
4319 + Interix versions before Interix 3, i?86-*-interix | |
4320 + Mach microkernel, i?86-mach* | |
4321 + SCO UnixWare with UDK, i?86-*-udk* | |
4322 + Generic System V releases 1, 2, and 3, i?86-*-sysv[123]* | |
4323 + VSTa microkernel, i386-*-vsta | |
4324 * Motorola M68000 family | |
4325 + HPUX, m68k-hp-hpux* and m68000-hp-hpux* | |
4326 + NetBSD with a.out object format (before NetBSD 1.4), | |
4327 m68k-*-*-netbsd* except m68k-*-*-netbsdelf* | |
4328 + Generic System V r.4, m68k-*-sysv4* | |
4329 * VAX | |
4330 + Generic VAX, vax-*-* (This is generic VAX only; we have not | |
4331 obsoleted any VAX triples for specific operating systems.) | |
4332 | |
4333 Documentation improvements | |
4334 | |
4335 Other significant improvements | |
4336 | |
4337 * The build system has undergone several significant cleanups. | |
4338 Subdirectories will only be configured if they are being built, and | |
4339 all subdirectory configures are run from the make command. The top | |
4340 level has been autoconfiscated. | |
4341 * Building GCC no longer writes to its source directory. This should | |
4342 help those wishing to share a read-only source directory over NFS | |
4343 or build from a CD. The exceptions to this feature are if you | |
4344 configure with either --enable-maintainer-mode or | |
4345 --enable-generated-files-in-srcdir. | |
4346 * The -W warning option has been renamed to -Wextra, which is more | |
4347 easily understood. The older spelling will be retained for | |
4348 backwards compatibility. | |
4349 * Substantial improvements in compile time have been made, | |
4350 particularly for non-optimizing compilations. | |
4351 __________________________________________________________________ | |
4352 | |
4353 GCC 3.4.0 | |
4354 | |
4355 Bug Fixes | |
4356 | |
4357 A vast number of bugs have been fixed in 3.4.0, too many to publish a | |
4358 complete list here. [27]Follow this link to query the Bugzilla database | |
4359 for the list of over 900 bugs fixed in 3.4.0. This is the list of all | |
4360 bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4 | |
4361 regressions. | |
4362 __________________________________________________________________ | |
4363 | |
4364 GCC 3.4.1 | |
4365 | |
4366 Bug Fixes | |
4367 | |
4368 This section lists the problem reports (PRs) from GCC's bug tracking | |
4369 system that are known to be fixed in the 3.4.1 release. This list might | |
4370 not be complete (that is, it is possible that some PRs that have been | |
4371 fixed are not listed here). | |
4372 | |
4373 Bootstrap failures | |
4374 | |
4375 * [28]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler | |
4376 emitted - PIC related | |
4377 * [29]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf | |
4378 * [30]14760 A bug in configure.in prevents using both | |
4379 --program-suffix and --program-prefix | |
4380 * [31]14671 [hppa64] bootstrap fails: ICE in | |
4381 save_call_clobbered_regs, in caller_save.c | |
4382 * [32]15093 [alpha][Java] make bootstrap fails to configure libffi on | |
4383 Alpha | |
4384 * [33]15178 Solaris 9/x86 fails linking after stage 3 | |
4385 | |
4386 Multi-platform internal compiler errors (ICEs) | |
4387 | |
4388 * [34]12753 (preprocessor) Memory corruption in preprocessor on bad | |
4389 input | |
4390 * [35]13985 ICE in gcc.c-torture/compile/930621-1.c | |
4391 * [36]14810 (c++) tree check failures with invalid code involving | |
4392 templates | |
4393 * [37]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in | |
4394 cp/parser.c | |
4395 * [38]15044 (c++) ICE on syntax error, template header | |
4396 * [39]15057 (c++) Compiling of conditional value throw constructs | |
4397 cause a segmentation violation | |
4398 * [40]15064 (c++) typeid of template parameter gives ICE | |
4399 * [41]15142 (c++) ICE when passing a string where a char* is expected | |
4400 in a throw statement | |
4401 * [42]15159 ICE in rtl_verify_flow_info_1 | |
4402 * [43]15165 (c++) ICE in instantiate_template | |
4403 * [44]15193 Unary minus using pointer to V4SF vector causes | |
4404 -fforce-mem to exhaust all memory | |
4405 * [45]15209 (c++) Runs out of memory with packed structs | |
4406 * [46]15227 (c++) Trouble with invalid function definition | |
4407 * [47]15285 (c++) instantiate_type ICE when forming pointer to | |
4408 template function | |
4409 * [48]15299 (c++) ICE in resolve_overloaded_unification | |
4410 * [49]15329 (c++) ICE on constructor of member template | |
4411 * [50]15550 ICE in extract_insn, in recog.c | |
4412 * [51]15554 (c++) ICE in tsubst_copy, in cp/pt.c | |
4413 * [52]15640 (c++) ICE on invalid code in arg_assoc, in | |
4414 cp/name-lookup.c | |
4415 * [53]15666 [unit-at-a-time] Gcc abort on valid code | |
4416 * [54]15696 (c++) ICE with bad pointer-to-member code | |
4417 * [55]15701 (c++) ICE with friends and template template parameter | |
4418 * [56]15761 ICE in do_SUBST, in combine.c | |
4419 * [57]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops | |
4420 | |
4421 Ada | |
4422 | |
4423 * [58]14538 All RTEMS targets broken for gnat | |
4424 | |
4425 C front end | |
4426 | |
4427 * [59]12391 missing warning about assigning to an incomplete type | |
4428 * [60]14649 atan(1.0) should not be a constant expression | |
4429 * [61]15004 [unit-at-a-time] no warning for unused paramater in | |
4430 static function | |
4431 * [62]15749 --pedantic-errors behaves differently from --pedantic | |
4432 with C-compiler on GNU/Linux | |
4433 | |
4434 C++ compiler and library | |
4435 | |
4436 * [63]10646 non-const reference is incorrectly matched in a "const T" | |
4437 partial specialization | |
4438 * [64]12077 wcin.rdbuf()->in_avail() return value too high | |
4439 * [65]13598 enc_filebuf doesn't work | |
4440 * [66]14211 const_cast returns lvalue but should be rvalue | |
4441 * [67]14220 num_put::do_put() undesired float/double behavior | |
4442 * [68]14245 problem with user-defined allocators in std::basic_string | |
4443 * [69]14340 libstdc++ Debug mode: failure to convert iterator to | |
4444 const_iterator | |
4445 * [70]14600 __gnu_cxx::stdio_sync_filebuf should expose internal | |
4446 FILE* | |
4447 * [71]14668 no warning anymore for reevaluation of declaration | |
4448 * [72]14775 LFS (large file support) tests missing | |
4449 * [73]14821 Duplicate namespace alias declaration should not conflict | |
4450 * [74]14930 Friend declaration ignored | |
4451 * [75]14932 cannot use offsetof to get offsets of array elements in | |
4452 g++ 3.4.0 | |
4453 * [76]14950 [non unit-at-a-time] always_inline does not mix with | |
4454 templates and -O0 | |
4455 * [77]14962 g++ ignores #pragma redefine_extname | |
4456 * [78]14975 Segfault on low-level write error during imbue | |
4457 * [79]15002 Linewise stream input is unusably slow (std::string slow) | |
4458 * [80]15025 compiler accepts redeclaration of template as | |
4459 non-template | |
4460 * [81]15046 [arm] Math functions misdetected by cross configuration | |
4461 * [82]15069 a bit test on a variable of enum type is miscompiled | |
4462 * [83]15074 g++ -lsupc++ still links against libstdc++ | |
4463 * [84]15083 spurious "statement has no effect" warning | |
4464 * [85]15096 parse error with templates and pointer to const member | |
4465 * [86]15287 combination of operator[] and operator .* fails in | |
4466 templates | |
4467 * [87]15317 __attribute__ unused in first parameter of constructor | |
4468 gives error | |
4469 * [88]15337 sizeof on incomplete type diagnostic | |
4470 * [89]15361 bitset<>::_Find_next fails | |
4471 * [90]15412 _GLIBCXX_ symbols symbols defined and used in different | |
4472 namespaces | |
4473 * [91]15427 valid code results in incomplete type error | |
4474 * [92]15471 Incorrect member pointer offsets in anonymous | |
4475 structs/unions | |
4476 * [93]15503 nested template problem | |
4477 * [94]15507 compiler hangs while laying out union | |
4478 * [95]15542 operator & and template definitions | |
4479 * [96]15565 SLES9: leading + sign for unsigned int with showpos | |
4480 * [97]15625 friend defined inside a template fails to find static | |
4481 function | |
4482 * [98]15629 Function templates, overloads, and friend name injection | |
4483 * [99]15742 'noreturn' attribute ignored in method of template | |
4484 functions. | |
4485 * [100]15775 Allocator::pointer consistently ignored | |
4486 * [101]15821 Duplicate namespace alias within namespace rejected | |
4487 * [102]15862 'enum yn' fails (confict with undeclared builtin) | |
4488 * [103]15875 rejects pointer to member in template | |
4489 * [104]15877 valid code using templates and anonymous enums is | |
4490 rejected | |
4491 * [105]15947 Puzzling error message for wrong destructor declaration | |
4492 in template class | |
4493 * [106]16020 cannot copy __gnu_debug::bitset | |
4494 * [107]16154 input iterator concept too restrictive | |
4495 * [108]16174 deducing top-level consts | |
4496 | |
4497 Java | |
4498 | |
4499 * [109]14315 Java compiler is not parallel make safe | |
4500 | |
4501 Fortran | |
4502 | |
4503 * [110]15151 [g77] incorrect logical i/o in 64-bit mode | |
4504 | |
4505 Objective-C | |
4506 | |
4507 * [111]7993 private variables cannot be shadowed in subclasses | |
4508 | |
4509 Optimization bugs | |
4510 | |
4511 * [112]15228 useless copies of floating point operands | |
4512 * [113]15345 [non-unit-at-a-time] unreferenced nested inline | |
4513 functions not optimized away | |
4514 * [114]15945 Incorrect floating point optimization | |
4515 * [115]15526 ftrapv aborts on 0 * (-1) | |
4516 * [116]14690 Miscompiled POOMA tests | |
4517 * [117]15112 GCC generates code to write to unchanging memory | |
4518 | |
4519 Preprocessor | |
4520 | |
4521 * [118]15067 Minor glitch in the source of cpp | |
4522 | |
4523 Main driver program bugs | |
4524 | |
4525 * [119]1963 collect2 interprets -oldstyle_liblookup as -o | |
4526 ldstyle_liblookup | |
4527 | |
4528 x86-specific (Intel/AMD) | |
4529 | |
4530 * [120]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND* | |
4531 section} | |
4532 | |
4533 HPPA-specific | |
4534 | |
4535 * [121]14782 GCC produces an unaligned data access at -O2 | |
4536 * [122]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2 | |
4537 * [123]15202 ICE in reload_cse_simplify_operands, in postreload.c | |
4538 | |
4539 IA64-specific | |
4540 | |
4541 * [124]14610 __float80 constants incorrectly emitted | |
4542 * [125]14813 init_array sections are initialized in the wrong order | |
4543 * [126]14857 GCC segfault on duplicated asm statement | |
4544 * [127]15598 Gcc 3.4 ICE on valid code | |
4545 * [128]15653 Gcc 3.4 ICE on valid code | |
4546 | |
4547 MIPS-specific | |
4548 | |
4549 * [129]15189 wrong filling of delay slot with -march=mips1 -G0 | |
4550 -mno-split-addresses -mno-explicit-relocs | |
4551 * [130]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as | |
4552 2.14.91 | |
4553 * [131]16144 Bogus reference to __divdf3 when -O1 | |
4554 * [132]16176 Miscompilation of unaligned data in MIPS backend | |
4555 | |
4556 PowerPC-specific | |
4557 | |
4558 * [133]11591 ICE in gcc.dg/altivec-5.c | |
4559 * [134]12028 powerpc-eabispe produces bad sCOND operation | |
4560 * [135]14478 rs6000 geu/ltu patterns generate incorrect code | |
4561 * [136]14567 long double and va_arg complex args | |
4562 * [137]14715 Altivec stack layout may overlap gpr save with stack | |
4563 temps | |
4564 * [138]14902 (libstdc++) Stream checking functions fail when -pthread | |
4565 option is used. | |
4566 * [139]14924 Compiler ICE on valid code | |
4567 * [140]14960 -maltivec affects vector return with -mabi=no-altivec | |
4568 * [141]15106 vector varargs failure passing from altivec to | |
4569 non-altivec code for -m32 | |
4570 * [142]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 & | |
4571 half-word operation | |
4572 * [143]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx | |
4573 and stvx | |
4574 * [144]15662 Segmentation fault when an exception is thrown - even if | |
4575 try and catch are specified | |
4576 | |
4577 s390-specific | |
4578 | |
4579 * [145]15054 Bad code due to overlapping stack temporaries | |
4580 | |
4581 SPARC-specific | |
4582 | |
4583 * [146]15783 ICE with union assignment in 64-bit mode | |
4584 * [147]15626 GCC 3.4 emits "ld: warning: relocation error: | |
4585 R_SPARC_UA32" | |
4586 | |
4587 x86-64-specific | |
4588 | |
4589 * [148]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64 | |
4590 * [149]14723 Backported -march=nocona from mainline | |
4591 * [150]15290 __float128 failed to pass to function properly | |
4592 | |
4593 Cygwin/Mingw32-specific | |
4594 | |
4595 * [151]15250 Option -mms-bitfields support on GCC 3.4 is not | |
4596 conformant to MS layout | |
4597 * [152]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe | |
4598 worker on windows32 targets | |
4599 | |
4600 Bugs specific to embedded processors | |
4601 | |
4602 * [153]8309 [m68k] -m5200 produces erroneous SImode set of short | |
4603 varaible on stack | |
4604 * [154]13250 [SH] Gcc code for rotation clobbers the register, but | |
4605 gcc continues to use the register as if it was not clobbered | |
4606 * [155]13803 [coldfire] movqi operand constraints too restrictivefor | |
4607 TARGET_COLDFIRE | |
4608 * [156]14093 [SH] ICE for code when using -mhitachi option in SH | |
4609 * [157]14457 [m6811hc] ICE with simple c++ source | |
4610 * [158]14542 [m6811hc] ICE on simple source | |
4611 * [159]15100 [SH] cc1plus got hang-up on | |
4612 libstdc++-v3/testsuite/abi_check.cc | |
4613 * [160]15296 [CRIS] Delayed branch scheduling causing invalid code on | |
4614 cris-* | |
4615 * [161]15396 [SH] ICE with -O2 -fPIC | |
4616 * [162]15782 [coldfire] m68k_output_mi_thunk emits wrong code for | |
4617 ColdFire | |
4618 | |
4619 Testsuite problems (compiler not affected) | |
4620 | |
4621 * [163]11610 libstdc++ testcases 27_io/* don't work properly remotely | |
4622 * [164]15488 (libstdc++) possibly insufficient file permissions for | |
4623 executing test suite | |
4624 * [165]15489 (libstdc++) testsuite_files determined incorrectly | |
4625 | |
4626 Documentation bugs | |
4627 | |
4628 * [166]13928 (libstdc++) no whatis info in some man pages generated | |
4629 by doxygen | |
4630 * [167]14150 Ada documentation out of date | |
4631 * [168]14949 (c++) Need to document method visibility changes | |
4632 * [169]15123 libstdc++-doc: Allocators.3 manpage is empty | |
4633 __________________________________________________________________ | |
4634 | |
4635 GCC 3.4.2 | |
4636 | |
4637 Bug Fixes | |
4638 | |
4639 This section lists the problem reports (PRs) from GCC's bug tracking | |
4640 system that are known to be fixed in the 3.4.2 release. This list might | |
4641 not be complete (that is, it is possible that some PRs that have been | |
4642 fixed are not listed here). | |
4643 | |
4644 Bootstrap failures and issues | |
4645 | |
4646 * [170]16469 [mips-sgi-irix5.3] bootstrap fails in | |
4647 libstdc++-v3/testsuite | |
4648 * [171]16344 [hppa-linux-gnu] libstdc++'s PCH built by | |
4649 profiledbootstrap does not work with the built compiler | |
4650 * [172]16842 [Solaris/x86] mkheaders can not find mkheaders.conf | |
4651 | |
4652 Multi-platform internal compiler errors (ICEs) | |
4653 | |
4654 * [173]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in | |
4655 cp_parser_class_specifier, in cp/parser.c | |
4656 * [174]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c | |
4657 * [175]15461 (c++) ICE due to NRV and inlining | |
4658 * [176]15890 (c++) ICE in c_expand_expr, in c-common.c | |
4659 * [177]16180 ICE: segmentation fault in RTL optimization | |
4660 * [178]16224 (c++) ICE in write_unscoped_name (template/namespace) | |
4661 * [179]16408 ICE: in delete_insn, in cfgrtl.c | |
4662 * [180]16529 (c++) ICE for: namespace-alias shall not be declared as | |
4663 the name of any other entity | |
4664 * [181]16698 (c++) ICE with exceptions and declaration of __cxa_throw | |
4665 * [182]16706 (c++) ICE in finish_member_declaration, in | |
4666 cp/semantics.c | |
4667 * [183]16810 (c++) Legal C++ program with cast gives ICE in | |
4668 build_ptrmemfunc | |
4669 * [184]16851 (c++) ICE when throwing a comma expression | |
4670 * [185]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c | |
4671 * [186]16904 (c++) ICE in finish_class_member_access_expr, in | |
4672 cp/typeck.c | |
4673 * [187]16905 (c++) ICE (segfault) with exceptions | |
4674 * [188]16964 (c++) ICE in cp_parser_class_specifier due to | |
4675 redefinition | |
4676 * [189]17068 (c++) ICE: tree check: expected class 'd', have 'x' | |
4677 (identifier_node) in dependent_template_p, in cp/pt.c | |
4678 | |
4679 Preprocessor bugs | |
4680 | |
4681 * [190]16366 Preprocessor option -remap causes memory corruption | |
4682 | |
4683 Optimization | |
4684 | |
4685 * [191]15345 unreferenced nested inline functions not optimized away | |
4686 * [192]16590 Incorrect execution when compiling with -O2 | |
4687 * [193]16693 Bitwise AND is lost when used within a cast to an enum | |
4688 of the same precision | |
4689 * [194]17078 Jump into if(0) substatement fails | |
4690 | |
4691 Problems in generated debug information | |
4692 | |
4693 * [195]13956 incorrect stabs for nested local variables | |
4694 | |
4695 C front end bugs | |
4696 | |
4697 * [196]16684 GCC should not warn about redundant redeclarations of | |
4698 built-ins | |
4699 | |
4700 C++ compiler and library | |
4701 | |
4702 * [197]12658 Thread safety problems in locale::global() and | |
4703 locale::locale() | |
4704 * [198]13092 g++ accepts invalid pointer-to-member conversion | |
4705 * [199]15320 Excessive memory consumption | |
4706 * [200]16246 Incorrect template argument deduction | |
4707 * [201]16273 Memory exhausted when using nested classes and virtual | |
4708 functions | |
4709 * [202]16401 ostringstream in gcc 3.4.x very slow for big data | |
4710 * [203]16411 undefined reference to | |
4711 __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> | |
4712 >::file() | |
4713 * [204]16489 G++ incorrectly rejects use of a null constant integral | |
4714 expression as a null constant pointer | |
4715 * [205]16618 offsetof fails with constant member | |
4716 * [206]16637 syntax error reported for valid input code | |
4717 * [207]16717 __attribute__((constructor)) broken in C++ | |
4718 * [208]16813 compiler error in DEBUG version of range insertion | |
4719 std::map::insert | |
4720 * [209]16853 pointer-to-member initialization from incompatible one | |
4721 accepted | |
4722 * [210]16889 ambiguity is not detected | |
4723 * [211]16959 Segmentation fault in ios_base::sync_with_stdio | |
4724 | |
4725 Java compiler and library | |
4726 | |
4727 * [212]7587 direct threaded interpreter not thread-safe | |
4728 * [213]16473 ServerSocket accept() leaks file descriptors | |
4729 * [214]16478 Hash synchronization deadlock with finalizers | |
4730 | |
4731 Alpha-specific | |
4732 | |
4733 * [215]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c | |
4734 * [216]16974 could not split insn (ice in final_scan_insn, in | |
4735 final.c) | |
4736 | |
4737 x86-specific | |
4738 | |
4739 * [217]16298 ICE in output_operand | |
4740 * [218]17113 ICE with SSE2 intrinsics | |
4741 | |
4742 x86-64 specific | |
4743 | |
4744 * [219]14697 libstdc++ couldn't find 32bit libgcc_s | |
4745 | |
4746 MIPS-specific | |
4747 | |
4748 * [220]15869 [mips64] No NOP after LW (with -mips1 -O0) | |
4749 * [221]16325 [mips64] value profiling clobbers gp on mips | |
4750 * [222]16357 [mipsisa64-elf] ICE copying 7 bytes between extern | |
4751 char[]s | |
4752 * [223]16380 [mips64] Use of uninitialised register after dbra | |
4753 conversion | |
4754 * [224]16407 [mips64] Unaligned access to local variables | |
4755 * [225]16643 [mips64] verify_local_live_at_start ICE after | |
4756 crossjumping & cfgcleanup | |
4757 | |
4758 ARM-specific | |
4759 | |
4760 * [226]15927 THUMB -O2: strength-reduced iteration variable ends up | |
4761 off by 1 | |
4762 * [227]15948 THUMB: ICE with non-commutative cbranch | |
4763 * [228]17019 THUMB: bad switch statement in md code for | |
4764 addsi3_cbranch_scratch | |
4765 | |
4766 IA64-specific | |
4767 | |
4768 * [229]16130 ICE on valid code: in bundling, in config/ia64/ia64.c | |
4769 (-mtune=merced) | |
4770 * [230]16142 ICE on valid code: in bundling, in config/ia64/ia64.c | |
4771 (-mtune=itanium) | |
4772 * [231]16278 Gcc failed to build Linux kernel with -mtune=merced | |
4773 * [232]16414 ICE on valid code: typo in comparison of asm_noperands | |
4774 result | |
4775 * [233]16445 ICE on valid code: don't count ignored insns | |
4776 * [234]16490 ICE (segfault) while compiling with -fprofile-use | |
4777 * [235]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS | |
4778 | |
4779 PowerPC-specific | |
4780 | |
4781 * [236]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x | |
4782 * [237]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions | |
4783 issue) | |
4784 | |
4785 SPARC-specific | |
4786 | |
4787 * [238]16199 ICE while compiling apache 2.0.49 | |
4788 * [239]16416 -m64 doesn't imply -mcpu=v9 anymore | |
4789 * [240]16430 ICE when returning non-C aggregates larger than 16 bytes | |
4790 | |
4791 Bugs specific to embedded processors | |
4792 | |
4793 * [241]16379 [m32r] can't output large model function call of memcpy | |
4794 * [242]17093 [m32r] ICE with -msdata=use -O0 | |
4795 * [243]17119 [m32r] ICE at switch case 0x8000 | |
4796 | |
4797 DJGPP-specific | |
4798 | |
4799 * [244]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp | |
4800 | |
4801 Alpha Tru64-specific | |
4802 | |
4803 * [245]16210 libstdc++ gratuitously omits "long long" I/O | |
4804 | |
4805 Testsuite, documentation issues (compiler is not affected): | |
4806 | |
4807 * [246]15488 (libstdc++) possibly insufficient file permissions for | |
4808 executing test suite | |
4809 * [247]16250 ada/doctools runs makeinfo even in release tarball | |
4810 __________________________________________________________________ | |
4811 | |
4812 GCC 3.4.3 | |
4813 | |
4814 This is the [248]list of problem reports (PRs) from GCC's bug tracking | |
4815 system that are known to be fixed in the 3.4.3 release. This list might | |
4816 not be complete (that is, it is possible that some PRs that have been | |
4817 fixed are not listed here). | |
4818 | |
4819 Bootstrap failures | |
4820 | |
4821 * [249]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1 | |
4822 * [250]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold | |
4823 when undeclared | |
4824 | |
4825 Internal compiler errors (ICEs) affecting multiple platforms | |
4826 | |
4827 * [251]13948 (java) GCJ segmentation fault while compiling GL4Java | |
4828 .class files | |
4829 * [252]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c | |
4830 * [253]16301 (c++) ICE when "strong" attribute is attached to a using | |
4831 directive | |
4832 * [254]16566 ICE with flexible arrays | |
4833 * [255]17023 ICE with nested functions in parameter declaration | |
4834 * [256]17027 ICE with noreturn function in loop at -O2 | |
4835 * [257]17524 ICE in grokdeclarator, in cp/decl.c | |
4836 * [258]17826 (c++) ICE in cp_tree_equal | |
4837 | |
4838 C and optimization bugs | |
4839 | |
4840 * [259]15526 -ftrapv aborts on 0 * (-1) | |
4841 * [260]16999 #ident stopped working | |
4842 * [261]17503 quadratic behaviour in invalid_mode_change_p | |
4843 * [262]17581 Long long arithmetic fails inside a switch/case | |
4844 statement when compiled with -O2 | |
4845 * [263]18129 -fwritable-strings doesn't work | |
4846 | |
4847 C++ compiler and library bugs | |
4848 | |
4849 * [264]10975 incorrect initial ostringstream::tellp() | |
4850 * [265]11722 Unbuffered filebuf::sgetn is slow | |
4851 * [266]14534 Unrecognizing static function as a template parameter | |
4852 when its return value is also templated | |
4853 * [267]15172 Copy constructor optimization in aggregate | |
4854 initialization | |
4855 * [268]15786 Bad error message for frequently occuring error. | |
4856 * [269]16162 Rejects valid member-template-definition | |
4857 * [270]16612 empty basic_strings can't live in shared memory | |
4858 * [271]16715 std::basic_iostream is instantiated when used, even | |
4859 though instantiations are already contained in libstdc++ | |
4860 * [272]16848 code in /ext/demangle.h appears broken | |
4861 * [273]17132 GCC fails to eliminate function template specialization | |
4862 when argument deduction fails | |
4863 * [274]17259 One more _S_leaf incorrectly qualified with _RopeRep:: | |
4864 in ropeimpl.h | |
4865 * [275]17327 use of `enumeral_type' in template type unification | |
4866 * [276]17393 "unused variable '._0'" warning with -Wall | |
4867 * [277]17501 Confusion with member templates | |
4868 * [278]17537 g++ not passing -lstdc++ to linker when all command line | |
4869 arguments are libraries | |
4870 * [279]17585 usage of unqualified name of static member from within | |
4871 class not allowed | |
4872 * [280]17821 Poor diagnostic for using "." instead of "->" | |
4873 * [281]17829 wrong error: call of overloaded function is ambiguous | |
4874 * [282]17851 Misleading diagnostic for invalid function declarations | |
4875 with undeclared types | |
4876 * [283]17976 Destructor is called twice | |
4877 * [284]18020 rejects valid definition of enum value in template | |
4878 * [285]18093 bogus conflict in namespace aliasing | |
4879 * [286]18140 C++ parser bug when using >> in templates | |
4880 | |
4881 Fortran | |
4882 | |
4883 * [287]17541 data statements with double precision constants fail | |
4884 | |
4885 x86-specific | |
4886 | |
4887 * [288]17853 -O2 ICE for MMX testcase | |
4888 | |
4889 SPARC-specific | |
4890 | |
4891 * [289]17245 ICE compiling gsl-1.5 statistics/lag1.c | |
4892 | |
4893 Darwin-specific | |
4894 | |
4895 * [290]17167 FATAL:Symbol L_foo$stub already defined. | |
4896 | |
4897 AIX-specific | |
4898 | |
4899 * [291]17277 could not catch an exception when specified -maix64 | |
4900 | |
4901 Solaris-specific | |
4902 | |
4903 * [292]17505 <cmath> calls acosf(), ceilf(), and other functions | |
4904 missing from system libraries | |
4905 | |
4906 HP/UX specific: | |
4907 | |
4908 * [293]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl | |
4909 | |
4910 ARM-specific | |
4911 | |
4912 * [294]17384 ICE with mode attribute on structures | |
4913 | |
4914 MIPS-specific | |
4915 | |
4916 * [295]17770 No NOP after LWL with -mips1 | |
4917 | |
4918 Other embedded target specific | |
4919 | |
4920 * [296]11476 [arc-elf] gcc ICE on newlib's vfprintf.c | |
4921 * [297]14064 [avr-elf] -fdata-sections triggers ICE | |
4922 * [298]14678 [m68hc11-elf] gcc ICE | |
4923 * [299]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__ | |
4924 * [300]15790 [i686-coff] Alignment error building gcc with i686-coff | |
4925 target | |
4926 * [301]15886 [SH] Miscompilation with -O2 -fPIC | |
4927 * [302]16884 [avr-elf] [fweb related] bug while initializing | |
4928 variables | |
4929 | |
4930 Bugs relating to debugger support | |
4931 | |
4932 * [303]13841 missing debug info for _Complex function arguments | |
4933 * [304]15860 [big-endian targets] No DW_AT_location debug info is | |
4934 emitted for formal arguments to a function that uses "register" | |
4935 qualifiers | |
4936 | |
4937 Testsuite issues (compiler not affected) | |
4938 | |
4939 * [305]17465 Testsuite in libffi overrides LD_LIBRARY_PATH | |
4940 * [306]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH | |
4941 * [307]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit | |
4942 testsuite | |
4943 | |
4944 Documentation | |
4945 | |
4946 * [308]15498 typo in gcc manual: non-existing locale example en_UK, | |
4947 should be en_GB | |
4948 * [309]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: | |
4949 document broken shell | |
4950 * [310]16406 USE_LD_AS_NEEDED undocumented | |
4951 __________________________________________________________________ | |
4952 | |
4953 GCC 3.4.4 | |
4954 | |
4955 This is the [311]list of problem reports (PRs) from GCC's bug tracking | |
4956 system that are known to be fixed in the 3.4.4 release. This list might | |
4957 not be complete (that is, it is possible that some PRs that have been | |
4958 fixed are not listed here). | |
4959 __________________________________________________________________ | |
4960 | |
4961 GCC 3.4.5 | |
4962 | |
4963 This is the [312]list of problem reports (PRs) from GCC's bug tracking | |
4964 system that are known to be fixed in the 3.4.5 release. This list might | |
4965 not be complete (that is, it is possible that some PRs that have been | |
4966 fixed are not listed here). | |
4967 | |
4968 Bootstrap issues | |
4969 | |
4970 * [313]24688 sco_math fixincl breaks math.h | |
4971 | |
4972 C compiler bugs | |
4973 | |
4974 * [314]17188 struct Foo { } redefinition | |
4975 * [315]20187 wrong code for ((unsigned char)(unsigned long | |
4976 long)((a?a:1)&(a*b)))?0:1) | |
4977 * [316]21873 infinite warning loop on bad array initializer | |
4978 * [317]21899 enum definition accepts values to be overriden | |
4979 * [318]22061 ICE in find_function_data, in function.c | |
4980 * [319]22308 Failure to diagnose violation of constraint 6.516p2 | |
4981 * [320]22458 ICE on missing brace | |
4982 * [321]22589 ICE casting to long long | |
4983 * [322]24101 Segfault with preprocessed source | |
4984 | |
4985 C++ compiler and library bugs | |
4986 | |
4987 * [323]10611 operations on vector mode not recognized in C++ | |
4988 * [324]13377 unexpected behavior of namespace usage directive | |
4989 * [325]16002 Strange error message with new parser | |
4990 * [326]17413 local classes as template argument | |
4991 * [327]17609 spurious error message after using keyword | |
4992 * [328]17618 ICE in cp_convert_to_pointer, in cp/cvt.c | |
4993 * [329]18124 ICE with invalid template template parameter | |
4994 * [330]18155 typedef in template declaration not rejected | |
4995 * [331]18177 ICE with const_cast for undeclared variable | |
4996 * [332]18368 C++ error message regression | |
4997 * [333]16378 ICE when returning a copy of a packed member | |
4998 * [334]18466 int ::i; accepted | |
4999 * [335]18512 ICE on invalid usage of template base class | |
5000 * [336]18454 ICE when returning undefined type | |
5001 * [337]18738 typename not allowed with non-dependent qualified name | |
5002 * [338]18803 rejects access to operator() in template | |
5003 * [339]19004 ICE in uses_template_parms, in cp/pt.c | |
5004 * [340]19208 Spurious error about variably modified type | |
5005 * [341]18253 bad error message / ICE for invalid template parameter | |
5006 * [342]19608 ICE after friend function definition in local class | |
5007 * [343]19884 ICE on explicit instantiation of a non-template | |
5008 constructor | |
5009 * [344]20153 ICE when C++ template function contains anonymous union | |
5010 * [345]20563 Infinite loop in diagnostic (and ice after error | |
5011 message) | |
5012 * [346]20789 ICE with incomplete type in template | |
5013 * [347]21336 Internal compiler error when using custom new operators | |
5014 * [348]21768 ICE in error message due to violation of coding | |
5015 conventions | |
5016 * [349]21853 constness of pointer to data member ignored | |
5017 * [350]21903 Default argument of template function causes a | |
5018 compile-time error | |
5019 * [351]21983 multiple diagnostics | |
5020 * [352]21987 New testsuite failure | |
5021 g++.dg/warn/conversion-function-1.C | |
5022 * [353]22153 ICE on invalid template specialization | |
5023 * [354]22172 Internal compiler error, seg fault. | |
5024 * [355]21286 filebuf::xsgetn vs pipes | |
5025 * [356]22233 ICE with wrong number of template parameters | |
5026 * [357]22508 ICE after invalid operator new | |
5027 * [358]22545 ICE with pointer to class member & user defined | |
5028 conversion operator | |
5029 * [359]23528 Wrong default allocator in ext/hash_map | |
5030 * [360]23550 char_traits requirements/1.cc test bad math | |
5031 * [361]23586 Bad diagnostic for invalid namespace-name | |
5032 * [362]23624 ICE in invert_truthvalue, in fold-const.c | |
5033 * [363]23639 Bad error message: not a member of '<declaration error>' | |
5034 * [364]23797 ICE on typename outside template | |
5035 * [365]23965 Bogus error message: no matching function for call to | |
5036 'foo(<type error>)' | |
5037 * [366]24052 &#`label_decl' not supported by dump_expr#<expression | |
5038 error> | |
5039 * [367]24580 virtual base class cause exception not to be caught | |
5040 | |
5041 Problems in generated debug information | |
5042 | |
5043 * [368]24267 Bad DWARF for altivec vectors | |
5044 | |
5045 Optimizations issues | |
5046 | |
5047 * [369]17810 ICE in verify_local_live_at_start | |
5048 * [370]17860 Wrong generated code for loop with varying bound | |
5049 * [371]21709 ICE on compile-time complex NaN | |
5050 * [372]21964 broken tail call at -O2 or more | |
5051 * [373]22167 Strange optimization bug when using -Os | |
5052 * [374]22619 Compilation failure for real_const_1.f and | |
5053 real_const_2.f90 | |
5054 * [375]23241 Invalid code generated for comparison of uchar to 255 | |
5055 * [376]23478 Miscompilation due to reloading of a var that is also | |
5056 used in EH pad | |
5057 * [377]24470 segmentation fault in cc1plus when compiling with -O | |
5058 * [378]24950 ICE in operand_subword_force | |
5059 | |
5060 Precompiled headers problems | |
5061 | |
5062 * [379]14400 Cannot compile qt-x11-free-3.3.0 | |
5063 * [380]14940 PCH largefile test fails on various platforms | |
5064 | |
5065 Preprocessor bugs | |
5066 | |
5067 * [381]20239 ICE on empty preprocessed input | |
5068 * [382]15220 "gcc -E -MM -MG" reports missing system headers in | |
5069 source directory | |
5070 | |
5071 Testsuite issues | |
5072 | |
5073 * [383]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on | |
5074 i686-pc-linux-gnu | |
5075 | |
5076 Alpha specific | |
5077 | |
5078 * [384]21888 bootstrap failure with linker relaxation enabled | |
5079 | |
5080 ARM specific | |
5081 | |
5082 * [385]15342 [arm-linux]: ICE in verify_local_live_at_start | |
5083 * [386]23985 Memory aliasing information incorrect in inlined memcpy | |
5084 | |
5085 ColdFile specific | |
5086 | |
5087 * [387]16719 Illegal move of byte into address register causes | |
5088 compiler to ICE | |
5089 | |
5090 HPPA specific | |
5091 | |
5092 * [388]21723 ICE while building libgfortran | |
5093 * [389]21841 -mhp-ld/-mgnu-ld documentation | |
5094 | |
5095 IA-64 specific | |
5096 | |
5097 * [390]23644 IA-64 hardware models and configuration options | |
5098 documentation error | |
5099 * [391]24718 Shared libgcc not used for linking by default | |
5100 | |
5101 M68000 specific | |
5102 | |
5103 * [392]18421 ICE in reload_cse_simplify_operands, in postreload.c | |
5104 | |
5105 MIPS specific | |
5106 | |
5107 * [393]20621 ICE in change_address_1, in emit-rtl.c | |
5108 | |
5109 PowerPC and PowerPC64 specific | |
5110 | |
5111 * [394]18583 error on valid code: const | |
5112 __attribute__((altivec(vector__))) doesn't work in arrays | |
5113 * [395]20191 ICE in reload_cse_simplify_operands | |
5114 * [396]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined | |
5115 * [397]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set | |
5116 * [398]23404 gij trashes args of functions with more than 8 fp args | |
5117 * [399]23539 C & C++ compiler generating misaligned references | |
5118 regardless of compiler flags | |
5119 * [400]24102 floatdisf2_internal2 broken | |
5120 * [401]24465 -mminimal-toc miscompilation of __thread vars | |
5121 | |
5122 Solaris specific | |
5123 | |
5124 * [402]19933 Problem with define of HUGE_VAL in math_c99 | |
5125 * [403]21889 Native Solaris assembler cannot grok DTP-relative debug | |
5126 symbols | |
5127 | |
5128 SPARC specific | |
5129 | |
5130 * [404]19300 PCH failures on sparc-linux | |
5131 * [405]20301 Assembler labels have a leading "-" | |
5132 * [406]20673 C PCH testsuite assembly comparison failure | |
5133 | |
5134 x86 and x86_64 specific | |
5135 | |
5136 * [407]18582 ICE with arrays of type V2DF | |
5137 * [408]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2 | |
5138 -fsched2-use-traces | |
5139 * [409]21716 ICE in reg-stack.c's swap_rtx_condition | |
5140 * [410]24315 amd64 fails -fpeephole2 | |
5141 __________________________________________________________________ | |
5142 | |
5143 GCC 3.4.6 | |
5144 | |
5145 This is the [411]list of problem reports (PRs) from GCC's bug tracking | |
5146 system that are known to be fixed in the 3.4.6 release. This list might | |
5147 not be complete (that is, it is possible that some PRs that have been | |
5148 fixed are not listed here). | |
5149 | |
5150 Please send FSF & GNU inquiries & questions to [412]gnu@gnu.org. There | |
5151 are also [413]other ways to contact the FSF. | |
5152 | |
5153 These pages are maintained by [414]the GCC team. | |
5154 | |
5155 | |
5156 For questions related to the use of GCC, please consult these web | |
5157 pages and the [415]GCC manuals. If that fails, the | |
5158 [416]gcc-help@gcc.gnu.org mailing list might help. | |
5159 Please send comments on these web pages and the development of GCC to | |
5160 our developer mailing list at [417]gcc@gnu.org or | |
5161 [418]gcc@gcc.gnu.org. All of our lists have [419]public archives. | |
5162 | |
5163 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
5164 Floor, Boston, MA 02110, USA. | |
5165 | |
5166 Verbatim copying and distribution of this entire article is permitted | |
5167 in any medium, provided this notice is preserved. | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
5168 Last modified 2009-11-08 [420]Valid XHTML 1.0 |
0 | 5169 |
5170 References | |
5171 | |
5172 1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 | |
5173 2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus | |
5174 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems | |
5175 4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems | |
5176 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html | |
5177 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html | |
5178 7. http://www.boost.org/ | |
5179 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953 | |
5180 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361 | |
5181 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins | |
5182 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 | |
47
3bfb6c00c1e0
update it from 4.4.2 to 4.4.3.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
19
diff
changeset
|
5183 12. http://gcc.gnu.org/bugs/#cxx_rvalbind |
0 | 5184 13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html |
5185 14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html | |
5186 15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html | |
5187 16. http://www.gnu.org/software/classpath/ | |
5188 17. http://www.eclipse.org/ | |
5189 18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html | |
5190 19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html | |
5191 20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure | |
5192 21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html | |
5193 22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html | |
5194 23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html | |
5195 24. http://gcc.gnu.org/gcc-3.4/mips-abi.html | |
5196 25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html | |
5197 26. http://gcc.gnu.org/gcc-3.4/sparc-abi.html | |
5198 27. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED | |
5199 28. http://gcc.gnu.org/PR10129 | |
5200 29. http://gcc.gnu.org/PR14576 | |
5201 30. http://gcc.gnu.org/PR14760 | |
5202 31. http://gcc.gnu.org/PR14671 | |
5203 32. http://gcc.gnu.org/PR15093 | |
5204 33. http://gcc.gnu.org/PR15178 | |
5205 34. http://gcc.gnu.org/PR12753 | |
5206 35. http://gcc.gnu.org/PR13985 | |
5207 36. http://gcc.gnu.org/PR14810 | |
5208 37. http://gcc.gnu.org/PR14883 | |
5209 38. http://gcc.gnu.org/PR15044 | |
5210 39. http://gcc.gnu.org/PR15057 | |
5211 40. http://gcc.gnu.org/PR15064 | |
5212 41. http://gcc.gnu.org/PR15142 | |
5213 42. http://gcc.gnu.org/PR15159 | |
5214 43. http://gcc.gnu.org/PR15165 | |
5215 44. http://gcc.gnu.org/PR15193 | |
5216 45. http://gcc.gnu.org/PR15209 | |
5217 46. http://gcc.gnu.org/PR15227 | |
5218 47. http://gcc.gnu.org/PR15285 | |
5219 48. http://gcc.gnu.org/PR15299 | |
5220 49. http://gcc.gnu.org/PR15329 | |
5221 50. http://gcc.gnu.org/PR15550 | |
5222 51. http://gcc.gnu.org/PR15554 | |
5223 52. http://gcc.gnu.org/PR15640 | |
5224 53. http://gcc.gnu.org/PR15666 | |
5225 54. http://gcc.gnu.org/PR15696 | |
5226 55. http://gcc.gnu.org/PR15701 | |
5227 56. http://gcc.gnu.org/PR15761 | |
5228 57. http://gcc.gnu.org/PR15829 | |
5229 58. http://gcc.gnu.org/PR14538 | |
5230 59. http://gcc.gnu.org/PR12391 | |
5231 60. http://gcc.gnu.org/PR14649 | |
5232 61. http://gcc.gnu.org/PR15004 | |
5233 62. http://gcc.gnu.org/PR15749 | |
5234 63. http://gcc.gnu.org/PR10646 | |
5235 64. http://gcc.gnu.org/PR12077 | |
5236 65. http://gcc.gnu.org/PR13598 | |
5237 66. http://gcc.gnu.org/PR14211 | |
5238 67. http://gcc.gnu.org/PR14220 | |
5239 68. http://gcc.gnu.org/PR14245 | |
5240 69. http://gcc.gnu.org/PR14340 | |
5241 70. http://gcc.gnu.org/PR14600 | |
5242 71. http://gcc.gnu.org/PR14668 | |
5243 72. http://gcc.gnu.org/PR14775 | |
5244 73. http://gcc.gnu.org/PR14821 | |
5245 74. http://gcc.gnu.org/PR14930 | |
5246 75. http://gcc.gnu.org/PR14932 | |
5247 76. http://gcc.gnu.org/PR14950 | |
5248 77. http://gcc.gnu.org/PR14962 | |
5249 78. http://gcc.gnu.org/PR14975 | |
5250 79. http://gcc.gnu.org/PR15002 | |
5251 80. http://gcc.gnu.org/PR15025 | |
5252 81. http://gcc.gnu.org/PR15046 | |
5253 82. http://gcc.gnu.org/PR15069 | |
5254 83. http://gcc.gnu.org/PR15074 | |
5255 84. http://gcc.gnu.org/PR15083 | |
5256 85. http://gcc.gnu.org/PR15096 | |
5257 86. http://gcc.gnu.org/PR15287 | |
5258 87. http://gcc.gnu.org/PR15317 | |
5259 88. http://gcc.gnu.org/PR15337 | |
5260 89. http://gcc.gnu.org/PR15361 | |
5261 90. http://gcc.gnu.org/PR15412 | |
5262 91. http://gcc.gnu.org/PR15427 | |
5263 92. http://gcc.gnu.org/PR15471 | |
5264 93. http://gcc.gnu.org/PR15503 | |
5265 94. http://gcc.gnu.org/PR15507 | |
5266 95. http://gcc.gnu.org/PR15542 | |
5267 96. http://gcc.gnu.org/PR15565 | |
5268 97. http://gcc.gnu.org/PR15625 | |
5269 98. http://gcc.gnu.org/PR15629 | |
5270 99. http://gcc.gnu.org/PR15742 | |
5271 100. http://gcc.gnu.org/PR15775 | |
5272 101. http://gcc.gnu.org/PR15821 | |
5273 102. http://gcc.gnu.org/PR15862 | |
5274 103. http://gcc.gnu.org/PR15875 | |
5275 104. http://gcc.gnu.org/PR15877 | |
5276 105. http://gcc.gnu.org/PR15947 | |
5277 106. http://gcc.gnu.org/PR16020 | |
5278 107. http://gcc.gnu.org/PR16154 | |
5279 108. http://gcc.gnu.org/PR16174 | |
5280 109. http://gcc.gnu.org/PR14315 | |
5281 110. http://gcc.gnu.org/PR15151 | |
5282 111. http://gcc.gnu.org/PR7993 | |
5283 112. http://gcc.gnu.org/PR15228 | |
5284 113. http://gcc.gnu.org/PR15345 | |
5285 114. http://gcc.gnu.org/PR15945 | |
5286 115. http://gcc.gnu.org/PR15526 | |
5287 116. http://gcc.gnu.org/PR14690 | |
5288 117. http://gcc.gnu.org/PR15112 | |
5289 118. http://gcc.gnu.org/PR15067 | |
5290 119. http://gcc.gnu.org/PR1963 | |
5291 120. http://gcc.gnu.org/PR15717 | |
5292 121. http://gcc.gnu.org/PR14782 | |
5293 122. http://gcc.gnu.org/PR14828 | |
5294 123. http://gcc.gnu.org/PR15202 | |
5295 124. http://gcc.gnu.org/PR14610 | |
5296 125. http://gcc.gnu.org/PR14813 | |
5297 126. http://gcc.gnu.org/PR14857 | |
5298 127. http://gcc.gnu.org/PR15598 | |
5299 128. http://gcc.gnu.org/PR15653 | |
5300 129. http://gcc.gnu.org/PR15189 | |
5301 130. http://gcc.gnu.org/PR15331 | |
5302 131. http://gcc.gnu.org/PR16144 | |
5303 132. http://gcc.gnu.org/PR16176 | |
5304 133. http://gcc.gnu.org/PR11591 | |
5305 134. http://gcc.gnu.org/PR12028 | |
5306 135. http://gcc.gnu.org/PR14478 | |
5307 136. http://gcc.gnu.org/PR14567 | |
5308 137. http://gcc.gnu.org/PR14715 | |
5309 138. http://gcc.gnu.org/PR14902 | |
5310 139. http://gcc.gnu.org/PR14924 | |
5311 140. http://gcc.gnu.org/PR14960 | |
5312 141. http://gcc.gnu.org/PR15106 | |
5313 142. http://gcc.gnu.org/PR16026 | |
5314 143. http://gcc.gnu.org/PR15191 | |
5315 144. http://gcc.gnu.org/PR15662 | |
5316 145. http://gcc.gnu.org/PR15054 | |
5317 146. http://gcc.gnu.org/PR15783 | |
5318 147. http://gcc.gnu.org/PR15626 | |
5319 148. http://gcc.gnu.org/PR14326 | |
5320 149. http://gcc.gnu.org/PR14723 | |
5321 150. http://gcc.gnu.org/PR15290 | |
5322 151. http://gcc.gnu.org/PR15250 | |
5323 152. http://gcc.gnu.org/PR15551 | |
5324 153. http://gcc.gnu.org/PR8309 | |
5325 154. http://gcc.gnu.org/PR13250 | |
5326 155. http://gcc.gnu.org/PR13803 | |
5327 156. http://gcc.gnu.org/PR14093 | |
5328 157. http://gcc.gnu.org/PR14457 | |
5329 158. http://gcc.gnu.org/PR14542 | |
5330 159. http://gcc.gnu.org/PR15100 | |
5331 160. http://gcc.gnu.org/PR15296 | |
5332 161. http://gcc.gnu.org/PR15396 | |
5333 162. http://gcc.gnu.org/PR15782 | |
5334 163. http://gcc.gnu.org/PR11610 | |
5335 164. http://gcc.gnu.org/PR15488 | |
5336 165. http://gcc.gnu.org/PR15489 | |
5337 166. http://gcc.gnu.org/PR13928 | |
5338 167. http://gcc.gnu.org/PR14150 | |
5339 168. http://gcc.gnu.org/PR14949 | |
5340 169. http://gcc.gnu.org/PR15123 | |
5341 170. http://gcc.gnu.org/PR16469 | |
5342 171. http://gcc.gnu.org/PR16344 | |
5343 172. http://gcc.gnu.org/PR16842 | |
5344 173. http://gcc.gnu.org/PR12608 | |
5345 174. http://gcc.gnu.org/PR14492 | |
5346 175. http://gcc.gnu.org/PR15461 | |
5347 176. http://gcc.gnu.org/PR15890 | |
5348 177. http://gcc.gnu.org/PR16180 | |
5349 178. http://gcc.gnu.org/PR16224 | |
5350 179. http://gcc.gnu.org/PR16408 | |
5351 180. http://gcc.gnu.org/PR16529 | |
5352 181. http://gcc.gnu.org/PR16698 | |
5353 182. http://gcc.gnu.org/PR16706 | |
5354 183. http://gcc.gnu.org/PR16810 | |
5355 184. http://gcc.gnu.org/PR16851 | |
5356 185. http://gcc.gnu.org/PR16870 | |
5357 186. http://gcc.gnu.org/PR16904 | |
5358 187. http://gcc.gnu.org/PR16905 | |
5359 188. http://gcc.gnu.org/PR16964 | |
5360 189. http://gcc.gnu.org/PR17068 | |
5361 190. http://gcc.gnu.org/PR16366 | |
5362 191. http://gcc.gnu.org/PR15345 | |
5363 192. http://gcc.gnu.org/PR16590 | |
5364 193. http://gcc.gnu.org/PR16693 | |
5365 194. http://gcc.gnu.org/PR17078 | |
5366 195. http://gcc.gnu.org/PR13956 | |
5367 196. http://gcc.gnu.org/PR16684 | |
5368 197. http://gcc.gnu.org/PR12658 | |
5369 198. http://gcc.gnu.org/PR13092 | |
5370 199. http://gcc.gnu.org/PR15320 | |
5371 200. http://gcc.gnu.org/PR16246 | |
5372 201. http://gcc.gnu.org/PR16273 | |
5373 202. http://gcc.gnu.org/PR16401 | |
5374 203. http://gcc.gnu.org/PR16411 | |
5375 204. http://gcc.gnu.org/PR16489 | |
5376 205. http://gcc.gnu.org/PR16618 | |
5377 206. http://gcc.gnu.org/PR16637 | |
5378 207. http://gcc.gnu.org/PR16717 | |
5379 208. http://gcc.gnu.org/PR16813 | |
5380 209. http://gcc.gnu.org/PR16853 | |
5381 210. http://gcc.gnu.org/PR16889 | |
5382 211. http://gcc.gnu.org/PR16959 | |
5383 212. http://gcc.gnu.org/PR7587 | |
5384 213. http://gcc.gnu.org/PR16473 | |
5385 214. http://gcc.gnu.org/PR16478 | |
5386 215. http://gcc.gnu.org/PR10695 | |
5387 216. http://gcc.gnu.org/PR16974 | |
5388 217. http://gcc.gnu.org/PR16298 | |
5389 218. http://gcc.gnu.org/PR17113 | |
5390 219. http://gcc.gnu.org/PR14697 | |
5391 220. http://gcc.gnu.org/PR15869 | |
5392 221. http://gcc.gnu.org/PR16325 | |
5393 222. http://gcc.gnu.org/PR16357 | |
5394 223. http://gcc.gnu.org/PR16380 | |
5395 224. http://gcc.gnu.org/PR16407 | |
5396 225. http://gcc.gnu.org/PR16643 | |
5397 226. http://gcc.gnu.org/PR15927 | |
5398 227. http://gcc.gnu.org/PR15948 | |
5399 228. http://gcc.gnu.org/PR17019 | |
5400 229. http://gcc.gnu.org/PR16130 | |
5401 230. http://gcc.gnu.org/PR16142 | |
5402 231. http://gcc.gnu.org/PR16278 | |
5403 232. http://gcc.gnu.org/PR16414 | |
5404 233. http://gcc.gnu.org/PR16445 | |
5405 234. http://gcc.gnu.org/PR16490 | |
5406 235. http://gcc.gnu.org/PR16683 | |
5407 236. http://gcc.gnu.org/PR16195 | |
5408 237. http://gcc.gnu.org/PR16239 | |
5409 238. http://gcc.gnu.org/PR16199 | |
5410 239. http://gcc.gnu.org/PR16416 | |
5411 240. http://gcc.gnu.org/PR16430 | |
5412 241. http://gcc.gnu.org/PR16379 | |
5413 242. http://gcc.gnu.org/PR17093 | |
5414 243. http://gcc.gnu.org/PR17119 | |
5415 244. http://gcc.gnu.org/PR15928 | |
5416 245. http://gcc.gnu.org/PR16210 | |
5417 246. http://gcc.gnu.org/PR15488 | |
5418 247. http://gcc.gnu.org/PR16250 | |
5419 248. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 | |
5420 249. http://gcc.gnu.org/PR17369 | |
5421 250. http://gcc.gnu.org/PR17850 | |
5422 251. http://gcc.gnu.org/PR13948 | |
5423 252. http://gcc.gnu.org/PR14492 | |
5424 253. http://gcc.gnu.org/PR16301 | |
5425 254. http://gcc.gnu.org/PR16566 | |
5426 255. http://gcc.gnu.org/PR17023 | |
5427 256. http://gcc.gnu.org/PR17027 | |
5428 257. http://gcc.gnu.org/PR17524 | |
5429 258. http://gcc.gnu.org/PR17826 | |
5430 259. http://gcc.gnu.org/PR15526 | |
5431 260. http://gcc.gnu.org/PR16999 | |
5432 261. http://gcc.gnu.org/PR17503 | |
5433 262. http://gcc.gnu.org/PR17581 | |
5434 263. http://gcc.gnu.org/PR18129 | |
5435 264. http://gcc.gnu.org/PR10975 | |
5436 265. http://gcc.gnu.org/PR11722 | |
5437 266. http://gcc.gnu.org/PR14534 | |
5438 267. http://gcc.gnu.org/PR15172 | |
5439 268. http://gcc.gnu.org/PR15786 | |
5440 269. http://gcc.gnu.org/PR16162 | |
5441 270. http://gcc.gnu.org/PR16612 | |
5442 271. http://gcc.gnu.org/PR16715 | |
5443 272. http://gcc.gnu.org/PR16848 | |
5444 273. http://gcc.gnu.org/PR17132 | |
5445 274. http://gcc.gnu.org/PR17259 | |
5446 275. http://gcc.gnu.org/PR17327 | |
5447 276. http://gcc.gnu.org/PR17393 | |
5448 277. http://gcc.gnu.org/PR17501 | |
5449 278. http://gcc.gnu.org/PR17537 | |
5450 279. http://gcc.gnu.org/PR17585 | |
5451 280. http://gcc.gnu.org/PR17821 | |
5452 281. http://gcc.gnu.org/PR17829 | |
5453 282. http://gcc.gnu.org/PR17851 | |
5454 283. http://gcc.gnu.org/PR17976 | |
5455 284. http://gcc.gnu.org/PR18020 | |
5456 285. http://gcc.gnu.org/PR18093 | |
5457 286. http://gcc.gnu.org/PR18140 | |
5458 287. http://gcc.gnu.org/PR17541 | |
5459 288. http://gcc.gnu.org/PR17853 | |
5460 289. http://gcc.gnu.org/PR17245 | |
5461 290. http://gcc.gnu.org/PR17167 | |
5462 291. http://gcc.gnu.org/PR17277 | |
5463 292. http://gcc.gnu.org/PR17505 | |
5464 293. http://gcc.gnu.org/PR17684 | |
5465 294. http://gcc.gnu.org/PR17384 | |
5466 295. http://gcc.gnu.org/PR17770 | |
5467 296. http://gcc.gnu.org/PR11476 | |
5468 297. http://gcc.gnu.org/PR14064 | |
5469 298. http://gcc.gnu.org/PR14678 | |
5470 299. http://gcc.gnu.org/PR15583 | |
5471 300. http://gcc.gnu.org/PR15790 | |
5472 301. http://gcc.gnu.org/PR15886 | |
5473 302. http://gcc.gnu.org/PR16884 | |
5474 303. http://gcc.gnu.org/PR13841 | |
5475 304. http://gcc.gnu.org/PR15860 | |
5476 305. http://gcc.gnu.org/PR17465 | |
5477 306. http://gcc.gnu.org/PR17469 | |
5478 307. http://gcc.gnu.org/PR18138 | |
5479 308. http://gcc.gnu.org/PR15498 | |
5480 309. http://gcc.gnu.org/PR15747 | |
5481 310. http://gcc.gnu.org/PR16406 | |
5482 311. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4 | |
5483 312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5 | |
5484 313. http://gcc.gnu.org/PR24688 | |
5485 314. http://gcc.gnu.org/PR17188 | |
5486 315. http://gcc.gnu.org/PR20187 | |
5487 316. http://gcc.gnu.org/PR21873 | |
5488 317. http://gcc.gnu.org/PR21899 | |
5489 318. http://gcc.gnu.org/PR22061 | |
5490 319. http://gcc.gnu.org/PR22208 | |
5491 320. http://gcc.gnu.org/PR22458 | |
5492 321. http://gcc.gnu.org/PR22589 | |
5493 322. http://gcc.gnu.org/PR24101 | |
5494 323. http://gcc.gnu.org/PR10611 | |
5495 324. http://gcc.gnu.org/PR13377 | |
5496 325. http://gcc.gnu.org/PR16002 | |
5497 326. http://gcc.gnu.org/PR17413 | |
5498 327. http://gcc.gnu.org/PR17609 | |
5499 328. http://gcc.gnu.org/PR17618 | |
5500 329. http://gcc.gnu.org/PR18124 | |
5501 330. http://gcc.gnu.org/PR18155 | |
5502 331. http://gcc.gnu.org/PR18177 | |
5503 332. http://gcc.gnu.org/PR18368 | |
5504 333. http://gcc.gnu.org/PR18378 | |
5505 334. http://gcc.gnu.org/PR18466 | |
5506 335. http://gcc.gnu.org/PR18512 | |
5507 336. http://gcc.gnu.org/PR18545 | |
5508 337. http://gcc.gnu.org/PR18738 | |
5509 338. http://gcc.gnu.org/PR18803 | |
5510 339. http://gcc.gnu.org/PR19004 | |
5511 340. http://gcc.gnu.org/PR19208 | |
5512 341. http://gcc.gnu.org/PR19253 | |
5513 342. http://gcc.gnu.org/PR19608 | |
5514 343. http://gcc.gnu.org/PR19884 | |
5515 344. http://gcc.gnu.org/PR20153 | |
5516 345. http://gcc.gnu.org/PR20563 | |
5517 346. http://gcc.gnu.org/PR20789 | |
5518 347. http://gcc.gnu.org/PR21336 | |
5519 348. http://gcc.gnu.org/PR21768 | |
5520 349. http://gcc.gnu.org/PR21853 | |
5521 350. http://gcc.gnu.org/PR21903 | |
5522 351. http://gcc.gnu.org/PR21983 | |
5523 352. http://gcc.gnu.org/PR21987 | |
5524 353. http://gcc.gnu.org/PR22153 | |
5525 354. http://gcc.gnu.org/PR22172 | |
5526 355. http://gcc.gnu.org/PR21286 | |
5527 356. http://gcc.gnu.org/PR22233 | |
5528 357. http://gcc.gnu.org/PR22508 | |
5529 358. http://gcc.gnu.org/PR22545 | |
5530 359. http://gcc.gnu.org/PR23528 | |
5531 360. http://gcc.gnu.org/PR23550 | |
5532 361. http://gcc.gnu.org/PR23586 | |
5533 362. http://gcc.gnu.org/PR23624 | |
5534 363. http://gcc.gnu.org/PR23639 | |
5535 364. http://gcc.gnu.org/PR23797 | |
5536 365. http://gcc.gnu.org/PR23965 | |
5537 366. http://gcc.gnu.org/PR24052 | |
5538 367. http://gcc.gnu.org/PR24580 | |
5539 368. http://gcc.gnu.org/PR24267 | |
5540 369. http://gcc.gnu.org/PR17810 | |
5541 370. http://gcc.gnu.org/PR17860 | |
5542 371. http://gcc/gnu.org/PR21709 | |
5543 372. http://gcc.gnu.org/PR21964 | |
5544 373. http://gcc.gnu.org/PR22167 | |
5545 374. http://gcc.gnu.org/PR22619 | |
5546 375. http://gcc.gnu.org/PR23241 | |
5547 376. http://gcc.gnu.org/PR23478 | |
5548 377. http://gcc.gnu.org/PR24470 | |
5549 378. http://gcc.gnu.org/PR24950 | |
5550 379. http://gcc.gnu.org/PR14400 | |
5551 380. http://gcc.gnu.org/PR14940 | |
5552 381. http://gcc.gnu.org/PR20239 | |
5553 382. http://gcc.gnu.org/PR15220 | |
5554 383. http://gcc.gnu.org/PR19275 | |
5555 384. http://gcc.gnu.org/PR21888 | |
5556 385. http://gcc.gnu.org/PR15342 | |
5557 386. http://gcc.gnu.org/PR23985 | |
5558 387. http://gcc.gnu.org/PR16719 | |
5559 388. http://gcc.gnu.org/PR21723 | |
5560 389. http://gcc.gnu.org/PR21841 | |
5561 390. http://gcc.gnu.org/PR23644 | |
5562 391. http://gcc.gnu.org/PR24718 | |
5563 392. http://gcc.gnu.org/PR18421 | |
5564 393. http://gcc.gnu.org/PR20621 | |
5565 394. http://gcc.gnu.org/PR18583 | |
5566 395. http://gcc.gnu.org/PR20191 | |
5567 396. http://gcc.gnu.org/PR22083 | |
5568 397. http://gcc.gnu.org/PR23070 | |
5569 398. http://gcc.gnu.org/PR23404 | |
5570 399. http://gcc.gnu.org/PR23539 | |
5571 400. http://gcc.gnu.org/PR24102 | |
5572 401. http://gcc.gnu.org/PR24465 | |
5573 402. http://gcc.gnu.org/PR19933 | |
5574 403. http://gcc.gnu.org/PR21889 | |
5575 404. http://gcc.gnu.org/PR19300 | |
5576 405. http://gcc.gnu.org/PR20301 | |
5577 406. http://gcc.gnu.org/PR20673 | |
5578 407. http://gcc.gnu.org/PR18582 | |
5579 408. http://gcc.gnu.org/PR19340 | |
5580 409. http://gcc.gnu.org/PR21716 | |
5581 410. http://gcc.gnu.org/PR24315 | |
5582 411. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6 | |
5583 412. mailto:gnu@gnu.org | |
5584 413. http://www.gnu.org/home.html#ContactInfo | |
5585 414. http://gcc.gnu.org/about.html | |
5586 415. http://gcc.gnu.org/onlinedocs/ | |
5587 416. mailto:gcc-help@gcc.gnu.org | |
5588 417. mailto:gcc@gnu.org | |
5589 418. mailto:gcc@gcc.gnu.org | |
5590 419. http://gcc.gnu.org/lists.html | |
5591 420. http://validator.w3.org/check/referer | |
5592 ====================================================================== | |
5593 http://gcc.gnu.org/gcc-3.3/index.html | |
5594 GCC 3.3 Release Series | |
5595 | |
5596 May 03, 2005 | |
5597 | |
5598 The [1]GNU project and the GCC developers are pleased to announce the | |
5599 release of GCC 3.3.6. | |
5600 | |
5601 This release is a bug-fix release, containing fixes for regressions in | |
5602 GCC 3.3.5 relative to previous releases of GCC. | |
5603 | |
5604 This release is the last of the series 3.3.x. | |
5605 | |
5606 The GCC 3.3 release series includes numerous [2]new features, | |
5607 improvements, bug fixes, and other changes, thanks to an [3]amazing | |
5608 group of volunteers. | |
5609 | |
5610 Release History | |
5611 | |
5612 GCC 3.3.6 | |
5613 May 3, 2005 ([4]changes) | |
5614 | |
5615 GCC 3.3.5 | |
5616 September 30, 2004 ([5]changes) | |
5617 | |
5618 GCC 3.3.4 | |
5619 May 31, 2004 ([6]changes) | |
5620 | |
5621 GCC 3.3.3 | |
5622 February 14, 2004 ([7]changes) | |
5623 | |
5624 GCC 3.3.2 | |
5625 October 16, 2003 ([8]changes) | |
5626 | |
5627 GCC 3.3.1 | |
5628 August 8, 2003 ([9]changes) | |
5629 | |
5630 GCC 3.3 | |
5631 May 14, 2003 ([10]changes) | |
5632 | |
5633 References and Acknowledgements | |
5634 | |
5635 GCC used to stand for the GNU C Compiler, but since the compiler | |
5636 supports several other languages aside from C, it now stands for the | |
5637 GNU Compiler Collection. | |
5638 | |
5639 A list of [11]successful builds is updated as new information becomes | |
5640 available. | |
5641 | |
5642 The GCC developers would like to thank the numerous people that have | |
5643 contributed new features, improvements, bug fixes, and other changes as | |
5644 well as test results to GCC. This [12]amazing group of volunteers is | |
5645 what makes GCC successful. | |
5646 | |
5647 For additional information about GCC please refer to the [13]GCC | |
5648 project web site or contact the [14]GCC development mailing list. | |
5649 | |
5650 To obtain GCC please use [15]our mirror sites, or our CVS server. | |
5651 | |
5652 Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There | |
5653 are also [17]other ways to contact the FSF. | |
5654 | |
5655 These pages are maintained by [18]the GCC team. | |
5656 | |
5657 | |
5658 For questions related to the use of GCC, please consult these web | |
5659 pages and the [19]GCC manuals. If that fails, the | |
5660 [20]gcc-help@gcc.gnu.org mailing list might help. | |
5661 Please send comments on these web pages and the development of GCC to | |
5662 our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. | |
5663 All of our lists have [23]public archives. | |
5664 | |
5665 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
5666 Floor, Boston, MA 02110, USA. | |
5667 | |
5668 Verbatim copying and distribution of this entire article is permitted | |
5669 in any medium, provided this notice is preserved. | |
5670 Last modified 2008-07-26 [24]Valid XHTML 1.0 | |
5671 | |
5672 References | |
5673 | |
5674 1. http://www.gnu.org/ | |
5675 2. http://gcc.gnu.org/gcc-3.3/changes.html | |
5676 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
5677 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 | |
5678 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 | |
5679 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 | |
5680 7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3 | |
5681 8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2 | |
5682 9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 | |
5683 10. http://gcc.gnu.org/gcc-3.3/changes.html | |
5684 11. http://gcc.gnu.org/gcc-3.3/buildstat.html | |
5685 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
5686 13. http://gcc.gnu.org/index.html | |
5687 14. mailto:gcc@gcc.gnu.org | |
5688 15. http://gcc.gnu.org/mirrors.html | |
5689 16. mailto:gnu@gnu.org | |
5690 17. http://www.gnu.org/home.html#ContactInfo | |
5691 18. http://gcc.gnu.org/about.html | |
5692 19. http://gcc.gnu.org/onlinedocs/ | |
5693 20. mailto:gcc-help@gcc.gnu.org | |
5694 21. mailto:gcc@gnu.org | |
5695 22. mailto:gcc@gcc.gnu.org | |
5696 23. http://gcc.gnu.org/lists.html | |
5697 24. http://validator.w3.org/check/referer | |
5698 ====================================================================== | |
5699 http://gcc.gnu.org/gcc-3.3/changes.html | |
5700 GCC 3.3 Release Series | |
5701 Changes, New Features, and Fixes | |
5702 | |
5703 The latest release in the 3.3 release series is [1]GCC 3.3.6. | |
5704 | |
5705 Caveats | |
5706 | |
5707 * The preprocessor no longer accepts multi-line string literals. They | |
5708 were deprecated in 3.0, 3.1, and 3.2. | |
5709 * The preprocessor no longer supports the -A- switch when appearing | |
5710 alone. -A- followed by an assertion is still supported. | |
5711 * Support for all the systems [2]obsoleted in GCC 3.1 has been | |
5712 removed from GCC 3.3. See below for a [3]list of systems which are | |
5713 obsoleted in this release. | |
5714 * Checking for null format arguments has been decoupled from the rest | |
5715 of the format checking mechanism. Programs which use the format | |
5716 attribute may regain this functionality by using the new [4]nonnull | |
5717 function attribute. Note that all functions for which GCC has a | |
5718 built-in format attribute, an appropriate built-in nonnull | |
5719 attribute is also applied. | |
5720 * The DWARF (version 1) debugging format has been deprecated and will | |
5721 be removed in a future version of GCC. Version 2 of the DWARF | |
5722 debugging format will continue to be supported for the foreseeable | |
5723 future. | |
5724 * The C and Objective-C compilers no longer accept the "Naming Types" | |
5725 extension (typedef foo = bar); it was already unavailable in C++. | |
5726 Code which uses it will need to be changed to use the "typeof" | |
5727 extension instead: typedef typeof(bar) foo. (We have removed this | |
5728 extension without a period of deprecation because it has caused the | |
5729 compiler to crash since version 3.0 and no one noticed until very | |
5730 recently. Thus we conclude it is not in widespread use.) | |
5731 * The -traditional C compiler option has been removed. It was | |
5732 deprecated in 3.1 and 3.2. (Traditional preprocessing remains | |
5733 available.) The <varargs.h> header, used for writing variadic | |
5734 functions in traditional C, still exists but will produce an error | |
5735 message if used. | |
5736 * GCC 3.3.1 automatically places zero-initialized variables in the | |
5737 .bss section on some operating systems. Versions of GNU Emacs up to | |
5738 (and including) 21.3 will not work correctly when using this | |
5739 optimization; you can use -fno-zero-initialized-in-bss to disable | |
5740 it. | |
5741 | |
5742 General Optimizer Improvements | |
5743 | |
5744 * A new scheme for accurately describing processor pipelines, the | |
5745 [5]DFA scheduler, has been added. | |
5746 * Pavel Nejedly, Charles University Prague, has contributed new file | |
5747 format used by the edge coverage profiler (-fprofile-arcs). | |
5748 The new format is robust and diagnoses common mistakes where | |
5749 profiles from different versions (or compilations) of the program | |
5750 are combined resulting in nonsensical profiles and slow code to | |
5751 produced with profile feedback. Additionally this format allows | |
5752 extra data to be gathered. Currently, overall statistics are | |
5753 produced helping optimizers to identify hot spots of a program | |
5754 globally replacing the old intra-procedural scheme and resulting in | |
5755 better code. Note that the gcov tool from older GCC versions will | |
5756 not be able to parse the profiles generated by GCC 3.3 and vice | |
5757 versa. | |
5758 * Jan Hubicka, SuSE Labs, has contributed a new superblock formation | |
5759 pass enabled using -ftracer. This pass simplifies the control flow | |
5760 of functions allowing other optimizations to do better job. | |
5761 He also contributed the function reordering pass | |
5762 (-freorder-functions) to optimize function placement using profile | |
5763 feedback. | |
5764 | |
5765 New Languages and Language specific improvements | |
5766 | |
5767 C/ObjC/C++ | |
5768 | |
5769 * The preprocessor now accepts directives within macro arguments. It | |
5770 processes them just as if they had not been within macro arguments. | |
5771 * The separate ISO and traditional preprocessors have been completely | |
5772 removed. The front end handles either type of preprocessed output | |
5773 if necessary. | |
5774 * In C99 mode preprocessor arithmetic is done in the precision of the | |
5775 target's intmax_t, as required by that standard. | |
5776 * The preprocessor can now copy comments inside macros to the output | |
5777 file when the macro is expanded. This feature, enabled using the | |
5778 -CC option, is intended for use by applications which place | |
5779 metadata or directives inside comments, such as lint. | |
5780 * The method of constructing the list of directories to be searched | |
5781 for header files has been revised. If a directory named by a -I | |
5782 option is a standard system include directory, the option is | |
5783 ignored to ensure that the default search order for system | |
5784 directories and the special treatment of system header files are | |
5785 not defeated. | |
5786 * A few more [6]ISO C99 features now work correctly. | |
5787 * A new function attribute, nonnull, has been added which allows | |
5788 pointer arguments to functions to be specified as requiring a | |
5789 non-null value. The compiler currently uses this information to | |
5790 issue a warning when it detects a null value passed in such an | |
5791 argument slot. | |
5792 * A new type attribute, may_alias, has been added. Accesses to | |
5793 objects with types with this attribute are not subjected to | |
5794 type-based alias analysis, but are instead assumed to be able to | |
5795 alias any other type of objects, just like the char type. | |
5796 | |
5797 C++ | |
5798 | |
5799 * Type based alias analysis has been implemented for C++ aggregate | |
5800 types. | |
5801 | |
5802 Objective-C | |
5803 | |
5804 * Generate an error if Objective-C objects are passed by value in | |
5805 function and method calls. | |
5806 * When -Wselector is used, check the whole list of selectors at the | |
5807 end of compilation, and emit a warning if a @selector() is not | |
5808 known. | |
5809 * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime. | |
5810 * No longer need to include objc/objc-class.h to compile self calls | |
5811 in class methods (NeXT runtime only). | |
5812 * New -Wundeclared-selector option. | |
5813 * Removed selector bloating which was causing object files to be 10% | |
5814 bigger on average (GNU runtime only). | |
5815 * Using at run time @protocol() objects has been fixed in certain | |
5816 situations (GNU runtime only). | |
5817 * Type checking has been fixed and improved in many situations | |
5818 involving protocols. | |
5819 | |
5820 Java | |
5821 | |
5822 * The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK | |
5823 1.4) API. | |
5824 * The JDK 1.4 assert facility has been implemented. | |
5825 * The bytecode interpreter is now direct threaded and thus faster. | |
5826 | |
5827 Fortran | |
5828 | |
5829 * Fortran improvements are listed in [7]the Fortran documentation. | |
5830 | |
5831 Ada | |
5832 | |
5833 * Ada tasking now works with glibc 2.3.x threading libraries. | |
5834 | |
5835 New Targets and Target Specific Improvements | |
5836 | |
5837 * The following changes have been made to the HP-PA port: | |
5838 + The port now defaults to scheduling for the PA8000 series of | |
5839 processors. | |
5840 + Scheduling support for the PA7300 processor has been added. | |
5841 + The 32-bit port now supports weak symbols under HP-UX 11. | |
5842 + The handling of initializers and finalizers has been improved | |
5843 under HP-UX 11. The 64-bit port no longer uses collect2. | |
5844 + Dwarf2 EH support has been added to the 32-bit linux port. | |
5845 + ABI fixes to correct the passing of small structures by value. | |
5846 * The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to | |
5847 use the DFA processor pipeline description. | |
5848 * The following NetBSD configurations for the SuperH processor family | |
5849 have been added: | |
5850 + SH3, big-endian, sh-*-netbsdelf* | |
5851 + SH3, little-endian, shle-*-netbsdelf* | |
5852 + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd* | |
5853 + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd* | |
5854 + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd* | |
5855 + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd* | |
5856 * The following changes have been made to the IA-32/x86-64 port: | |
5857 + SSE2 and 3dNOW! intrinsics are now supported. | |
5858 + Support for thread local storage has been added to the IA-32 | |
5859 and x86-64 ports. | |
5860 + The x86-64 port has been significantly improved. | |
5861 * The following changes have been made to the MIPS port: | |
5862 + All configurations now accept the -mabi switch. Note that you | |
5863 will need appropriate multilibs for this option to work | |
5864 properly. | |
5865 + ELF configurations will always pass an ABI flag to the | |
5866 assembler, except when the MIPS EABI is selected. | |
5867 + -mabi=64 no longer selects MIPS IV code. | |
5868 + The -mcpu option, which was deprecated in 3.1 and 3.2, has | |
5869 been removed from this release. | |
5870 + -march now changes the core ISA level. In previous releases, | |
5871 it would change the use of processor-specific extensions, but | |
5872 would leave the core ISA unchanged. For example, mips64-elf | |
5873 -march=r8000 will now generate MIPS IV code. | |
5874 + Under most configurations, -mipsN now acts as a synonym for | |
5875 -march. | |
5876 + There are some new preprocessor macros to describe the -march | |
5877 and -mtune settings. See the documentation of those options | |
5878 for details. | |
5879 + Support for the NEC VR-Series processors has been added. This | |
5880 includes the 54xx, 5500, and 41xx series. | |
5881 + Support for the Sandcraft sr71k processor has been added. | |
5882 * The following changes have been made to the S/390 port: | |
5883 + Support to build the Java runtime libraries has been added. | |
5884 Java is now enabled by default on s390-*-linux* and | |
5885 s390x-*-linux* targets. | |
5886 + Multilib support for the s390x-*-linux* target has been added; | |
5887 this allows to build 31-bit binaries using the -m31 option. | |
5888 + Support for thread local storage has been added. | |
5889 + Inline assembler code may now use the 'Q' constraint to | |
5890 specify memory operands without index register. | |
5891 + Various platform-specific performance improvements have been | |
5892 implemented; in particular, the compiler now uses the BRANCH | |
5893 ON COUNT family of instructions and makes more frequent use of | |
5894 the TEST UNDER MASK family of instructions. | |
5895 * The following changes have been made to the PowerPC port: | |
5896 + Support for IBM Power4 processor added. | |
5897 + Support for Motorola e500 SPE added. | |
5898 + Support for AIX 5.2 added. | |
5899 + Function and Data sections now supported on AIX. | |
5900 + Sibcall optimizations added. | |
5901 * The support for H8 Tiny is added to the H8/300 port with -mn. | |
5902 | |
5903 Obsolete Systems | |
5904 | |
5905 Support for a number of older systems has been declared obsolete in GCC | |
5906 3.3. Unless there is activity to revive them, the next release of GCC | |
5907 will have their sources permanently removed. | |
5908 | |
5909 All configurations of the following processor architectures have been | |
5910 declared obsolete: | |
5911 * Matsushita MN10200, mn10200-*-* | |
5912 * Motorola 88000, m88k-*-* | |
5913 * IBM ROMP, romp-*-* | |
5914 | |
5915 Also, some individual systems have been obsoleted: | |
5916 * Alpha | |
5917 + Interix, alpha*-*-interix* | |
5918 + Linux libc1, alpha*-*-linux*libc1* | |
5919 + Linux ECOFF, alpha*-*-linux*ecoff* | |
5920 * ARM | |
5921 + Generic a.out, arm*-*-aout* | |
5922 + Conix, arm*-*-conix* | |
5923 + "Old ABI," arm*-*-oabi | |
5924 + StrongARM/COFF, strongarm-*-coff* | |
5925 * HPPA (PA-RISC) | |
5926 + Generic OSF, hppa1.0-*-osf* | |
5927 + Generic BSD, hppa1.0-*-bsd* | |
5928 + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]* | |
5929 + HiUX, hppa*-*-hiux* | |
5930 + Mach Lites, hppa*-*-lites* | |
5931 * Intel 386 family | |
5932 + Windows NT 3.x, i?86-*-win32 | |
5933 * MC68000 family | |
5934 + HP systems, m68000-hp-bsd* and m68k-hp-bsd* | |
5935 + Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and | |
5936 m68k-sun-mach* | |
5937 + AT&T systems, m68000-att-sysv* | |
5938 + Atari systems, m68k-atari-sysv* | |
5939 + Motorola systems, m68k-motorola-sysv* | |
5940 + NCR systems, m68k-ncr-sysv* | |
5941 + Plexus systems, m68k-plexus-sysv* | |
5942 + Commodore systems, m68k-cbm-sysv* | |
5943 + Citicorp TTI, m68k-tti-* | |
5944 + Unos, m68k-crds-unos* | |
5945 + Concurrent RTU, m68k-ccur-rtu* | |
5946 + Linux a.out, m68k-*-linux*aout* | |
5947 + Linux libc1, m68k-*-linux*libc1* | |
5948 + pSOS, m68k-*-psos* | |
5949 * MIPS | |
5950 + Generic ECOFF, mips*-*-ecoff* | |
5951 + SINIX, mips-sni-sysv4 | |
5952 + Orion RTEMS, mips64orion-*-rtems* | |
5953 * National Semiconductor 32000 | |
5954 + OpenBSD, ns32k-*-openbsd* | |
5955 * POWER (aka RS/6000) and PowerPC | |
5956 + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]* | |
5957 + Bull BOSX, rs6000-bull-bosx | |
5958 + Generic Mach, rs6000-*-mach* | |
5959 + Generic SysV, powerpc*-*-sysv* | |
5960 + Linux libc1, powerpc*-*-linux*libc1* | |
5961 * Sun SPARC | |
5962 + Generic a.out, sparc-*-aout*, sparclet-*-aout*, | |
5963 sparclite-*-aout*, and sparc86x-*-aout* | |
5964 + NetBSD a.out, sparc-*-netbsd*aout* | |
5965 + Generic BSD, sparc-*-bsd* | |
5966 + ChorusOS, sparc-*-chorusos* | |
5967 + Linux a.out, sparc-*-linux*aout* | |
5968 + Linux libc1, sparc-*-linux*libc1* | |
5969 + LynxOS, sparc-*-lynxos* | |
5970 + Solaris on HAL hardware, sparc-hal-solaris2* | |
5971 + SunOS versions 3 and 4, sparc-*-sunos[34]* | |
5972 * NEC V850 | |
5973 + RTEMS, v850-*-rtems* | |
5974 * VAX | |
5975 + VMS, vax-*-vms* | |
5976 | |
5977 Documentation improvements | |
5978 | |
5979 Other significant improvements | |
5980 | |
5981 * Almost all front-end dependencies in the compiler have been | |
5982 separated out into a set of language hooks. This should make adding | |
5983 a new front end clearer and easier. | |
5984 * One effect of removing the separate preprocessor is a small | |
5985 increase in the robustness of the compiler in general, and the | |
5986 maintainability of target descriptions. Previously target-specific | |
5987 built-in macros and others, such as __FAST_MATH__, had to be | |
5988 handled with so-called specs that were hard to maintain. Often they | |
5989 would fail to behave properly when conflicting options were | |
5990 supplied on the command line, and define macros in the user's | |
5991 namespace even when strict ISO compliance was requested. | |
5992 Integrating the preprocessor has cleanly solved these issues. | |
5993 * The Makefile suite now supports redirection of make install by | |
5994 means of the variable DESTDIR. | |
5995 __________________________________________________________________ | |
5996 | |
5997 GCC 3.3 | |
5998 | |
5999 Detailed release notes for the GCC 3.3 release follow. | |
6000 | |
6001 Bug Fixes | |
6002 | |
6003 bootstrap failures | |
6004 | |
6005 * [8]10140 cross compiler build failures: missing __mempcpy (DUP: | |
6006 [9]10198,[10]10338) | |
6007 | |
6008 Internal compiler errors (multi-platform) | |
6009 | |
6010 * [11]3581 large string causes segmentation fault in cc1 | |
6011 * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler | |
6012 * [13]5533 (c++) ICE when processing std::accumulate(begin, end, | |
6013 init, invalid_op) | |
6014 * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out | |
6015 * [15]6412 (c++) ICE in retrieve_specialization | |
6016 * [16]6620 (c++) partial template specialization causes an ICE | |
6017 (segmentation fault) | |
6018 * [17]6663 (c++) ICE with attribute aligned | |
6019 * [18]7068 ICE with incomplete types | |
6020 * [19]7083 (c++) ICE using -gstabs with dodgy class derivation | |
6021 * [20]7647 (c++) ICE when data member has the name of the enclosing | |
6022 class | |
6023 * [21]7675 ICE in fixup_var_refs_1 | |
6024 * [22]7718 'complex' template instantiation causes ICE | |
6025 * [23]8116 (c++) ICE in member template function | |
6026 * [24]8358 (ada) Ada compiler accesses freed memory, crashes | |
6027 * [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation | |
6028 fault | |
6029 * [26]8564 (c++) ICE in find_function_data, in function.c | |
6030 * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c | |
6031 * [28]8766 (c++) ICE after failed initialization of static template | |
6032 variable | |
6033 * [29]8803 ICE in instantiate_virtual_regs_1, in function.c | |
6034 * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set | |
6035 * [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class | |
6036 definition | |
6037 * [32]9216 (c++) ICE on missing template parameter | |
6038 * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c | |
6039 * [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO | |
6040 loop | |
6041 * [35]9429 (c++) ICE in template instantiation with a pointered new | |
6042 operator | |
6043 * [36]9516 Internal error when using a big array | |
6044 * [37]9600 (c++) ICE with typedefs in template class | |
6045 * [38]9629 (c++) virtual inheritance segfault | |
6046 * [39]9672 (c++) ICE: Error reporting routines re-entered | |
6047 * [40]9749 (c++) ICE in write_expression on invalid function | |
6048 prototype | |
6049 * [41]9794 (fortran) ICE: floating point exception during constant | |
6050 folding | |
6051 * [42]9829 (c++) Missing colon in nested namespace usage causes ICE | |
6052 * [43]9916 (c++) ICE with noreturn function in ?: statement | |
6053 * [44]9936 ICE with local function and variable-length 2d array | |
6054 * [45]10262 (c++) cc1plus crashes with large generated code | |
6055 * [46]10278 (c++) ICE in parser for invalid code | |
6056 * [47]10446 (c++) ICE on definition of nonexistent member function of | |
6057 nested class in a class template | |
6058 * [48]10451 (c++) ICE in grokdeclarator on spurious mutable | |
6059 declaration | |
6060 * [49]10506 (c++) ICE in build_new at cp/init.c with | |
6061 -fkeep-inline-functions and multiple inheritance | |
6062 * [50]10549 (c++) ICE in store_bit_field on bitfields that exceed the | |
6063 precision of the declared type | |
6064 | |
6065 Optimization bugs | |
6066 | |
6067 * [51]2001 Inordinately long compile times in reload CSE regs | |
6068 * [52]2391 Exponential compilation time explosion in combine | |
6069 * [53]2960 Duplicate loop conditions even with -Os | |
6070 * [54]4046 redundant conditional branch | |
6071 * [55]6405 Loop-unrolling related performance regressions | |
6072 * [56]6798 very long compile time with large case-statement | |
6073 * [57]6871 const objects shouldn't be moved to .bss | |
6074 * [58]6909 problem w/ -Os on modified loop-2c.c test case | |
6075 * [59]7189 gcc -O2 -Wall does not print ``control reaches end of | |
6076 non-void function'' warning | |
6077 * [60]7642 optimization problem with signbit() | |
6078 * [61]8634 incorrect code for inlining of memcpy under -O2 | |
6079 * [62]8750 Cygwin prolog generation erroneously emitting __alloca as | |
6080 regular function call | |
6081 | |
6082 C front end | |
6083 | |
6084 * [63]2161 long if-else cascade overflows parser stack | |
6085 * [64]4319 short accepted on typedef'd char | |
6086 * [65]8602 incorrect line numbers in warning messages when using | |
6087 inline functions | |
6088 * [66]9177 -fdump-translation-unit: C front end deletes function_decl | |
6089 AST nodes and breaks debugging dumps | |
6090 * [67]9853 miscompilation of non-constant structure initializer | |
6091 | |
6092 c++ compiler and library | |
6093 | |
6094 * [68]45 legal template specialization code is rejected (DUP: | |
6095 [69]3784) | |
6096 * [70]764 lookup failure: friend operator and dereferencing a pointer | |
6097 and templates (DUP: [71]5116) | |
6098 * [72]2862 gcc accepts invalid explicit instantiation syntax (DUP: | |
6099 2863) | |
6100 * [73]3663 G++ doesn't check access control during template | |
6101 instantiation | |
6102 * [74]3797 gcc fails to emit explicit specialization of a template | |
6103 member | |
6104 * [75]3948 Two destructors are called when no copy destructor is | |
6105 defined (ABI change) | |
6106 * [76]4137 Conversion operator within template is not accepted | |
6107 * [77]4361 bogus ambiguity taking the address of a member template | |
6108 * [78]4802 g++ accepts illegal template code (access to private | |
6109 member; DUP: [79]5837) | |
6110 * [80]4803 inline function is used but never defined, and g++ does | |
6111 not object | |
6112 * [81]5094 Partial specialization cannot be friend? | |
6113 * [82]5730 complex<double>::norm() -- huge slowdown from egcs-2.91.66 | |
6114 * [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run | |
6115 time | |
6116 * [84]7015 certain __asm__ constructs rejected | |
6117 * [85]7086 compile time regression (quadratic behavior in | |
6118 fixup_var_refs) | |
6119 * [86]7099 G++ doesn't set the noreturn attribute on std::exit and | |
6120 std::abort | |
6121 * [87]7247 copy constructor missing when inlining enabled (invalid | |
6122 optimization?) | |
6123 * [88]7441 string array initialization compilation time regression | |
6124 from seconds to minutes | |
6125 * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong | |
6126 * [90]7804 bad printing of floating point constant in warning message | |
6127 * [91]8099 Friend classes and template specializations | |
6128 * [92]8117 member function pointers and multiple inheritance | |
6129 * [93]8205 using declaration and multiple inheritance | |
6130 * [94]8645 unnecessary non-zero checks in stl_tree.h | |
6131 * [95]8724 explicit destructor call for incomplete class allowed | |
6132 * [96]8805 compile time regression with many member variables | |
6133 * [97]8691 -O3 and -fno-implicit-templates are incompatible | |
6134 * [98]8700 unhelpful error message for binding temp to reference | |
6135 * [99]8724 explicit destructor call for incomplete class allowed | |
6136 * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems | |
6137 * [101]9016 Failure to consistently constant fold "constant" C++ | |
6138 objects | |
6139 * [102]9053 g++ confused about ambiguity of overloaded function | |
6140 templates | |
6141 * [103]9152 undefined virtual thunks | |
6142 * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out | |
6143 * [105]9297 data corruption due to codegen bug (when copying.) | |
6144 * [106]9318 i/ostream::operator>>/<<(streambuf*) broken | |
6145 * [107]9320 Incorrect usage of traits_type::int_type in stdio_filebuf | |
6146 * [108]9400 bogus -Wshadow warning: shadowed declaration of this in | |
6147 local classes | |
6148 * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters | |
6149 * [110]9425 filebuf::pbackfail broken (DUP: [111]9439) | |
6150 * [112]9474 GCC freezes in compiling a weird code mixing <iostream> | |
6151 and <iostream.h> | |
6152 * [113]9548 Incorrect results from setf(ios::fixed) and precision(-1) | |
6153 [114][DR 231] | |
6154 * [115]9555 ostream inserters fail to set badbit on exception | |
6155 * [116]9561 ostream inserters rethrow exception of wrong type | |
6156 * [117]9563 ostream::sentry returns true after a failed preparation | |
6157 * [118]9582 one-definition rule violation in std::allocator | |
6158 * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors | |
6159 * [120]9683 bug in initialization chains for static const variables | |
6160 from template classes | |
6161 * [121]9791 -Woverloaded-virtual reports hiding of destructor | |
6162 * [122]9817 collate::compare doesn't handle nul characters | |
6163 * [123]9825 filebuf::sputbackc breaks sbumpc | |
6164 * [124]9826 operator>>(basic_istream, basic_string) fails to compile | |
6165 with custom traits | |
6166 * [125]9924 Multiple using statements for builtin functions not | |
6167 allowed | |
6168 * [126]9946 destructor is not called for temporary object | |
6169 * [127]9964 filebuf::close() sometimes fails to close file | |
6170 * [128]9988 filebuf::overflow writes EOF to file | |
6171 * [129]10033 optimization breaks polymorphic references w/ typeid | |
6172 operator | |
6173 * [130]10097 filebuf::underflow drops characters | |
6174 * [131]10132 filebuf destructor can throw exceptions | |
6175 * [132]10180 gcc fails to warn about non-inlined function | |
6176 * [133]10199 method parametrized by template does not work everywhere | |
6177 * [134]10300 use of array-new (nothrow) in segfaults on NULL return | |
6178 * [135]10427 Stack corruption with variable-length automatic arrays | |
6179 and virtual destructors | |
6180 * [136]10503 Compilation never stops in fixed_type_or_null | |
6181 | |
6182 Objective-C | |
6183 | |
6184 * [137]5956 selectors aren't matched properly when added to the | |
6185 selector table | |
6186 | |
6187 Fortran compiler and library | |
6188 | |
6189 * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't | |
6190 detect | |
6191 * [139]3924 g77 generates code that is rejected by GAS if COFF debug | |
6192 info requested | |
6193 * [140]5634 doc: explain that configure --prefix=~/... does not work | |
6194 * [141]6367 multiple repeat counts confuse namelist read into array | |
6195 * [142]6491 Logical operations error on logicals when using | |
6196 -fugly-logint | |
6197 * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C" | |
6198 * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os | |
6199 on irix6.5 | |
6200 * [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should | |
6201 assume a direct access file | |
6202 * [146]7278 g77 "bug"; the executable misbehaves (with -O2 | |
6203 -fno-automatic) | |
6204 * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows | |
6205 * [148]7388 Incorrect output with 0-based array of characters | |
6206 * [149]8587 Double complex zero ** double precision number -> NaN | |
6207 instead of zero | |
6208 * [150]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning: | |
6209 unknown register name line-length-none | |
6210 * [151]10197 Direct access files not unformatted by default | |
6211 | |
6212 Java compiler and library | |
6213 | |
6214 * [152]6005 gcj fails to build rhug on alpha | |
6215 * [153]6389 System.getProperty("") should always throw an | |
6216 IllegalArgumentException | |
6217 * [154]6576 java.util.ResourceBundle.getResource ignores locale | |
6218 * [155]6652 new java.io.File("").getCanonicalFile() throws exception | |
6219 * [156]7060 getMethod() doesn't search super interface | |
6220 * [157]7073 bytecode interpreter gives wrong answer for interface | |
6221 getSuperclass() | |
6222 * [158]7180 possible bug in | |
6223 javax.naming.spi.NamingManager.getPlusPath() | |
6224 * [159]7416 java.security startup refs "GNU libgcj.security" | |
6225 * [160]7570 Runtime.exec with null envp: child doesn't inherit parent | |
6226 env (DUP: [161]7578) | |
6227 * [162]7611 Internal error while compiling libjava with -O | |
6228 * [163]7709 NullPointerException in _Jv_ResolvePoolEntry | |
6229 * [164]7766 ZipInputStream.available returns 0 immediately after | |
6230 construction | |
6231 * [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be public | |
6232 * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented | |
6233 * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens' | |
6234 * [168]8234 ZipInputStream chokes when InputStream.read() returns | |
6235 small chunks | |
6236 * [169]8415 reflection bug: exception info for Method | |
6237 * [170]8481 java.Random.nextInt(int) may return negative | |
6238 * [171]8593 Error reading GZIPped files with BufferedReader | |
6239 * [172]8759 java.beans.Introspector has no flushCaches() or | |
6240 flushFromCaches() methods | |
6241 * [173]8997 spin() calls Thread.sleep | |
6242 * [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd | |
6243 instead of the root content of C: | |
6244 * [175]9254 java::lang::Object::wait(), threads-win32.cc returns | |
6245 wrong return codes | |
6246 * [176]9271 Severe bias in java.security.SecureRandom | |
6247 | |
6248 Ada compiler and library | |
6249 | |
6250 * [177]6767 make gnatlib-shared fails on -laddr2line | |
6251 * [178]9911 gnatmake fails to link when GCC configured with | |
6252 --with-sjlj-exceptions=yes | |
6253 * [179]10020 Can't bootstrap gcc on AIX with Ada enabled | |
6254 * [180]10546 Ada tasking not working on Red Hat 9 | |
6255 | |
6256 preprocessor | |
6257 | |
6258 * [181]7029 preprocessor should ignore #warning with -M | |
6259 | |
6260 ARM-specific | |
6261 | |
6262 * [182]2903 [arm] Optimization bug with long long arithmetic | |
6263 * [183]7873 arm-linux-gcc fails when assigning address to a bit field | |
6264 | |
6265 FreeBSD-specific | |
6266 | |
6267 * [184]7680 float functions undefined in math.h/cmath with #define | |
6268 _XOPEN_SOURCE | |
6269 | |
6270 HP-UX or HP-PA-specific | |
6271 | |
6272 * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c | |
6273 * [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to | |
6274 fputc_unlocked | |
6275 * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen | |
6276 | |
6277 m68hc11-specific | |
6278 | |
6279 * [188]6744 Bad assembler code generated: reference to pseudo | |
6280 register z | |
6281 * [189]7361 Internal compiler error in reload_cse_simplify_operands, | |
6282 in reload1.c | |
6283 | |
6284 MIPS-specific | |
6285 | |
6286 * [190]9496 [mips-linux] bug in optimizer? | |
6287 | |
6288 PowerPC-specific | |
6289 | |
6290 * [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of | |
6291 space | |
6292 * [192]8480 reload ICEs for LAPACK code on powerpc64-linux | |
6293 * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg | |
6294 * [194]10315 [powerpc] ICE: in extract_insn, in recog.c | |
6295 | |
6296 SPARC-specific | |
6297 | |
6298 * [195]10267 (documentation) Wrong build instructions for | |
6299 *-*-solaris2* | |
6300 | |
6301 x86-specific (Intel/AMD) | |
6302 | |
6303 * [196]7916 ICE in instantiate_virtual_register_1 | |
6304 * [197]7926 (c++) i486 instructions in header files make c++ programs | |
6305 crash on i386 | |
6306 * [198]8555 ICE in gen_split_1231 | |
6307 * [199]8994 ICE with -O -march=pentium4 | |
6308 * [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs | |
6309 * [201]9806 ICE in inline assembly with -fPIC flag | |
6310 * [202]10077 gcc -msse2 generates movd to move dwords between xmm | |
6311 regs | |
6312 * [203]10233 64-bit comparison only comparing bottom 32-bits | |
6313 * [204]10286 type-punning doesn't work with __m64 and -O | |
6314 * [205]10308 [x86] ICE with -O -fgcse or -O2 | |
6315 __________________________________________________________________ | |
6316 | |
6317 GCC 3.3.1 | |
6318 | |
6319 Bug Fixes | |
6320 | |
6321 This section lists the problem reports (PRs) from GCC's bug tracking | |
6322 system that are known to be fixed in the 3.3.1 release. This list might | |
6323 not be complete (that is, it is possible that some PRs that have been | |
6324 fixed are not listed here). | |
6325 | |
6326 Bootstrap failures | |
6327 | |
6328 * [206]11272 [Solaris] make bootstrap fails while building libstdc++ | |
6329 | |
6330 Internal compiler errors (multi-platform) | |
6331 | |
6332 * [207]5754 ICE on invalid nested template class | |
6333 * [208]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64 | |
6334 and --enable-checking | |
6335 * [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c | |
6336 * [210]7053 (c++) ICE when declaring a function already defined as a | |
6337 friend method of a template class | |
6338 * [211]8164 (c++) ICE when using different const expressions as | |
6339 template parameter | |
6340 * [212]8384 (c++) ICE in is_base_type, in dwarf2out.c | |
6341 * [213]9559 (c++) ICE with invalid initialization of a static const | |
6342 * [214]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c | |
6343 when redeclaring a static member variable | |
6344 * [215]9864 (fortran) ICE in add_abstract_origin_attribute, in | |
6345 dwarfout.c with -g -O -finline-functions | |
6346 * [216]10432 (c++) ICE in poplevel, in cp/decl.c | |
6347 * [217]10475 ICE in subreg_highpart_offset for code with long long | |
6348 * [218]10635 (c++) ICE when dereferencing an incomplete type casted | |
6349 from a void pointer | |
6350 * [219]10661 (c++) ICE in instantiate_decl, in cp/pt.c while | |
6351 instantiating static member variables | |
6352 * [220]10700 ICE in copy_to_mode_reg on 64-bit targets | |
6353 * [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c | |
6354 * [222]10796 (c++) ICE when defining an enum with two values: -1 and | |
6355 MAX_INT_64BIT | |
6356 * [223]10890 ICE in merge_assigned_reloads building Linux 2.4.2x | |
6357 sched.c | |
6358 * [224]10939 (c++) ICE with template code | |
6359 * [225]10956 (c++) ICE when specializing a template member function | |
6360 of a template class, in tsubst, in cp/pt.c | |
6361 * [226]11041 (c++) ICE: const myclass &x = *x; (when operator*() | |
6362 defined) | |
6363 * [227]11059 (c++) ICE with empty union | |
6364 * [228]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with | |
6365 -O2 -fnon-call-exceptions | |
6366 * [229]11105 (c++) ICE in mangle_conv_op_name_for_type | |
6367 * [230]11149 (c++) ICE on error when instantiation with call function | |
6368 of a base type | |
6369 * [231]11228 (c++) ICE on new-expression using array operator new and | |
6370 default-initialization | |
6371 * [232]11282 (c++) Infinite memory usage after syntax error | |
6372 * [233]11301 (fortran) ICE with -fno-globals | |
6373 * [234]11308 (c++) ICE when using an enum type name as if it were a | |
6374 class or namespace | |
6375 * [235]11473 (c++) ICE with -gstabs when empty struct inherits from | |
6376 an empty struct | |
6377 * [236]11503 (c++) ICE when instantiating template with ADDR_EXPR | |
6378 * [237]11513 (c++) ICE in push_template_decl_real, in cp/pt.c: | |
6379 template member functions | |
6380 | |
6381 Optimization bugs | |
6382 | |
6383 * [238]11198 -O2 -frename-registers generates wrong code (aliasing | |
6384 problem) | |
6385 * [239]11304 Wrong code production with -fomit-frame-pointer | |
6386 * [240]11381 volatile memory access optimized away | |
6387 * [241]11536 [strength-reduce] -O2 optimization produces wrong code | |
6388 * [242]11557 constant folding bug generates wrong code | |
6389 | |
6390 C front end | |
6391 | |
6392 * [243]5897 No warning for statement after return | |
6393 * [244]11279 DWARF-2 output mishandles large enums | |
6394 | |
6395 Preprocessor bugs | |
6396 | |
6397 * [245]11022 no warning for non-compatible macro redefinition | |
6398 | |
6399 C++ compiler and library | |
6400 | |
6401 * [246]2330 static_cast<>() to a private base is allowed | |
6402 * [247]5388 Incorrect message "operands to ?: have different types" | |
6403 * [248]5390 Libiberty fails to demangle multi-digit template | |
6404 parameters | |
6405 * [249]7877 Incorrect parameter passing to specializations of member | |
6406 function templates | |
6407 * [250]9393 Anonymous namespaces and compiling the same file twice | |
6408 * [251]10032 -pedantic converts some errors to warnings | |
6409 * [252]10468 const typeof(x) is non-const, but only in templates | |
6410 * [253]10527 confused error message with "new int()" parameter | |
6411 initializer | |
6412 * [254]10679 parameter MIN_INLINE_INSNS is not honored | |
6413 * [255]10682 gcc chokes on a typedef for an enum inside a class | |
6414 template | |
6415 * [256]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of | |
6416 0. | |
6417 * [257]10845 template member function (with nested template as | |
6418 parameter) cannot be called anymore if another unrelated template | |
6419 member function is defined | |
6420 * [258]10849 Cannot define an out-of-class specialization of a | |
6421 private nested template class | |
6422 * [259]10888 Suppress -Winline warnings for system headers | |
6423 * [260]10929 -Winline warns about functions for which no definition | |
6424 is visible | |
6425 * [261]10931 valid conversion static_cast<const unsigned | |
6426 int&>(lvalue-of-type-int) is rejected | |
6427 * [262]10940 Bad code with explicit specialization | |
6428 * [263]10968 If member function implicitly instantiated, explicit | |
6429 instantiation of class fails to instantiate it | |
6430 * [264]10990 Cannot convert with dynamic_cast<> to a private base | |
6431 class from within a member function | |
6432 * [265]11039 Bad interaction between implicit typename deprecation | |
6433 and friendship | |
6434 * [266]11062 (libstdc++) avoid __attribute__ ((unused)); say | |
6435 "__unused__" instead | |
6436 * [267]11095 C++ iostream manipulator causes segfault when called | |
6437 with negative argument | |
6438 * [268]11098 g++ doesn't emit complete debugging information for | |
6439 local variables in destructors | |
6440 * [269]11137 Linux shared library constructors not called unless | |
6441 there's one global object | |
6442 * [270]11154 spurious ambiguity report for template class | |
6443 specialization | |
6444 * [271]11329 Compiler cannot find user defined implicit typecast | |
6445 * [272]11332 Spurious error with casts in ?: expression | |
6446 * [273]11431 static_cast behavior with subclasses when default | |
6447 constructor available | |
6448 * [274]11528 money_get facet does not accept "$.00" as valid | |
6449 * [275]11546 Type lookup problems in out-of-line definition of a | |
6450 class doubly nested from a template class | |
6451 * [276]11567 C++ code containing templated member function with same | |
6452 name as pure virtual member function results in linking failure | |
6453 * [277]11645 Failure to deal with using and private inheritance | |
6454 | |
6455 Java compiler and library | |
6456 | |
6457 * [278]5179 Qualified static field access doesn't initialize its | |
6458 class | |
6459 * [279]8204 gcj -O2 to native reorders certain instructions | |
6460 improperly | |
6461 * [280]10838 java.io.ObjectInputStream syntax error | |
6462 * [281]10886 The RMI registry that comes with GCJ does not work | |
6463 correctly | |
6464 * [282]11349 JNDI URL context factories not located correctly | |
6465 | |
6466 x86-specific (Intel/AMD) | |
6467 | |
6468 * [283]4823 ICE on inline assembly code | |
6469 * [284]8878 miscompilation with -O and SSE | |
6470 * [285]9815 (c++ library) atomicity.h - fails to compile with -O3 | |
6471 -masm=intel | |
6472 * [286]10402 (inline assembly) [x86] ICE in merge_assigned_reloads, | |
6473 in reload1.c | |
6474 * [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2 | |
6475 * [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source | |
6476 * [289]11044 [x86] out of range loop instructions for FP code on K6 | |
6477 * [290]11089 ICE: instantiate_virtual_regs_lossage while using SSE | |
6478 built-ins | |
6479 * [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC" | |
6480 is used | |
6481 | |
6482 SPARC- or Solaris- specific | |
6483 | |
6484 * [292]9362 solaris 'as' dies when fed .s and "-gstabs" | |
6485 * [293]10142 [SPARC64] gcc produces wrong code when passing | |
6486 structures by value | |
6487 * [294]10663 New configure check aborts with Sun tools. | |
6488 * [295]10835 combinatorial explosion in scheduler on HyperSPARC | |
6489 * [296]10876 ICE in calculate_giv_inc when building KDE | |
6490 * [297]10955 wrong code at -O3 for structure argument in context of | |
6491 structure return | |
6492 * [298]11018 -mcpu=ultrasparc busts tar-1.13.25 | |
6493 * [299]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x | |
6494 Linux kernel | |
6495 | |
6496 ia64 specific | |
6497 | |
6498 * [300]10907 gcc violates the ia64 ABI (GP must be preserved) | |
6499 * [301]11320 scheduler bug (in machine depended reorganization pass) | |
6500 * [302]11599 bug with conditional and __builtin_prefetch | |
6501 | |
6502 PowerPC specific | |
6503 | |
6504 * [303]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem | |
6505 during loop) | |
6506 * [304]10871 error in rs6000_stack_info save_size computation | |
6507 * [305]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse | |
6508 cures it | |
6509 | |
6510 m68k-specific | |
6511 | |
6512 * [306]7594 [m68k] ICE on legal code associated with simplify-rtx | |
6513 * [307]10557 [m68k] ICE in subreg_offset_representable_p | |
6514 * [308]11054 [m68k] ICE in reg_overlap_mentioned_p | |
6515 | |
6516 ARM-specific | |
6517 | |
6518 * [309]10834 [arm] GCC 3.3 still generates incorrect instructions for | |
6519 functions with __attribute__ ((interrupt ("IRQ"))) | |
6520 * [310]10842 [arm] Clobbered link register is copied to pc under | |
6521 certain circumstances | |
6522 * [311]11052 [arm] noce_process_if_block() can lose REG_INC notes | |
6523 * [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno | |
6524 (3.4) | |
6525 | |
6526 MIPS-specific | |
6527 | |
6528 * [313]11084 ICE in propagate_one_insn, in flow.c | |
6529 | |
6530 SH-specific | |
6531 | |
6532 * [314]10331 can't compile c++ part of gcc cross compiler for sh-elf | |
6533 * [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c | |
6534 * [316]11096 i686-linux to sh-linux cross compiler fails to compile | |
6535 C++ files | |
6536 | |
6537 GNU/Linux (or Hurd?) specific | |
6538 | |
6539 * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3 | |
6540 | |
6541 UnixWare specific | |
6542 | |
6543 * [318]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare | |
6544 7.1.1 | |
6545 | |
6546 Cygwin (or mingw) specific | |
6547 | |
6548 * [319]5287 ICE with dllimport attribute | |
6549 * [320]10148 [MingW/CygWin] Compiler dumps core | |
6550 | |
6551 DJGPP specific | |
6552 | |
6553 * [321]8787 GCC fails to emit .intel_syntax when invoked with | |
6554 -masm=intel on DJGPP | |
6555 | |
6556 Darwin (and MacOS X) specific | |
6557 | |
6558 * [322]10900 trampolines crash | |
6559 | |
6560 Documentation | |
6561 | |
6562 * [323]1607 (c++) Format attributes on methods undocumented | |
6563 * [324]4252 Invalid option `-fdump-translation-unit' | |
6564 * [325]4490 Clarify restrictions on -m96bit-long-double, | |
6565 -m128bit-long-double | |
6566 * [326]10355 document an issue with regparm attribute on some systems | |
6567 (e.g. Solaris) | |
6568 * [327]10726 (fortran) Documentation for function "IDate Intrinsic | |
6569 (Unix)" is wrong | |
6570 * [328]10805 document bug in old version of Sun assembler | |
6571 * [329]10815 warn against GNU binutils on AIX | |
6572 * [330]10877 document need for newer binutils on i?86-*-linux-gnu | |
6573 * [331]11280 Manual incorrect with respect to -freorder-blocks | |
6574 * [332]11466 Document -mlittle-endian and its restrictions for the | |
6575 sparc64 port | |
6576 | |
6577 Testsuite bugs (compiler itself is not affected) | |
6578 | |
6579 * [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly | |
6580 report failure | |
6581 * [334]10810 gcc-3.3 fails make check: buffer overrun in | |
6582 test_demangle.c | |
6583 __________________________________________________________________ | |
6584 | |
6585 GCC 3.3.2 | |
6586 | |
6587 Bug Fixes | |
6588 | |
6589 This section lists the problem reports (PRs) from [335]GCC's bug | |
6590 tracking system that are known to be fixed in the 3.3.2 release. This | |
6591 list might not be complete (that is, it is possible that some PRs that | |
6592 have been fixed are not listed here). | |
6593 | |
6594 Bootstrap failures and problems | |
6595 | |
6596 * [336]8336 [SCO5] bootstrap config still tries to use COFF options | |
6597 * [337]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with | |
6598 --enable-threads=posix | |
6599 * [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap | |
6600 * [339]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare | |
6601 7.1.1) | |
6602 * [340]11687 xstormy16-elf build fails in libf2c | |
6603 * [341]12263 [SGI IRIX] bootstrap fails during compile of | |
6604 libf2c/libI77/backspace.c | |
6605 * [342]12490 buffer overflow in scan-decls.c (during Solaris 9 | |
6606 fix-header processing) | |
6607 | |
6608 Internal compiler errors (multi-platform) | |
6609 | |
6610 * [343]7277 Casting integers to vector types causes ICE | |
6611 * [344]7939 (c++) ICE on invalid function template specialization | |
6612 * [345]11063 (c++) ICE on parsing initialization list of const array | |
6613 member | |
6614 * [346]11207 ICE with negative index in array element designator | |
6615 * [347]11522 (fortran) g77 dwarf-2 ICE in | |
6616 add_abstract_origin_attribute | |
6617 * [348]11595 (c++) ICE on duplicate label definition | |
6618 * [349]11646 (c++) ICE in commit_one_edge_insertion with | |
6619 -fnon-call-exceptions -fgcse -O | |
6620 * [350]11665 ICE in struct initializer when taking address | |
6621 * [351]11852 (c++) ICE with bad struct initializer. | |
6622 * [352]11878 (c++) ICE in cp_expr_size | |
6623 * [353]11883 ICE with any -O on mercury-generated C code | |
6624 * [354]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in | |
6625 cp/typeck2.c when applying typeid operator to template template | |
6626 parameter | |
6627 * [355]12146 ICE in lookup_template_function, in cp/pt.c | |
6628 * [356]12215 ICE in make_label_edge with -fnon-call-exceptions | |
6629 -fno-gcse -O2 | |
6630 * [357]12369 (c++) ICE with templates and friends | |
6631 * [358]12446 ICE in emit_move_insn on complicated array reference | |
6632 * [359]12510 ICE in final_scan_insn | |
6633 * [360]12544 ICE with large parameters used in nested functions | |
6634 | |
6635 C and optimization bugs | |
6636 | |
6637 * [361]9862 spurious warnings with -W -finline-functions | |
6638 * [362]10962 lookup_field is a linear search on a linked list (can be | |
6639 slow if large struct) | |
6640 * [363]11370 -Wunreachable-code gives false complaints | |
6641 * [364]11637 invalid assembly with -fnon-call-exceptions | |
6642 * [365]11885 Problem with bitfields in packed structs | |
6643 * [366]12082 Inappropriate unreachable code warnings | |
6644 * [367]12180 Inline optimization fails for variadic function | |
6645 * [368]12340 loop unroller + gcse produces wrong code | |
6646 | |
6647 C++ compiler and library | |
6648 | |
6649 * [369]3907 nested template parameter collides with member name | |
6650 * [370]5293 confusing message when binding a temporary to a reference | |
6651 * [371]5296 [DR115] Pointers to functions and to template functions | |
6652 behave differently in deduction | |
6653 * [372]7939 ICE on function template specialization | |
6654 * [373]8656 Unable to assign function with __attribute__ and pointer | |
6655 return type to an appropriate variable | |
6656 * [374]10147 Confusing error message for invalid template function | |
6657 argument | |
6658 * [375]11400 std::search_n() makes assumptions about Size parameter | |
6659 * [376]11409 issues with using declarations, overloading, and | |
6660 built-in functions | |
6661 * [377]11740 ctype<wchar_t>::do_is(mask, wchar_t) doesn't handle | |
6662 multiple bits in mask | |
6663 * [378]11786 operator() call on variable in other namespace not | |
6664 recognized | |
6665 * [379]11867 static_cast ignores ambiguity | |
6666 * [380]11928 bug with conversion operators that are typedefs | |
6667 * [381]12114 Uninitialized memory accessed in dtor | |
6668 * [382]12163 static_cast + explicit constructor regression | |
6669 * [383]12181 Wrong code with comma operator and c++ | |
6670 * [384]12236 regparm and fastcall messes up parameters | |
6671 * [385]12266 incorrect instantiation of unneeded template during | |
6672 overload resolution | |
6673 * [386]12296 istream::peek() doesn't set eofbit | |
6674 * [387]12298 [sjlj exceptions] Stack unwind destroys | |
6675 not-yet-constructed object | |
6676 * [388]12369 ICE with templates and friends | |
6677 * [389]12337 apparently infinite loop in g++ | |
6678 * [390]12344 stdcall attribute ignored if function returns a pointer | |
6679 * [391]12451 missing(late) class forward declaration in cxxabi.h | |
6680 * [392]12486 g++ accepts invalid use of a qualified name | |
6681 | |
6682 x86 specific (Intel/AMD) | |
6683 | |
6684 * [393]8869 [x86 MMX] ICE with const variable optimization and MMX | |
6685 builtins | |
6686 * [394]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions | |
6687 -O2 | |
6688 * [395]11689 g++3.3 emits un-assembleable code for k6 architecture | |
6689 * [396]12116 [k6] Invalid assembly output values with X-MAME code | |
6690 * [397]12070 ICE converting between double and long double with | |
6691 -msoft-float | |
6692 | |
6693 ia64-specific | |
6694 | |
6695 * [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc | |
6696 * [399]11535 __builtin_return_address may not work on ia64 | |
6697 * [400]11693 [ia64] ICE in gen_nop_type | |
6698 * [401]12224 [ia64] Thread-local storage doesn't work | |
6699 | |
6700 PowerPC-specific | |
6701 | |
6702 * [402]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux | |
6703 kernel | |
6704 * [403]11319 loop miscompiled on ppc32 | |
6705 * [404]11949 ICE Compiler segfault with ffmpeg -maltivec code | |
6706 | |
6707 SPARC-specific | |
6708 | |
6709 * [405]11662 wrong code for expr. with cast to long long and | |
6710 exclusive or | |
6711 * [406]11965 invalid assembler code for a shift < 32 operation | |
6712 * [407]12301 (c++) stack corruption when a returned expression throws | |
6713 an exception | |
6714 | |
6715 Alpha-specific | |
6716 | |
6717 * [408]11717 [alpha-linux] unrecognizable insn compiling for.c of | |
6718 kernel 2.4.22-pre8 | |
6719 | |
6720 HPUX-specific | |
6721 | |
6722 * [409]11313 problem with #pragma weak and static inline functions | |
6723 * [410]11712 __STDC_EXT__ not defined for C++ by default anymore? | |
6724 | |
6725 Solaris specific | |
6726 | |
6727 * [411]12166 Profiled programs crash if PROFDIR is set | |
6728 | |
6729 Solaris-x86 specific | |
6730 | |
6731 * [412]12101 i386 Solaris no longer works with GNU as? | |
6732 | |
6733 Miscellaneous embedded target-specific bugs | |
6734 | |
6735 * [413]10988 [m32r-elf] wrong blockmove code with -O3 | |
6736 * [414]11805 [h8300-unknown-coff] [H8300] ICE for simple code with | |
6737 -O2 | |
6738 * [415]11902 [sh4] spec file improperly inserts rpath even when none | |
6739 needed | |
6740 * [416]11903 [sh4] -pthread fails to link due to error in spec file | |
6741 on sh4 | |
6742 __________________________________________________________________ | |
6743 | |
6744 GCC 3.3.3 | |
6745 | |
6746 Minor features | |
6747 | |
6748 In addition to the bug fixes documented below, this release contains | |
6749 few minor features such as: | |
6750 * Support for --with-sysroot | |
6751 * Support for automatic detection of executable stacks | |
6752 * Support for SSE3 instructions | |
6753 * Support for thread local storage debugging under GDB on S390 | |
6754 | |
6755 Bug Fixes | |
6756 | |
6757 This section lists the problem reports (PRs) from [417]GCC's bug | |
6758 tracking system that are known to be fixed in the 3.3.3 release. This | |
6759 list might not be complete (that is, it is possible that some PRs that | |
6760 have been fixed are not listed here). | |
6761 | |
6762 Bootstrap failures and issues | |
6763 | |
6764 * [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails | |
6765 * [419]12399 boehm-gc fails (when building a cross compiler): libtool | |
6766 unable to infer tagged configuration | |
6767 * [420]13068 mklibgcc.in doesn't handle multi-level multilib | |
6768 subdirectories properly | |
6769 | |
6770 Internal compiler errors (multi-platform) | |
6771 | |
6772 * [421]10060 ICE (stack overflow) on huge file (300k lines) due to | |
6773 recursive behaviour of copy_rtx_if_shared, in emit_rtl.c | |
6774 * [422]10555 (c++) ICE on undefined template argument | |
6775 * [423]10706 (c++) ICE in mangle_class_name_for_template | |
6776 * [424]11496 (fortran) error in flow_loops_find when -funroll-loops | |
6777 active | |
6778 * [425]11741 ICE in pre_insert_copy_insn, in gcse.c | |
6779 * [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0 | |
6780 * [427]12632 (fortran) -fbounds-check ICE | |
6781 * [428]12712 (c++) ICE on short legit C++ code fragment with gcc | |
6782 3.3.2 | |
6783 * [429]12726 (c++) ICE (segfault) on trivial code | |
6784 * [430]12890 (c++) ICE on compilation of class with throwing method | |
6785 * [431]12900 (c++) ICE in rtl_verify_flow_info_1 | |
6786 * [432]13060 (fortran) ICE in fixup_var_refs_1, in function.c on | |
6787 correct code with -O2 -fno-force-mem | |
6788 * [433]13289 (c++) ICE in regenerate_decl_from_template on recursive | |
6789 template | |
6790 * [434]13318 ICE: floating point exception in the loop optimizer | |
6791 * [435]13392 (c++) ICE in convert_from_eh_region_ranges_1, in | |
6792 except.c | |
6793 * [436]13574 (c++) invalid array default initializer in class lets | |
6794 gcc consume all memory and die | |
6795 * [437]13475 ICE on SIMD variables with partial value initialization | |
6796 * [438]13797 (c++) ICE on invalid template parameter | |
6797 * [439]13824 (java) gcj SEGV with simple .java program | |
6798 | |
6799 C and optimization bugs | |
6800 | |
6801 * [440]8776 loop invariants are not removed (most likely) | |
6802 * [441]10339 [sparc,ppc,ppc64] Invalid optimization: replacing | |
6803 strncmp by memcmp | |
6804 * [442]11350 undefined labels with -Os -fPIC | |
6805 * [443]12826 Optimizer removes reference through volatile pointer | |
6806 * [444]12500 stabs debug info: void no longer a predefined / builtin | |
6807 type | |
6808 * [445]12941 builtin-bitops-1.c miscompilation (latent bug) | |
6809 * [446]12953 tree inliner bug (in inline_forbidden_p) and fix | |
6810 * [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled | |
6811 * [448]13507 spurious printf format warning | |
6812 * [449]13382 Type information for const pointer disappears during | |
6813 optimization. | |
6814 * [450]13394 noreturn attribute ignored on recursive invokation | |
6815 * [451]13400 Compiled code crashes storing to read-only location | |
6816 * [452]13521 Endless loop in calculate_global_regs_live | |
6817 | |
6818 C++ compiler and library | |
6819 | |
6820 Some of the bug fixes in this list were made to implement decisions | |
6821 that the ISO C++ standards committee has made concerning several defect | |
6822 reports (DRs). Links in the list below point to detailed discussion of | |
6823 the relevant defect report. | |
6824 * [453]2094 unimplemented: use of `ptrmem_cst' in template type | |
6825 unification | |
6826 * [454]2294 using declaration confusion | |
6827 * [455]5050 template instantiation depth exceeds limit: recursion | |
6828 problem? | |
6829 * [456]9371 Bad exception handling in | |
6830 i/ostream::operator>>/<<(streambuf*) | |
6831 * [457]9546 bad exception handling in ostream members | |
6832 * [458]10081 basic_ios::_M_cache_locale leaves NULL members in the | |
6833 face of unknown locales | |
6834 * [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work | |
6835 * [461]10095 istream::operator>>(int&) sets ios::badbit when | |
6836 ios::failbit is set. | |
6837 * [462]11554 Warning about reordering of initializers doesn't mention | |
6838 location of constructor | |
6839 * [463]12297 istream::sentry::sentry() handles eof() incorrectly. | |
6840 * [464]12352 Exception safety problems in src/localename.cc | |
6841 * [465]12438 Memory leak in locale::combine() | |
6842 * [466]12540 Memory leak in locale::locale(const char*) | |
6843 * [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented | |
6844 * [470]12657 Resolution of [471]DR 292 (WP) still unimplemented | |
6845 * [472]12696 memory eating infinite loop in diagnostics (error | |
6846 recovery problem) | |
6847 * [473]12815 Code compiled with optimization behaves unexpectedly | |
6848 * [474]12862 Conflicts between typedefs/enums and namespace member | |
6849 declarations | |
6850 * [475]12926 Wrong value after assignment in initialize list using | |
6851 bit-fields | |
6852 * [476]12967 Resolution of [477]DR 300 [WP] still unimplemented | |
6853 * [478]12971 Resolution of [479]DR 328 [WP] still unimplemented | |
6854 * [480]13007 basic_streambuf::pubimbue, imbue wrong | |
6855 * [481]13009 Implicitly-defined assignment operator writes to wrong | |
6856 memory | |
6857 * [482]13057 regparm attribute not applied to destructor | |
6858 * [483]13070 -Wformat option ignored in g++ | |
6859 * [484]13081 forward template declarations in <complex> let inlining | |
6860 fail | |
6861 * [485]13239 Assertion does not seem to work correctly anymore | |
6862 * [486]13262 "xxx is private within this context" when initializing a | |
6863 self-contained template class | |
6864 * [487]13290 simple typo in concept checking for std::generate_n | |
6865 * [488]13323 Template code does not compile in presence of typedef | |
6866 * [489]13369 __verify_grouping (and __add_grouping?) not correct | |
6867 * [490]13371 infinite loop with packed struct and inlining | |
6868 * [491]13445 Template argument replacement "dereferences" a typedef | |
6869 * [492]13461 Fails to access protected-ctor from public constant | |
6870 * [493]13462 Non-standard-conforming type set::pointer | |
6871 * [494]13478 gcc uses wrong constructor to initialize a const | |
6872 reference | |
6873 * [495]13544 "conflicting types" for enums in different scopes | |
6874 * [496]13650 string::compare should not (always) use | |
6875 traits_type::length() | |
6876 * [497]13683 bogus warning about passing non-PODs through ellipsis | |
6877 * [498]13688 Derived class is denied access to protected base class | |
6878 member class | |
6879 * [499]13774 Member variable cleared in virtual multiple inheritance | |
6880 class | |
6881 * [500]13884 Protect sstream.tcc from extern template use | |
6882 | |
6883 Java compiler and library | |
6884 | |
6885 * [501]10746 [win32] garbage collection crash in GCJ | |
6886 | |
6887 Objective-C compiler and library | |
6888 | |
6889 * [502]11433 Crash due to dereferencing null pointer when querying | |
6890 protocol | |
6891 | |
6892 Fortran compiler and library | |
6893 | |
6894 * [503]12633 logical expression gives incorrect result with | |
6895 -fugly-logint option | |
6896 * [504]13037 [gcse-lm] g77 generates incorrect code | |
6897 * [505]13213 Hex constant problem when compiling with -fugly-logint | |
6898 and -ftypeless-boz | |
6899 | |
6900 x86-specific (Intel/AMD) | |
6901 | |
6902 * [506]4490 ICE with -m128bit-long-double | |
6903 * [507]12292 [x86_64] ICE: RTL check: expected code `const_int', have | |
6904 `reg' in make_field_assignment, in combine.c | |
6905 * [508]12441 ICE: can't find a register to spill | |
6906 * [509]12943 array static-init failure under -fpic, -fPIC | |
6907 * [510]13608 Incorrect code with -O3 -ffast-math | |
6908 | |
6909 PowerPC-specific | |
6910 | |
6911 * [511]11598 testcase gcc.dg/20020118-1.c fails runtime check of | |
6912 __attribute__((aligned(16))) | |
6913 * [512]11793 ICE in extract_insn, in recog.c (const_vector's) | |
6914 * [513]12467 vmsumubm emitted when vmsummbm appropriate (typo in | |
6915 altivec.md) | |
6916 * [514]12537 g++ generates writeable text sections | |
6917 | |
6918 SPARC-specific | |
6919 | |
6920 * [515]12496 wrong result for __atomic_add(&value, -1) when using -O0 | |
6921 -m64 | |
6922 * [516]12865 mprotect call to make trampoline executable may fail | |
6923 * [517]13354 ICE in sparc_emit_set_const32 | |
6924 | |
6925 ARM-specific | |
6926 | |
6927 * [518]10467 [arm] ICE in pre_insert_copy_insn, | |
6928 | |
6929 ia64-specific | |
6930 | |
6931 * [519]11226 ICE passing struct arg with two floats | |
6932 * [520]11227 ICE for _Complex float, _Complex long double args | |
6933 * [521]12644 GCC 3.3.2 fails to compile glibc on ia64 | |
6934 * [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn | |
6935 * Various fixes for libunwind | |
6936 | |
6937 Alpha-specific | |
6938 | |
6939 * [523]12654 Incorrect comparison code generated for Alpha | |
6940 * [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2 | |
6941 * [525]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2 | |
6942 | |
6943 HPPA-specific | |
6944 | |
6945 * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c | |
6946 * [527]12158 [hppa] compilation does not terminate at -O1 | |
6947 | |
6948 S390-specific | |
6949 | |
6950 * [528]11992 Wrong built-in code for memcmp with length 1<<24: only | |
6951 (1<<24)-1 possible for CLCL-Instruction | |
6952 | |
6953 SH-specific | |
6954 | |
6955 * [529]9365 segfault in gen_far_branch (config/sh/sh.c) | |
6956 * [530]10392 optimizer generates faulty array indexing | |
6957 * [531]11322 SH profiler outputs multiple definitions of symbol | |
6958 * [532]13069 gcc/config/sh/rtems.h broken | |
6959 * [533]13302 Putting a va_list in a struct causes seg fault | |
6960 * [534]13585 Incorrect optimization of call to sfunc | |
6961 * Fix inappropriately exported libgcc functions from the shared | |
6962 library | |
6963 | |
6964 Other embedded target specific | |
6965 | |
6966 * [535]8916 [mcore] unsigned char assign gets hosed. | |
6967 * [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c | |
6968 * [537]13122 [h8300] local variable gets corrupted by function call | |
6969 when -fomit-frame-pointer is given | |
6970 * [538]13256 [cris] strict_low_part mistreated in delay slots | |
6971 * [539]13373 [mcore] optimization with -frerun-cse-after-loop | |
6972 -fexpensive-optimizations produces wrong code on mcore | |
6973 | |
6974 GNU HURD-specific | |
6975 | |
6976 * [540]12561 gcc/config/t-gnu needs updating to work with | |
6977 --with-sysroot | |
6978 | |
6979 Tru64 Unix specific | |
6980 | |
6981 * [541]6243 testsuite fails almost all tests due to no libintl in | |
6982 LD_LIBRARY_PATH during test. | |
6983 * [542]11397 weak aliases broken on Tru64 UNIX | |
6984 | |
6985 AIX-specific | |
6986 | |
6987 * [543]12505 build failure due to defines of uchar in cpphash.h and | |
6988 sys/types.h | |
6989 * [544]13150 WEAK symbols not exported by collect2 | |
6990 | |
6991 IRIX-specific | |
6992 | |
6993 * [545]12666 fixincludes problem on IRIX 6.5.19m | |
6994 | |
6995 Solaris-specific | |
6996 | |
6997 * [546]12969 Including sys/byteorder.h breaks configure checks | |
6998 | |
6999 Testsuite problems (compiler is not affected) | |
7000 | |
7001 * [547]10819 testsuite creates CR+LF on compiler version lines in | |
7002 test summary files | |
7003 * [548]11612 abi_check not finding correct libgcc_s.so.1 | |
7004 | |
7005 Miscellaneous | |
7006 | |
7007 * [549]13211 using -###, incorrect warnings about unused linker file | |
7008 are produced | |
7009 __________________________________________________________________ | |
7010 | |
7011 GCC 3.3.4 | |
7012 | |
7013 This is the [550]list of problem reports (PRs) from GCC's bug tracking | |
7014 system that are known to be fixed in the 3.3.4 release. This list might | |
7015 not be complete (that is, it is possible that some PRs that have been | |
7016 fixed are not listed here). | |
7017 __________________________________________________________________ | |
7018 | |
7019 GCC 3.3.5 | |
7020 | |
7021 This is the [551]list of problem reports (PRs) from GCC's bug tracking | |
7022 system that are known to be fixed in the 3.3.5 release. This list might | |
7023 not be complete (that is, it is possible that some PRs that have been | |
7024 fixed are not listed here). | |
7025 __________________________________________________________________ | |
7026 | |
7027 GCC 3.3.6 | |
7028 | |
7029 This is the [552]list of problem reports (PRs) from GCC's bug tracking | |
7030 system that are known to be fixed in the 3.3.6 release. This list might | |
7031 not be complete (that is, it is possible that some PRs that have been | |
7032 fixed are not listed here). | |
7033 | |
7034 Please send FSF & GNU inquiries & questions to [553]gnu@gnu.org. There | |
7035 are also [554]other ways to contact the FSF. | |
7036 | |
7037 These pages are maintained by [555]the GCC team. | |
7038 | |
7039 | |
7040 For questions related to the use of GCC, please consult these web | |
7041 pages and the [556]GCC manuals. If that fails, the | |
7042 [557]gcc-help@gcc.gnu.org mailing list might help. | |
7043 Please send comments on these web pages and the development of GCC to | |
7044 our developer mailing list at [558]gcc@gnu.org or | |
7045 [559]gcc@gcc.gnu.org. All of our lists have [560]public archives. | |
7046 | |
7047 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
7048 Floor, Boston, MA 02110, USA. | |
7049 | |
7050 Verbatim copying and distribution of this entire article is permitted | |
7051 in any medium, provided this notice is preserved. | |
7052 Last modified 2007-08-20 [561]Valid XHTML 1.0 | |
7053 | |
7054 References | |
7055 | |
7056 1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 | |
7057 2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems | |
7058 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems | |
7059 4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute | |
7060 5. http://gcc.gnu.org/news/dfa.html | |
7061 6. http://gcc.gnu.org/gcc-3.3/c99status.html | |
7062 7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html | |
7063 8. http://gcc.gnu.org/PR10140 | |
7064 9. http://gcc.gnu.org/PR10198 | |
7065 10. http://gcc.gnu.org/PR10338 | |
7066 11. http://gcc.gnu.org/PR3581 | |
7067 12. http://gcc.gnu.org/PR4382 | |
7068 13. http://gcc.gnu.org/PR5533 | |
7069 14. http://gcc.gnu.org/PR6387 | |
7070 15. http://gcc.gnu.org/PR6412 | |
7071 16. http://gcc.gnu.org/PR6620 | |
7072 17. http://gcc.gnu.org/PR6663 | |
7073 18. http://gcc.gnu.org/PR7068 | |
7074 19. http://gcc.gnu.org/PR7083 | |
7075 20. http://gcc.gnu.org/PR7647 | |
7076 21. http://gcc.gnu.org/PR7675 | |
7077 22. http://gcc.gnu.org/PR7718 | |
7078 23. http://gcc.gnu.org/PR8116 | |
7079 24. http://gcc.gnu.org/PR8358 | |
7080 25. http://gcc.gnu.org/PR8511 | |
7081 26. http://gcc.gnu.org/PR8564 | |
7082 27. http://gcc.gnu.org/PR8660 | |
7083 28. http://gcc.gnu.org/PR8766 | |
7084 29. http://gcc.gnu.org/PR8803 | |
7085 30. http://gcc.gnu.org/PR8846 | |
7086 31. http://gcc.gnu.org/PR8906 | |
7087 32. http://gcc.gnu.org/PR9216 | |
7088 33. http://gcc.gnu.org/PR9261 | |
7089 34. http://gcc.gnu.org/PR9263 | |
7090 35. http://gcc.gnu.org/PR9429 | |
7091 36. http://gcc.gnu.org/PR9516 | |
7092 37. http://gcc.gnu.org/PR9600 | |
7093 38. http://gcc.gnu.org/PR9629 | |
7094 39. http://gcc.gnu.org/PR9672 | |
7095 40. http://gcc.gnu.org/PR9749 | |
7096 41. http://gcc.gnu.org/PR9794 | |
7097 42. http://gcc.gnu.org/PR9829 | |
7098 43. http://gcc.gnu.org/PR9916 | |
7099 44. http://gcc.gnu.org/PR9936 | |
7100 45. http://gcc.gnu.org/PR10262 | |
7101 46. http://gcc.gnu.org/PR10278 | |
7102 47. http://gcc.gnu.org/PR10446 | |
7103 48. http://gcc.gnu.org/PR10451 | |
7104 49. http://gcc.gnu.org/PR10506 | |
7105 50. http://gcc.gnu.org/PR10549 | |
7106 51. http://gcc.gnu.org/PR2001 | |
7107 52. http://gcc.gnu.org/PR2391 | |
7108 53. http://gcc.gnu.org/PR2960 | |
7109 54. http://gcc.gnu.org/PR4046 | |
7110 55. http://gcc.gnu.org/PR6405 | |
7111 56. http://gcc.gnu.org/PR6798 | |
7112 57. http://gcc.gnu.org/PR6871 | |
7113 58. http://gcc.gnu.org/PR6909 | |
7114 59. http://gcc.gnu.org/PR7189 | |
7115 60. http://gcc.gnu.org/PR7642 | |
7116 61. http://gcc.gnu.org/PR8634 | |
7117 62. http://gcc.gnu.org/PR8750 | |
7118 63. http://gcc.gnu.org/PR2161 | |
7119 64. http://gcc.gnu.org/PR4319 | |
7120 65. http://gcc.gnu.org/PR8602 | |
7121 66. http://gcc.gnu.org/PR9177 | |
7122 67. http://gcc.gnu.org/PR9853 | |
7123 68. http://gcc.gnu.org/PR45 | |
7124 69. http://gcc.gnu.org/PR3784 | |
7125 70. http://gcc.gnu.org/PR764 | |
7126 71. http://gcc.gnu.org/PR5116 | |
7127 72. http://gcc.gnu.org/PR2862 | |
7128 73. http://gcc.gnu.org/PR3663 | |
7129 74. http://gcc.gnu.org/PR3797 | |
7130 75. http://gcc.gnu.org/PR3948 | |
7131 76. http://gcc.gnu.org/PR4137 | |
7132 77. http://gcc.gnu.org/PR4361 | |
7133 78. http://gcc.gnu.org/PR4802 | |
7134 79. http://gcc.gnu.org/PR5837 | |
7135 80. http://gcc.gnu.org/PR4803 | |
7136 81. http://gcc.gnu.org/PR5094 | |
7137 82. http://gcc.gnu.org/PR5730 | |
7138 83. http://gcc.gnu.org/PR6713 | |
7139 84. http://gcc.gnu.org/PR7015 | |
7140 85. http://gcc.gnu.org/PR7086 | |
7141 86. http://gcc.gnu.org/PR7099 | |
7142 87. http://gcc.gnu.org/PR7247 | |
7143 88. http://gcc.gnu.org/PR7441 | |
7144 89. http://gcc.gnu.org/PR7768 | |
7145 90. http://gcc.gnu.org/PR7804 | |
7146 91. http://gcc.gnu.org/PR8099 | |
7147 92. http://gcc.gnu.org/PR8117 | |
7148 93. http://gcc.gnu.org/PR8205 | |
7149 94. http://gcc.gnu.org/PR8645 | |
7150 95. http://gcc.gnu.org/PR8724 | |
7151 96. http://gcc.gnu.org/PR8805 | |
7152 97. http://gcc.gnu.org/PR8691 | |
7153 98. http://gcc.gnu.org/PR8700 | |
7154 99. http://gcc.gnu.org/PR8724 | |
7155 100. http://gcc.gnu.org/PR8949 | |
7156 101. http://gcc.gnu.org/PR9016 | |
7157 102. http://gcc.gnu.org/PR9053 | |
7158 103. http://gcc.gnu.org/PR9152 | |
7159 104. http://gcc.gnu.org/PR9182 | |
7160 105. http://gcc.gnu.org/PR9297 | |
7161 106. http://gcc.gnu.org/PR9318 | |
7162 107. http://gcc.gnu.org/PR9320 | |
7163 108. http://gcc.gnu.org/PR9400 | |
7164 109. http://gcc.gnu.org/PR9424 | |
7165 110. http://gcc.gnu.org/PR9425 | |
7166 111. http://gcc.gnu.org/PR9439 | |
7167 112. http://gcc.gnu.org/PR9474 | |
7168 113. http://gcc.gnu.org/PR9548 | |
7169 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 | |
7170 115. http://gcc.gnu.org/PR9555 | |
7171 116. http://gcc.gnu.org/PR9561 | |
7172 117. http://gcc.gnu.org/PR9563 | |
7173 118. http://gcc.gnu.org/PR9582 | |
7174 119. http://gcc.gnu.org/PR9622 | |
7175 120. http://gcc.gnu.org/PR9683 | |
7176 121. http://gcc.gnu.org/PR9791 | |
7177 122. http://gcc.gnu.org/PR9817 | |
7178 123. http://gcc.gnu.org/PR9825 | |
7179 124. http://gcc.gnu.org/PR9826 | |
7180 125. http://gcc.gnu.org/PR9924 | |
7181 126. http://gcc.gnu.org/PR9946 | |
7182 127. http://gcc.gnu.org/PR9964 | |
7183 128. http://gcc.gnu.org/PR9988 | |
7184 129. http://gcc.gnu.org/PR10033 | |
7185 130. http://gcc.gnu.org/PR10097 | |
7186 131. http://gcc.gnu.org/PR10132 | |
7187 132. http://gcc.gnu.org/PR10180 | |
7188 133. http://gcc.gnu.org/PR10199 | |
7189 134. http://gcc.gnu.org/PR10300 | |
7190 135. http://gcc.gnu.org/PR10427 | |
7191 136. http://gcc.gnu.org/PR10503 | |
7192 137. http://gcc.gnu.org/PR5956 | |
7193 138. http://gcc.gnu.org/PR1832 | |
7194 139. http://gcc.gnu.org/PR3924 | |
7195 140. http://gcc.gnu.org/PR5634 | |
7196 141. http://gcc.gnu.org/PR6367 | |
7197 142. http://gcc.gnu.org/PR6491 | |
7198 143. http://gcc.gnu.org/PR6742 | |
7199 144. http://gcc.gnu.org/PR7113 | |
7200 145. http://gcc.gnu.org/PR7236 | |
7201 146. http://gcc.gnu.org/PR7278 | |
7202 147. http://gcc.gnu.org/PR7384 | |
7203 148. http://gcc.gnu.org/PR7388 | |
7204 149. http://gcc.gnu.org/PR8587 | |
7205 150. http://gcc.gnu.org/PR9038 | |
7206 151. http://gcc.gnu.org/PR10197 | |
7207 152. http://gcc.gnu.org/PR6005 | |
7208 153. http://gcc.gnu.org/PR6389 | |
7209 154. http://gcc.gnu.org/PR6576 | |
7210 155. http://gcc.gnu.org/PR6652 | |
7211 156. http://gcc.gnu.org/PR7060 | |
7212 157. http://gcc.gnu.org/PR7073 | |
7213 158. http://gcc.gnu.org/PR7180 | |
7214 159. http://gcc.gnu.org/PR7416 | |
7215 160. http://gcc.gnu.org/PR7570 | |
7216 161. http://gcc.gnu.org/PR7578 | |
7217 162. http://gcc.gnu.org/PR7611 | |
7218 163. http://gcc.gnu.org/PR7709 | |
7219 164. http://gcc.gnu.org/PR7766 | |
7220 165. http://gcc.gnu.org/PR7785 | |
7221 166. http://gcc.gnu.org/PR7786 | |
7222 167. http://gcc.gnu.org/PR8142 | |
7223 168. http://gcc.gnu.org/PR8234 | |
7224 169. http://gcc.gnu.org/PR8415 | |
7225 170. http://gcc.gnu.org/PR8481 | |
7226 171. http://gcc.gnu.org/PR8593 | |
7227 172. http://gcc.gnu.org/PR8759 | |
7228 173. http://gcc.gnu.org/PR8997 | |
7229 174. http://gcc.gnu.org/PR9253 | |
7230 175. http://gcc.gnu.org/PR9254 | |
7231 176. http://gcc.gnu.org/PR9271 | |
7232 177. http://gcc.gnu.org/PR6767 | |
7233 178. http://gcc.gnu.org/PR9911 | |
7234 179. http://gcc.gnu.org/PR10020 | |
7235 180. http://gcc.gnu.org/PR10546 | |
7236 181. http://gcc.gnu.org/PR7029 | |
7237 182. http://gcc.gnu.org/PR2903 | |
7238 183. http://gcc.gnu.org/PR7873 | |
7239 184. http://gcc.gnu.org/PR7680 | |
7240 185. http://gcc.gnu.org/PR8705 | |
7241 186. http://gcc.gnu.org/PR9986 | |
7242 187. http://gcc.gnu.org/PR10056 | |
7243 188. http://gcc.gnu.org/PR6744 | |
7244 189. http://gcc.gnu.org/PR7361 | |
7245 190. http://gcc.gnu.org/PR9496 | |
7246 191. http://gcc.gnu.org/PR7067 | |
7247 192. http://gcc.gnu.org/PR8480 | |
7248 193. http://gcc.gnu.org/PR8784 | |
7249 194. http://gcc.gnu.org/PR10315 | |
7250 195. http://gcc.gnu.org/PR10267 | |
7251 196. http://gcc.gnu.org/PR7916 | |
7252 197. http://gcc.gnu.org/PR7926 | |
7253 198. http://gcc.gnu.org/PR8555 | |
7254 199. http://gcc.gnu.org/PR8994 | |
7255 200. http://gcc.gnu.org/PR9426 | |
7256 201. http://gcc.gnu.org/PR9806 | |
7257 202. http://gcc.gnu.org/PR10077 | |
7258 203. http://gcc.gnu.org/PR10233 | |
7259 204. http://gcc.gnu.org/PR10286 | |
7260 205. http://gcc.gnu.org/PR10308 | |
7261 206. http://gcc.gnu.org/PR11272 | |
7262 207. http://gcc.gnu.org/PR5754 | |
7263 208. http://gcc.gnu.org/PR6597 | |
7264 209. http://gcc.gnu.org/PR6949 | |
7265 210. http://gcc.gnu.org/PR7053 | |
7266 211. http://gcc.gnu.org/PR8164 | |
7267 212. http://gcc.gnu.org/PR8384 | |
7268 213. http://gcc.gnu.org/PR9559 | |
7269 214. http://gcc.gnu.org/PR9649 | |
7270 215. http://gcc.gnu.org/PR9864 | |
7271 216. http://gcc.gnu.org/PR10432 | |
7272 217. http://gcc.gnu.org/PR10475 | |
7273 218. http://gcc.gnu.org/PR10635 | |
7274 219. http://gcc.gnu.org/PR10661 | |
7275 220. http://gcc.gnu.org/PR10700 | |
7276 221. http://gcc.gnu.org/PR10712 | |
7277 222. http://gcc.gnu.org/PR10796 | |
7278 223. http://gcc.gnu.org/PR10890 | |
7279 224. http://gcc.gnu.org/PR10939 | |
7280 225. http://gcc.gnu.org/PR10956 | |
7281 226. http://gcc.gnu.org/PR11041 | |
7282 227. http://gcc.gnu.org/PR11059 | |
7283 228. http://gcc.gnu.org/PR11083 | |
7284 229. http://gcc.gnu.org/PR11105 | |
7285 230. http://gcc.gnu.org/PR11149 | |
7286 231. http://gcc.gnu.org/PR11228 | |
7287 232. http://gcc.gnu.org/PR11282 | |
7288 233. http://gcc.gnu.org/PR11301 | |
7289 234. http://gcc.gnu.org/PR11308 | |
7290 235. http://gcc.gnu.org/PR11473 | |
7291 236. http://gcc.gnu.org/PR11503 | |
7292 237. http://gcc.gnu.org/PR11513 | |
7293 238. http://gcc.gnu.org/PR11198 | |
7294 239. http://gcc.gnu.org/PR11304 | |
7295 240. http://gcc.gnu.org/PR11381 | |
7296 241. http://gcc.gnu.org/PR11536 | |
7297 242. http://gcc.gnu.org/PR11557 | |
7298 243. http://gcc.gnu.org/PR5897 | |
7299 244. http://gcc.gnu.org/PR11279 | |
7300 245. http://gcc.gnu.org/PR11022 | |
7301 246. http://gcc.gnu.org/PR2330 | |
7302 247. http://gcc.gnu.org/PR5388 | |
7303 248. http://gcc.gnu.org/PR5390 | |
7304 249. http://gcc.gnu.org/PR7877 | |
7305 250. http://gcc.gnu.org/PR9393 | |
7306 251. http://gcc.gnu.org/PR10032 | |
7307 252. http://gcc.gnu.org/PR10468 | |
7308 253. http://gcc.gnu.org/PR10527 | |
7309 254. http://gcc.gnu.org/PR10679 | |
7310 255. http://gcc.gnu.org/PR10682 | |
7311 256. http://gcc.gnu.org/PR10689 | |
7312 257. http://gcc.gnu.org/PR10845 | |
7313 258. http://gcc.gnu.org/PR10849 | |
7314 259. http://gcc.gnu.org/PR10888 | |
7315 260. http://gcc.gnu.org/PR10929 | |
7316 261. http://gcc.gnu.org/PR10931 | |
7317 262. http://gcc.gnu.org/PR10940 | |
7318 263. http://gcc.gnu.org/PR10968 | |
7319 264. http://gcc.gnu.org/PR10990 | |
7320 265. http://gcc.gnu.org/PR11039 | |
7321 266. http://gcc.gnu.org/PR11062 | |
7322 267. http://gcc.gnu.org/PR11095 | |
7323 268. http://gcc.gnu.org/PR11098 | |
7324 269. http://gcc.gnu.org/PR11137 | |
7325 270. http://gcc.gnu.org/PR11154 | |
7326 271. http://gcc.gnu.org/PR11329 | |
7327 272. http://gcc.gnu.org/PR11332 | |
7328 273. http://gcc.gnu.org/PR11431 | |
7329 274. http://gcc.gnu.org/PR11528 | |
7330 275. http://gcc.gnu.org/PR11546 | |
7331 276. http://gcc.gnu.org/PR11567 | |
7332 277. http://gcc.gnu.org/PR11645 | |
7333 278. http://gcc.gnu.org/PR5179 | |
7334 279. http://gcc.gnu.org/PR8204 | |
7335 280. http://gcc.gnu.org/PR10838 | |
7336 281. http://gcc.gnu.org/PR10886 | |
7337 282. http://gcc.gnu.org/PR11349 | |
7338 283. http://gcc.gnu.org/PR4823 | |
7339 284. http://gcc.gnu.org/PR8878 | |
7340 285. http://gcc.gnu.org/PR9815 | |
7341 286. http://gcc.gnu.org/PR10402 | |
7342 287. http://gcc.gnu.org/PR10504 | |
7343 288. http://gcc.gnu.org/PR10673 | |
7344 289. http://gcc.gnu.org/PR11044 | |
7345 290. http://gcc.gnu.org/PR11089 | |
7346 291. http://gcc.gnu.org/PR11420 | |
7347 292. http://gcc.gnu.org/PR9362 | |
7348 293. http://gcc.gnu.org/PR10142 | |
7349 294. http://gcc.gnu.org/PR10663 | |
7350 295. http://gcc.gnu.org/PR10835 | |
7351 296. http://gcc.gnu.org/PR10876 | |
7352 297. http://gcc.gnu.org/PR10955 | |
7353 298. http://gcc.gnu.org/PR11018 | |
7354 299. http://gcc.gnu.org/PR11556 | |
7355 300. http://gcc.gnu.org/PR10907 | |
7356 301. http://gcc.gnu.org/PR11320 | |
7357 302. http://gcc.gnu.org/PR11599 | |
7358 303. http://gcc.gnu.org/PR9745 | |
7359 304. http://gcc.gnu.org/PR10871 | |
7360 305. http://gcc.gnu.org/PR11440 | |
7361 306. http://gcc.gnu.org/PR7594 | |
7362 307. http://gcc.gnu.org/PR10557 | |
7363 308. http://gcc.gnu.org/PR11054 | |
7364 309. http://gcc.gnu.org/PR10834 | |
7365 310. http://gcc.gnu.org/PR10842 | |
7366 311. http://gcc.gnu.org/PR11052 | |
7367 312. http://gcc.gnu.org/PR11183 | |
7368 313. http://gcc.gnu.org/PR11084 | |
7369 314. http://gcc.gnu.org/PR10331 | |
7370 315. http://gcc.gnu.org/PR10413 | |
7371 316. http://gcc.gnu.org/PR11096 | |
7372 317. http://gcc.gnu.org/PR2873 | |
7373 318. http://gcc.gnu.org/PR3163 | |
7374 319. http://gcc.gnu.org/PR5287 | |
7375 320. http://gcc.gnu.org/PR10148 | |
7376 321. http://gcc.gnu.org/PR8787 | |
7377 322. http://gcc.gnu.org/PR10900 | |
7378 323. http://gcc.gnu.org/PR1607 | |
7379 324. http://gcc.gnu.org/PR4252 | |
7380 325. http://gcc.gnu.org/PR4490 | |
7381 326. http://gcc.gnu.org/PR10355 | |
7382 327. http://gcc.gnu.org/PR10726 | |
7383 328. http://gcc.gnu.org/PR10805 | |
7384 329. http://gcc.gnu.org/PR10815 | |
7385 330. http://gcc.gnu.org/PR10877 | |
7386 331. http://gcc.gnu.org/PR11280 | |
7387 332. http://gcc.gnu.org/PR11466 | |
7388 333. http://gcc.gnu.org/PR10737 | |
7389 334. http://gcc.gnu.org/PR10810 | |
7390 335. http://gcc.gnu.org/bugzilla/ | |
7391 336. http://gcc.gnu.org/PR8336 | |
7392 337. http://gcc.gnu.org/PR9330 | |
7393 338. http://gcc.gnu.org/PR9631 | |
7394 339. http://gcc.gnu.org/PR9877 | |
7395 340. http://gcc.gnu.org/PR11687 | |
7396 341. http://gcc.gnu.org/PR12263 | |
7397 342. http://gcc.gnu.org/PR12490 | |
7398 343. http://gcc.gnu.org/PR7277 | |
7399 344. http://gcc.gnu.org/PR7939 | |
7400 345. http://gcc.gnu.org/PR11063 | |
7401 346. http://gcc.gnu.org/PR11207 | |
7402 347. http://gcc.gnu.org/PR11522 | |
7403 348. http://gcc.gnu.org/PR11595 | |
7404 349. http://gcc.gnu.org/PR11646 | |
7405 350. http://gcc.gnu.org/PR11665 | |
7406 351. http://gcc.gnu.org/PR11852 | |
7407 352. http://gcc.gnu.org/PR11878 | |
7408 353. http://gcc.gnu.org/PR11883 | |
7409 354. http://gcc.gnu.org/PR11991 | |
7410 355. http://gcc.gnu.org/PR12146 | |
7411 356. http://gcc.gnu.org/PR12215 | |
7412 357. http://gcc.gnu.org/PR12369 | |
7413 358. http://gcc.gnu.org/PR12446 | |
7414 359. http://gcc.gnu.org/PR12510 | |
7415 360. http://gcc.gnu.org/PR12544 | |
7416 361. http://gcc.gnu.org/PR9862 | |
7417 362. http://gcc.gnu.org/PR10962 | |
7418 363. http://gcc.gnu.org/PR11370 | |
7419 364. http://gcc.gnu.org/PR11637 | |
7420 365. http://gcc.gnu.org/PR11885 | |
7421 366. http://gcc.gnu.org/PR12082 | |
7422 367. http://gcc.gnu.org/PR12180 | |
7423 368. http://gcc.gnu.org/PR12340 | |
7424 369. http://gcc.gnu.org/PR3907 | |
7425 370. http://gcc.gnu.org/PR5293 | |
7426 371. http://gcc.gnu.org/PR5296 | |
7427 372. http://gcc.gnu.org/PR7939 | |
7428 373. http://gcc.gnu.org/PR8656 | |
7429 374. http://gcc.gnu.org/PR10147 | |
7430 375. http://gcc.gnu.org/PR11400 | |
7431 376. http://gcc.gnu.org/PR11409 | |
7432 377. http://gcc.gnu.org/PR11740 | |
7433 378. http://gcc.gnu.org/PR11786 | |
7434 379. http://gcc.gnu.org/PR11867 | |
7435 380. http://gcc.gnu.org/PR11928 | |
7436 381. http://gcc.gnu.org/PR12114 | |
7437 382. http://gcc.gnu.org/PR12163 | |
7438 383. http://gcc.gnu.org/PR12181 | |
7439 384. http://gcc.gnu.org/PR12236 | |
7440 385. http://gcc.gnu.org/PR12266 | |
7441 386. http://gcc.gnu.org/PR12296 | |
7442 387. http://gcc.gnu.org/PR12298 | |
7443 388. http://gcc.gnu.org/PR12369 | |
7444 389. http://gcc.gnu.org/PR12337 | |
7445 390. http://gcc.gnu.org/PR12344 | |
7446 391. http://gcc.gnu.org/PR12451 | |
7447 392. http://gcc.gnu.org/PR12486 | |
7448 393. http://gcc.gnu.org/PR8869 | |
7449 394. http://gcc.gnu.org/PR9786 | |
7450 395. http://gcc.gnu.org/PR11689 | |
7451 396. http://gcc.gnu.org/PR12116 | |
7452 397. http://gcc.gnu.org/PR12070 | |
7453 398. http://gcc.gnu.org/PR11184 | |
7454 399. http://gcc.gnu.org/PR11535 | |
7455 400. http://gcc.gnu.org/PR11693 | |
7456 401. http://gcc.gnu.org/PR12224 | |
7457 402. http://gcc.gnu.org/PR11087 | |
7458 403. http://gcc.gnu.org/PR11319 | |
7459 404. http://gcc.gnu.org/PR11949 | |
7460 405. http://gcc.gnu.org/PR11662 | |
7461 406. http://gcc.gnu.org/PR11965 | |
7462 407. http://gcc.gnu.org/PR12301 | |
7463 408. http://gcc.gnu.org/PR11717 | |
7464 409. http://gcc.gnu.org/PR11313 | |
7465 410. http://gcc.gnu.org/PR11712 | |
7466 411. http://gcc.gnu.org/PR12166 | |
7467 412. http://gcc.gnu.org/PR12101 | |
7468 413. http://gcc.gnu.org/PR10988 | |
7469 414. http://gcc.gnu.org/PR11805 | |
7470 415. http://gcc.gnu.org/PR11902 | |
7471 416. http://gcc.gnu.org/PR11903 | |
7472 417. http://gcc.gnu.org/bugzilla/ | |
7473 418. http://gcc.gnu.org/PR11890 | |
7474 419. http://gcc.gnu.org/PR12399 | |
7475 420. http://gcc.gnu.org/PR13068 | |
7476 421. http://gcc.gnu.org/PR10060 | |
7477 422. http://gcc.gnu.org/PR10555 | |
7478 423. http://gcc.gnu.org/PR10706 | |
7479 424. http://gcc.gnu.org/PR11496 | |
7480 425. http://gcc.gnu.org/PR11741 | |
7481 426. http://gcc.gnu.org/PR12440 | |
7482 427. http://gcc.gnu.org/PR12632 | |
7483 428. http://gcc.gnu.org/PR12712 | |
7484 429. http://gcc.gnu.org/PR12726 | |
7485 430. http://gcc.gnu.org/PR12890 | |
7486 431. http://gcc.gnu.org/PR12900 | |
7487 432. http://gcc.gnu.org/PR13060 | |
7488 433. http://gcc.gnu.org/PR13289 | |
7489 434. http://gcc.gnu.org/PR13318 | |
7490 435. http://gcc.gnu.org/PR13392 | |
7491 436. http://gcc.gnu.org/PR13574 | |
7492 437. http://gcc.gnu.org/PR13475 | |
7493 438. http://gcc.gnu.org/PR13797 | |
7494 439. http://gcc.gnu.org/PR13824 | |
7495 440. http://gcc.gnu.org/PR8776 | |
7496 441. http://gcc.gnu.org/PR10339 | |
7497 442. http://gcc.gnu.org/PR11350 | |
7498 443. http://gcc.gnu.org/PR12826 | |
7499 444. http://gcc.gnu.org/PR12500 | |
7500 445. http://gcc.gnu.org/PR12941 | |
7501 446. http://gcc.gnu.org/PR12953 | |
7502 447. http://gcc.gnu.org/PR13041 | |
7503 448. http://gcc.gnu.org/PR13507 | |
7504 449. http://gcc.gnu.org/PR13382 | |
7505 450. http://gcc.gnu.org/PR13394 | |
7506 451. http://gcc.gnu.org/PR13400 | |
7507 452. http://gcc.gnu.org/PR13521 | |
7508 453. http://gcc.gnu.org/PR2094 | |
7509 454. http://gcc.gnu.org/PR2294 | |
7510 455. http://gcc.gnu.org/PR5050 | |
7511 456. http://gcc.gnu.org/PR9371 | |
7512 457. http://gcc.gnu.org/PR9546 | |
7513 458. http://gcc.gnu.org/PR10081 | |
7514 459. http://gcc.gnu.org/PR10093 | |
7515 460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 | |
7516 461. http://gcc.gnu.org/PR10095 | |
7517 462. http://gcc.gnu.org/PR11554 | |
7518 463. http://gcc.gnu.org/PR12297 | |
7519 464. http://gcc.gnu.org/PR12352 | |
7520 465. http://gcc.gnu.org/PR12438 | |
7521 466. http://gcc.gnu.org/PR12540 | |
7522 467. http://gcc.gnu.org/PR12594 | |
7523 468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 | |
7524 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 | |
7525 470. http://gcc.gnu.org/PR12657 | |
7526 471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 | |
7527 472. http://gcc.gnu.org/PR12696 | |
7528 473. http://gcc.gnu.org/PR12815 | |
7529 474. http://gcc.gnu.org/PR12862 | |
7530 475. http://gcc.gnu.org/PR12926 | |
7531 476. http://gcc.gnu.org/PR12967 | |
7532 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html | |
7533 478. http://gcc.gnu.org/PR12971 | |
7534 479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 | |
7535 480. http://gcc.gnu.org/PR13007 | |
7536 481. http://gcc.gnu.org/PR13009 | |
7537 482. http://gcc.gnu.org/PR13057 | |
7538 483. http://gcc.gnu.org/PR13070 | |
7539 484. http://gcc.gnu.org/PR13081 | |
7540 485. http://gcc.gnu.org/PR13239 | |
7541 486. http://gcc.gnu.org/PR13262 | |
7542 487. http://gcc.gnu.org/PR13290 | |
7543 488. http://gcc.gnu.org/PR13323 | |
7544 489. http://gcc.gnu.org/PR13369 | |
7545 490. http://gcc.gnu.org/PR13371 | |
7546 491. http://gcc.gnu.org/PR13445 | |
7547 492. http://gcc.gnu.org/PR13461 | |
7548 493. http://gcc.gnu.org/PR13462 | |
7549 494. http://gcc.gnu.org/PR13478 | |
7550 495. http://gcc.gnu.org/PR13544 | |
7551 496. http://gcc.gnu.org/PR13650 | |
7552 497. http://gcc.gnu.org/PR13683 | |
7553 498. http://gcc.gnu.org/PR13688 | |
7554 499. http://gcc.gnu.org/PR13774 | |
7555 500. http://gcc.gnu.org/PR13884 | |
7556 501. http://gcc.gnu.org/PR10746 | |
7557 502. http://gcc.gnu.org/PR11433 | |
7558 503. http://gcc.gnu.org/PR12633 | |
7559 504. http://gcc.gnu.org/PR13037 | |
7560 505. http://gcc.gnu.org/PR13213 | |
7561 506. http://gcc.gnu.org/PR4490 | |
7562 507. http://gcc.gnu.org/PR12292 | |
7563 508. http://gcc.gnu.org/PR12441 | |
7564 509. http://gcc.gnu.org/PR12943 | |
7565 510. http://gcc.gnu.org/PR13608 | |
7566 511. http://gcc.gnu.org/PR11598 | |
7567 512. http://gcc.gnu.org/PR11793 | |
7568 513. http://gcc.gnu.org/PR12467 | |
7569 514. http://gcc.gnu.org/PR12537 | |
7570 515. http://gcc.gnu.org/PR12496 | |
7571 516. http://gcc.gnu.org/PR12865 | |
7572 517. http://gcc.gnu.org/PR13354 | |
7573 518. http://gcc.gnu.org/PR10467 | |
7574 519. http://gcc.gnu.org/PR11226 | |
7575 520. http://gcc.gnu.org/PR11227 | |
7576 521. http://gcc.gnu.org/PR12644 | |
7577 522. http://gcc.gnu.org/PR13149 | |
7578 523. http://gcc.gnu.org/PR12654 | |
7579 524. http://gcc.gnu.org/PR12965 | |
7580 525. http://gcc.gnu.org/PR13031 | |
7581 526. http://gcc.gnu.org/PR11634 | |
7582 527. http://gcc.gnu.org/PR12158 | |
7583 528. http://gcc.gnu.org/PR11992 | |
7584 529. http://gcc.gnu.org/PR9365 | |
7585 530. http://gcc.gnu.org/PR10392 | |
7586 531. http://gcc.gnu.org/PR11322 | |
7587 532. http://gcc.gnu.org/PR13069 | |
7588 533. http://gcc.gnu.org/PR13302 | |
7589 534. http://gcc.gnu.org/PR13585 | |
7590 535. http://gcc.gnu.org/PR8916 | |
7591 536. http://gcc.gnu.org/PR11576 | |
7592 537. http://gcc.gnu.org/PR13122 | |
7593 538. http://gcc.gnu.org/PR13256 | |
7594 539. http://gcc.gnu.org/PR13373 | |
7595 540. http://gcc.gnu.org/PR12561 | |
7596 541. http://gcc.gnu.org/PR6243 | |
7597 542. http://gcc.gnu.org/PR11397 | |
7598 543. http://gcc.gnu.org/PR12505 | |
7599 544. http://gcc.gnu.org/PR13150 | |
7600 545. http://gcc.gnu.org/PR12666 | |
7601 546. http://gcc.gnu.org/PR12969 | |
7602 547. http://gcc.gnu.org/PR10819 | |
7603 548. http://gcc.gnu.org/PR11612 | |
7604 549. http://gcc.gnu.org/PR13211 | |
7605 550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4 | |
7606 551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5 | |
7607 552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6 | |
7608 553. mailto:gnu@gnu.org | |
7609 554. http://www.gnu.org/home.html#ContactInfo | |
7610 555. http://gcc.gnu.org/about.html | |
7611 556. http://gcc.gnu.org/onlinedocs/ | |
7612 557. mailto:gcc-help@gcc.gnu.org | |
7613 558. mailto:gcc@gnu.org | |
7614 559. mailto:gcc@gcc.gnu.org | |
7615 560. http://gcc.gnu.org/lists.html | |
7616 561. http://validator.w3.org/check/referer | |
7617 ====================================================================== | |
7618 http://gcc.gnu.org/gcc-3.2/index.html | |
7619 GCC 3.2 Release Series | |
7620 | |
7621 April 25, 2003 | |
7622 | |
7623 The [1]GNU project and the GCC developers are pleased to announce the | |
7624 release of GCC 3.2.3. | |
7625 | |
7626 The purpose of the GCC 3.2 release series is to provide a stable | |
7627 platform for OS distributors to use building their next releases. A | |
7628 primary objective was to stabilize the C++ ABI; we believe that the | |
7629 interface to the compiler and the C++ standard library are now | |
7630 relatively stable. | |
7631 | |
7632 Be aware that C++ code compiled by GCC 3.2.x will (in general) not | |
7633 interoperate with code compiled by GCC 3.1.1 or earlier. | |
7634 | |
7635 Please refer to our [2]detailed list of news, caveats, and bug-fixes | |
7636 for further information. | |
7637 | |
7638 Release History | |
7639 | |
7640 GCC 3.2.3 | |
7641 April 25, 2003 ([3]changes) | |
7642 | |
7643 GCC 3.2.2 | |
7644 February 5, 2003 ([4]changes) | |
7645 | |
7646 GCC 3.2.1 | |
7647 November 19, 2002 ([5]changes) | |
7648 | |
7649 GCC 3.2 | |
7650 August 14, 2002 ([6]changes) | |
7651 | |
7652 References and Acknowledgements | |
7653 | |
7654 GCC used to stand for the GNU C Compiler, but since the compiler | |
7655 supports several other languages aside from C, it now stands for the | |
7656 GNU Compiler Collection. | |
7657 | |
7658 A list of [7]successful builds is updated as new information becomes | |
7659 available. | |
7660 | |
7661 The GCC developers would like to thank the numerous people that have | |
7662 contributed new features, improvements, bug fixes, and other changes as | |
7663 well as test results to GCC. This [8]amazing group of volunteers is | |
7664 what makes GCC successful. | |
7665 | |
7666 For additional information about GCC please refer to the [9]GCC project | |
7667 web site or contact the [10]GCC development mailing list. | |
7668 | |
7669 To obtain GCC please use [11]our mirror sites, or our CVS server. | |
7670 | |
7671 Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There | |
7672 are also [13]other ways to contact the FSF. | |
7673 | |
7674 These pages are maintained by [14]the GCC team. | |
7675 | |
7676 | |
7677 For questions related to the use of GCC, please consult these web | |
7678 pages and the [15]GCC manuals. If that fails, the | |
7679 [16]gcc-help@gcc.gnu.org mailing list might help. | |
7680 Please send comments on these web pages and the development of GCC to | |
7681 our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. | |
7682 All of our lists have [19]public archives. | |
7683 | |
7684 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
7685 Floor, Boston, MA 02110, USA. | |
7686 | |
7687 Verbatim copying and distribution of this entire article is permitted | |
7688 in any medium, provided this notice is preserved. | |
7689 Last modified 2008-07-26 [20]Valid XHTML 1.0 | |
7690 | |
7691 References | |
7692 | |
7693 1. http://www.gnu.org/ | |
7694 2. http://gcc.gnu.org/gcc-3.2/changes.html | |
7695 3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 | |
7696 4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2 | |
7697 5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 | |
7698 6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2 | |
7699 7. http://gcc.gnu.org/gcc-3.2/buildstat.html | |
7700 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
7701 9. http://gcc.gnu.org/index.html | |
7702 10. mailto:gcc@gcc.gnu.org | |
7703 11. http://gcc.gnu.org/mirrors.html | |
7704 12. mailto:gnu@gnu.org | |
7705 13. http://www.gnu.org/home.html#ContactInfo | |
7706 14. http://gcc.gnu.org/about.html | |
7707 15. http://gcc.gnu.org/onlinedocs/ | |
7708 16. mailto:gcc-help@gcc.gnu.org | |
7709 17. mailto:gcc@gnu.org | |
7710 18. mailto:gcc@gcc.gnu.org | |
7711 19. http://gcc.gnu.org/lists.html | |
7712 20. http://validator.w3.org/check/referer | |
7713 ====================================================================== | |
7714 http://gcc.gnu.org/gcc-3.2/changes.html | |
7715 GCC 3.2 Release Series | |
7716 Changes, New Features, and Fixes | |
7717 | |
7718 The latest release in the 3.2 release series is [1]GCC 3.2.3. | |
7719 | |
7720 Caveats and New Features | |
7721 | |
7722 Caveats | |
7723 | |
7724 * The C++ compiler does not correctly zero-initialize | |
7725 pointers-to-data members. You must explicitly initialize them. For | |
7726 example: int S::*m(0); will work, but depending on | |
7727 default-initialization to zero will not work. This bug cannot be | |
7728 fixed in GCC 3.2 without inducing unacceptable risks. It will be | |
7729 fixed in GCC 3.3. | |
7730 * This GCC release is based on the GCC 3.1 sourcebase, and thus has | |
7731 all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has | |
7732 a number of C++ ABI fixes which make its C++ compiler generate | |
7733 binary code which is incompatible with the C++ compilers found in | |
7734 earlier GCC releases, including GCC 3.1 and GCC 3.1.1. | |
7735 | |
7736 Frontend Enhancements | |
7737 | |
7738 C/C++/Objective-C | |
7739 | |
7740 * The method of constructing the list of directories to be searched | |
7741 for header files has been revised. If a directory named by a -I | |
7742 option is a standard system include directory, the option is | |
7743 ignored to ensure that the default search order for system | |
7744 directories and the special treatment of system header files are | |
7745 not defeated. | |
7746 * The C and Objective-C compilers no longer accept the "Naming Types" | |
7747 extension (typedef foo = bar); it was already unavailable in C++. | |
7748 Code which uses it will need to be changed to use the "typeof" | |
7749 extension instead: typedef typeof(bar) foo. (We have removed this | |
7750 extension without a period of deprecation because it has caused the | |
7751 compiler to crash since version 3.0 and no one noticed until very | |
7752 recently. Thus we conclude it is not in widespread use.) | |
7753 | |
7754 C++ | |
7755 | |
7756 * GCC 3.2 fixed serveral differences between the C++ ABI implemented | |
7757 in GCC and the multi-vendor standard, but more have been found | |
7758 since the release. 3.2.1 adds a new warning, -Wabi, to warn about | |
7759 code which is affected by these bugs. We will fix these bugs in | |
7760 some future release, once we are confident that all have been | |
7761 found; until then, it is our intention to make changes to the ABI | |
7762 only if they are necessary for correct compilation of C++, as | |
7763 opposed to conformance to the ABI documents. | |
7764 * For details on how to build an ABI compliant compiler for GNU/Linux | |
7765 systems, check the [3]common C++ ABI page. | |
7766 | |
7767 New Targets and Target Specific Improvements | |
7768 | |
7769 IA-32 | |
7770 | |
7771 * Fixed a number of bugs in SSE and MMX intrinsics. | |
7772 * Fixed common compiler crashes with SSE instruction set enabled | |
7773 (implied by -march=pentium3, pentium4, athlon-xp) | |
7774 * __m128 and __m128i is not 128bit aligned when used in structures. | |
7775 | |
7776 x86-64 | |
7777 | |
7778 * A bug whereby the compiler could generate bad code for bzero has | |
7779 been fixed. | |
7780 * ABI fixes (implying ABI incompatibilities with previous version in | |
7781 some corner cases) | |
7782 * Fixed prefetch code generation | |
7783 __________________________________________________________________ | |
7784 | |
7785 GCC 3.2.3 | |
7786 | |
7787 3.2.3 is a bug fix release only; there are no new features that were | |
7788 not present in GCC 3.2.2. | |
7789 | |
7790 Bug Fixes | |
7791 | |
7792 This section lists the problem reports (PRs) from GCC's bug tracking | |
7793 system that are known to be fixed in the 3.2.3 release. This list might | |
7794 not be complete (that is, it is possible that some PRs that have been | |
7795 fixed are not listed here), and some of the titles have been changed to | |
7796 make them more clear. | |
7797 | |
7798 Internal Compiler Errors (multi-platform) | |
7799 | |
7800 * [4]3782: (c++) -quiet -fstats produces a segmentation fault in | |
7801 cc1plus | |
7802 * [5]6440: (c++) template specializations cause ICE | |
7803 * [6]7050: (c++) ICE on: (i ? get_string() : throw) | |
7804 * [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c) | |
7805 * [8]7982: (c++) ICE due to infinite recursion (using STL set) | |
7806 * [9]8068: exceedingly high (infinite) memory usage | |
7807 * [10]8178: ICE with __builtin_ffs | |
7808 * [11]8396: ICE in copy_to_mode_reg, in explow.c | |
7809 * [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c | |
7810 * [13]9768: ICE when optimizing inline code at -O2 | |
7811 * [14]9798: (c++) Infinite recursion (segfault) in | |
7812 cp/decl.c:push_using_directive with recursive using directives | |
7813 * [15]9799: mismatching structure initializer with nested flexible | |
7814 array member: ICE | |
7815 * [16]9928: ICE on duplicate enum declaration | |
7816 * [17]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects | |
7817 sparc, alpha) | |
7818 * [18]10352: ICE in find_reloads_toplev | |
7819 * [19]10336: ICE with -Wunreachable-code | |
7820 | |
7821 C/optimizer bugs: | |
7822 | |
7823 * [20]8224: Incorrect joining of signed and unsigned division | |
7824 * [21]8613: -O2 produces wrong code with builtin strlen and | |
7825 postincrements | |
7826 * [22]8828: gcc reports some code is unreachable when it is not | |
7827 * [23]9226: GCSE breaking argument passing | |
7828 * [24]9853: miscompilation of non-constant structure initializer | |
7829 * [25]9797: C99-style struct initializers are miscompiled | |
7830 * [26]9967: Some standard C function calls should not be replaced | |
7831 when optimizing for size | |
7832 * [27]10116: ce2: invalid merge of join_bb in the context of switch | |
7833 statements | |
7834 * [28]10171: wrong code for inlined function | |
7835 * [29]10175: -Wunreachable-code doesn't work for single lines | |
7836 | |
7837 C++ compiler and library: | |
7838 | |
7839 * [30]8316: Confusing diagnostic for code that misuses conversion | |
7840 operators | |
7841 * [31]9169: filebuf output fails if codecvt<>::out returns noconv | |
7842 * [32]9420: incomplete type incorrectly reported | |
7843 * [33]9459: typeof in return type specification of template not | |
7844 supported | |
7845 * [34]9507: filebuf::open handles ios_base::ate incorrectly | |
7846 * [35]9538: Out-of-bounds memory access in streambuf::sputbackc | |
7847 * [36]9602: Total confusion about template/friend/virtual/abstract | |
7848 * [37]9993: destructor not called for local object created within and | |
7849 returned from infinite loop | |
7850 * [38]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2 | |
7851 system | |
7852 | |
7853 Java compiler and library: | |
7854 | |
7855 * [39]9652: libgcj build fails on irix6.5.1[78] | |
7856 * [40]10144: gas on solaris complains about bad .stabs lines for | |
7857 java, native as unaffected | |
7858 | |
7859 x86-specific (Intel/AMD): | |
7860 | |
7861 * [41]8746: gcc miscompiles Linux kernel ppa driver on x86 | |
7862 * [42]9888: -mcpu=k6 -Os produces out of range loop instructions | |
7863 * [43]9638: Cross-build for target i386-elf and i586-pc-linux-gnu | |
7864 failed | |
7865 * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib) | |
7866 failed | |
7867 | |
7868 SPARC-specific: | |
7869 | |
7870 * [45]7784: [Sparc] ICE in extract_insn, in recog.c | |
7871 * [46]7796: sparc extra failure with -m64 on execute/930921-1.c in | |
7872 unroll.c | |
7873 * [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc | |
7874 * [48]8366: [Sparc] C testsuite failure with -m64 -fpic -O in | |
7875 execute/loop-2d.c | |
7876 * [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc | |
7877 * [50]9414: Scheduling bug on Ultrasparc | |
7878 * [51]10067: GCC-3.2.2 outputs invalid asm on sparc64 | |
7879 | |
7880 m68k-specific: | |
7881 | |
7882 * [52]7248: broken "inclusive or" code | |
7883 * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1 | |
7884 | |
7885 PowerPC-specific: | |
7886 | |
7887 * [54]9732: Wrong code with -O2 -fPIC | |
7888 * [55]10073: ICE: powerpc cannot split insn | |
7889 | |
7890 Alpha-specific: | |
7891 | |
7892 * [56]7702: optimization problem on a DEC alpha under OSF1 | |
7893 * [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system | |
7894 | |
7895 HP-specific: | |
7896 | |
7897 * [58]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275) | |
7898 * [59]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10 | |
7899 (missing symbol) | |
7900 * [60]10271: Floating point args don't get reloaded across function | |
7901 calls with -O2 | |
7902 | |
7903 MIPS specific: | |
7904 | |
7905 * [61]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in | |
7906 compile/920501-4.c | |
7907 | |
7908 CRIS specific: | |
7909 | |
7910 * [62]10377: gcc-3.2.2 creates bad assembler code for cris | |
7911 | |
7912 Miscellaneous and minor bugs: | |
7913 | |
7914 * [63]6955: collect2 says "core dumped" when there is no core | |
7915 __________________________________________________________________ | |
7916 | |
7917 GCC 3.2.2 | |
7918 | |
7919 Beginning with 3.2.2, GCC's Makefile suite supports redirection of make | |
7920 install by means of the DESTDIR variable. Parts of the GCC tree have | |
7921 featured that support long before, but now it is available even from | |
7922 the top level. | |
7923 | |
7924 Other than that, GCC 3.2.2 is a bug fix release only; there are no new | |
7925 features that were not present in GCC 3.2.1. | |
7926 | |
7927 Bug Fixes | |
7928 | |
7929 On the following i386-based systems GCC 3.2.1 broke the C ABI wrt. | |
7930 functions returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped | |
7931 with FreeBSD 5.0 does not have this problem), Interix, a.out-based | |
7932 Linux and NetBSD, OpenBSD, and Darwin. GCC 3.2.2 reverts this ABI | |
7933 change, and thus restores ABI-compatibility with previous releases | |
7934 (except GCC 3.2.1) on these platforms. | |
7935 | |
7936 This section lists the problem reports (PRs) from GCC's bug tracking | |
7937 system that are known to be fixed in the 3.2.2 release. This list might | |
7938 not be complete (that is, it is possible that some PRs that have been | |
7939 fixed are not listed here) and some of the titles have been changed to | |
7940 make them more clear. | |
7941 | |
7942 Internal Compiler Errors (multi-platform) | |
7943 | |
7944 * [64]5919: (c++) ICE when passing variable array to template | |
7945 function | |
7946 * [65]7129: (c++) ICE with min/max assignment operators (<?= and >?=) | |
7947 * [66]7507: ICE with -O2 when address of called function is a | |
7948 complicated expression | |
7949 * [67]7622: ICE with nested inline functions if function's address is | |
7950 taken | |
7951 * [68]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR | |
7952 [69]9258) | |
7953 * [70]8031: (c++) ICE in code comparing typeids and casting from | |
7954 virtual base | |
7955 * [71]8275: ICE in simplify_subreg | |
7956 * [72]8332: (c++) builtin strlen/template interaction causes ICE | |
7957 * [73]8372: (c++) ICE on explicit call of destructor | |
7958 * [74]8439: (c, not c++) empty struct causes ICE | |
7959 * [75]8442: (c++) ICE with nested template classes | |
7960 * [76]8518: ICE when compiling mplayer ("extern inline" issue) | |
7961 * [77]8615: (c++) ICE with out-of-range character constant template | |
7962 argument | |
7963 * [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307 | |
7964 * [79]8799: (c++) ICE: error reporting routines re-entered | |
7965 * [80]9328: (c++) ICE with typeof(X) for overloaded X | |
7966 * [81]9465: (preprocessor) cpp -traditional ICE on null bytes | |
7967 | |
7968 C++ (compiler and library) bugs | |
7969 | |
7970 * [82]47: scoping in nested classes is broken | |
7971 * [83]6745: problems with iostream rdbuf() member function | |
7972 * [84]8214: conversion from const char* const to char* sometimes | |
7973 accepted illegally | |
7974 * [85]8493: builtin strlen and overload resolution (same bug as | |
7975 [86]8332) | |
7976 * [87]8503: strange behaviour of function types | |
7977 * [88]8727: compiler confused by inheritance from an anonymous struct | |
7978 * [89]7445: poor performance of std::locale::classic() in | |
7979 multi-threaded applications | |
7980 * [90]8230: mishandling of overflow in vector<T>::resize | |
7981 * [91]8399: sync_with_stdio(false) breaks unformatted input | |
7982 * [92]8662: illegal access of private member of unnamed class is | |
7983 accepted | |
7984 * [93]8707: "make distclean" fails in libstdc++-v3 directory | |
7985 * [94]8708: __USE_MALLOC doesn't work | |
7986 * [95]8790: Use of non-thread-safe strtok in src/localename.cc | |
7987 * [96]8887: Bug in date formats with --enable-clocale=generic | |
7988 * [97]9076: Call Frame Instructions are not handled correctly during | |
7989 unwind operation | |
7990 * [98]9151: std::setprecision limited to 16 digits when outputting a | |
7991 double to a stream | |
7992 * [99]9168: codecvt<char, char, mbstate_t> overwrites output buffers | |
7993 * [100]9269: libstdc++ headers: explicit specialization of function | |
7994 must precede its first use | |
7995 * [101]9322: return value of basic_streambuf<>::getloc affected by | |
7996 locale::global | |
7997 * [102]9433: segfault in runtime support for dynamic_cast | |
7998 | |
7999 C and optimizer bugs | |
8000 | |
8001 * [103]8032: GCC incorrectly initializes static structs that have | |
8002 flexible arrays | |
8003 * [104]8639: simple arithmetic expression broken | |
8004 * [105]8794: optimization improperly eliminates certain expressions | |
8005 * [106]8832: traditional "asm volatile" code is illegally optimized | |
8006 * [107]8988: loop optimizer bug: with -O2, code is generated that | |
8007 segfaults (found on i386, bug present for all platforms) | |
8008 * [108]9492: structure copy clobbers subsequent stores to structure | |
8009 | |
8010 Objective-C bugs | |
8011 | |
8012 * [109]9267: Objective-C parser won't build with newer bison versions | |
8013 (e.g. 1.875) | |
8014 | |
8015 Ada bugs | |
8016 | |
8017 * [110]8344: Ada build problem due to conflict between gcc/final.o, | |
8018 gcc/ada/final.o | |
8019 | |
8020 Preprocessor bugs | |
8021 | |
8022 * [111]8524: _Pragma within macros is improperly expanded | |
8023 * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with | |
8024 -fshort-wchar | |
8025 | |
8026 ARM-specific | |
8027 | |
8028 * [113]9090: arm ICE with >= -O2; regression from gcc-2.95 | |
8029 | |
8030 x86-specific (Intel/AMD) | |
8031 | |
8032 * [114]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction) | |
8033 * [115]8599: loop unroll bug with -march=k6-3 | |
8034 * [116]9506: ABI breakage in structure return (affects BSD and | |
8035 Cygwin, but not GNU/Linux) | |
8036 | |
8037 FreeBSD 5.0 specific | |
8038 | |
8039 * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0 | |
8040 | |
8041 RTEMS-specific | |
8042 | |
8043 * [118]9292: hppa1.1-rtems configurery problems | |
8044 * [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug | |
8045 * [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue | |
8046 * [121]9296: gthr-rtems regression | |
8047 * [122]9316: powerpc-rtems: extending multilibs | |
8048 | |
8049 HP-PA specific | |
8050 | |
8051 * [123]9493: ICE with -O2 when building a simple function | |
8052 | |
8053 Documentation | |
8054 | |
8055 * [124]7341: hyperlink to gcov in GCC documentation doesn't work | |
8056 * [125]8947: Please add a warning about "-malign-double" in docs | |
8057 * [126]7448, [127]8882: typo cleanups | |
8058 __________________________________________________________________ | |
8059 | |
8060 GCC 3.2.1 | |
8061 | |
8062 3.2.1 adds a new warning, -Wabi. This option warns when GNU C++ | |
8063 generates code that is known not to be binary-compatible with the | |
8064 vendor-neutral ia32/ia64 ABI. Please consult the GCC manual, included | |
8065 in the distribution, for details. | |
8066 | |
8067 This release also removes an old GCC extension, "naming types", and the | |
8068 documentation now directs users to use a different GCC extension, | |
8069 __typeof__, instead. The feature had evidently been broken for a while. | |
8070 | |
8071 Otherwise, 3.2.1 is a bug fix release only; other than bug fixes and | |
8072 the new warning there are no new features that were not present in GCC | |
8073 3.2. | |
8074 | |
8075 In addition, the previous fix for [128]PR 7445 (poor performance of | |
8076 std::locale::classic() in multi-threaded applications) was reverted | |
8077 ("unfixed"), because the "fix" was not thread-safe. | |
8078 | |
8079 Bug Fixes | |
8080 | |
8081 This section lists the problem reports (PRs) from GCC's bug tracking | |
8082 system that are known to be fixed in the 3.2.1 release. This list might | |
8083 not be complete (that is, it is possible that some PRs that have been | |
8084 fixed are not listed here). As you can see, the number of bug fixes is | |
8085 quite large, so it is strongly recommended that users of earlier GCC | |
8086 3.x releases upgrade to GCC 3.2.1. | |
8087 | |
8088 Internal Compiler Errors (multi-platform) | |
8089 | |
8090 * [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c | |
8091 * [130]5661: (c++) ICE instantiating template on array of unknown | |
8092 size (bad code) | |
8093 * [131]6419: (c++) ICE in make_decl_rtl for "longest" attribute on | |
8094 64-bit platforms | |
8095 * [132]6994: (c++) ICE in find_function_data | |
8096 * [133]7150: preprocessor: GCC -dM -E gives an ICE | |
8097 * [134]7160: ICE when optimizing branches without a return value | |
8098 * [135]7228: (c++) ICE when using member template and template | |
8099 function | |
8100 * [136]7266: (c++) ICE with -pedantic on missing typename | |
8101 * [137]7353: ICE from use of "Naming Types" extension, see above | |
8102 * [138]7411: ICE in instantiate_virtual_regs_1, in function.c | |
8103 * [139]7478: (c++) ICE on static_cast inside template | |
8104 * [140]7526: preprocessor core dump when _Pragma implies #pragma | |
8105 dependency | |
8106 * [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803 | |
8107 is a duplicate) | |
8108 * [143]7754: (c++) ICE on union with template parameter | |
8109 * [144]7788: (c++) redeclaring a definition as an incomplete class | |
8110 causes ICE | |
8111 * [145]8031: (c++) ICE in comptypes, in cp/typeck.c | |
8112 * [146]8055: preprocessor dies with SIG11 when building FreeBSD | |
8113 kernel | |
8114 * [147]8067: (c++) ICE due to mishandling of __FUNCTION__ and related | |
8115 variables | |
8116 * [148]8134: (c++) ICE in force_store_init_value on legal code | |
8117 * [149]8149: (c++) ICE on incomplete type | |
8118 * [150]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array | |
8119 initialization | |
8120 | |
8121 C++ (compiler and library) bugs | |
8122 | |
8123 * [151]5607: No pointer adjustment in covariant return types | |
8124 * [152]6579: Infinite loop with statement expressions in member | |
8125 initialization | |
8126 * [153]6803: Default copy constructor bug in GCC 3.1 | |
8127 * [154]7176: g++ confused by friend and static member with same name | |
8128 * [155]7188: Segfault with template class and recursive (incorrect) | |
8129 initializer list | |
8130 * [156]7306: Regression: GCC 3.x fails to compile code with virtual | |
8131 inheritance if a method has a variable number of arguments | |
8132 * [157]7461: ctype<char>::classic_table() returns offset array on | |
8133 Cygwin | |
8134 * [158]7524: f(const float arg[3]) fails | |
8135 * [159]7584: Erroneous ambiguous base error on using declaration | |
8136 * [160]7676: Member template overloading problem | |
8137 * [161]7679: infinite loop when a right parenthesis is missing | |
8138 * [162]7811: default locale not taken from environment | |
8139 * [163]7961: compare( char *) implemented incorrectly in | |
8140 basic_string<> | |
8141 * [164]8071: basic_ostream::operator<<(streambuf*) loops forever if | |
8142 streambuf::underflow() leaves gptr() NULL (dups: [165]8127, | |
8143 [166]6745) | |
8144 * [167]8096: deque::at() throws std::range_error instead of | |
8145 std::out_of_range | |
8146 * [168]8127: cout << cin.rdbuf() infinite loop | |
8147 * [169]8218: Excessively large memory consumed for classes with large | |
8148 array members | |
8149 * [170]8287: GCC 3.2: Destructor called for non-constructed local | |
8150 object | |
8151 * [171]8347: empty vector range used in string construction causes | |
8152 core dump | |
8153 * [172]8348: fail() flag is set in istringstream when eof() flag is | |
8154 set | |
8155 * [173]8391: regression: infinite loop in cp/decl2.c(finish_file) | |
8156 | |
8157 C and optimizer bugs | |
8158 | |
8159 * [174]6627: -fno-align-functions doesn't seem to disable function | |
8160 alignment | |
8161 * [175]6631: life_analysis misoptimizes code to initialize fields of | |
8162 a structure | |
8163 * [176]7102: unsigned char division results in floating exception | |
8164 * [177]7120: Run once loop should *always* be unrolled | |
8165 (pessimization) | |
8166 * [178]7209: Bug involving array referencing and ?: operator | |
8167 * [179]7515: invalid inlining of global function with -O3 | |
8168 * [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test | |
8169 * [181]8467: bug in sibling call optimization | |
8170 | |
8171 Preprocessor bugs | |
8172 | |
8173 * [182]4890: incorrect line markers from the traditional preprocessor | |
8174 * [183]7357: -M option omits system headers files (making it the same | |
8175 as -MM) | |
8176 * [184]7358: Changes to Sun's make Dependencies | |
8177 * [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as | |
8178 C headers | |
8179 * [186]7862: Interrupting GCC -MD removes .d file but not .o | |
8180 * [187]8190: Failed compilation deletes -MD dependency file | |
8181 * [188]8524: _Pragma within macro is improperly expanded | |
8182 | |
8183 x86 specific (Intel/AMD) | |
8184 | |
8185 * [189]5351: (i686-only) function pass-by-value structure copy | |
8186 corrupts stack ([190]7591 is a duplicate) | |
8187 * [191]6845, [192]7034, [193]7124, [194]7174: ICE's with | |
8188 -march=pentium3/pentium2/athlon (these are all the same underlying | |
8189 bug, in MMX register use) | |
8190 * [195]7134, [196]7375, [197]7390: ICE with -march=athlon (maybe same | |
8191 as above?) | |
8192 * [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken | |
8193 * [199]6981: wrong code in 64-bit manipulation on x86 | |
8194 * [200]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__ | |
8195 macro | |
8196 * [201]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE | |
8197 intrinsics are broken | |
8198 * [202]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with | |
8199 -march=pentium4 | |
8200 * [203]7693: Typo in i386 mmintrin.h header | |
8201 * [204]7723: ICE - Pentium3 sse - GCC 3.2 | |
8202 * [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse | |
8203 * [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3 | |
8204 | |
8205 PowerPC specific | |
8206 | |
8207 * [207]5967: GCC bug when profiling nested functions on powerpc | |
8208 * [208]6984: wrong code generated with -O2, -O3, -Os for do-while | |
8209 loop on PowerPC | |
8210 * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5 | |
8211 * [210]7130: miscompiled code for GCC-3.1 in powerpc linux with | |
8212 -funroll-all-loops | |
8213 * [211]7133: PowerPC ICE: unrecognizable insn | |
8214 * [212]7380: ICE in extract_insn, at recog.c:2148 | |
8215 * [213]8252: ICE on Altivec code with optimization turned on | |
8216 * [214]8451: Altivec ICE in GCC 3.2 | |
8217 | |
8218 HP/PA specific | |
8219 | |
8220 * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa | |
8221 | |
8222 SPARC specific | |
8223 | |
8224 * [216]6668: when using --disable-multilib, libgcc_s.so is installed | |
8225 in the wrong place on sparc-solaris | |
8226 * [217]7151: ICE when compiling for UltraSPARC | |
8227 * [218]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long | |
8228 double and -O1 | |
8229 * [219]7842: [REGRESSION] SPARC code gen bug | |
8230 | |
8231 ARM specific | |
8232 | |
8233 * [220]7856: [arm] invalid offset in constant pool reference | |
8234 * [221]7967: optimization produces wrong code (ARM) | |
8235 | |
8236 Alpha specific | |
8237 | |
8238 * [222]7374: __builtin_fabsl broken on alpha | |
8239 | |
8240 IBM s390 specific | |
8241 | |
8242 * [223]7370: ICE in fixup_var_refs_1 on s390x | |
8243 * [224]7409: loop optimization bug on s390x-linux-gnu | |
8244 * [225]8232: s390x: ICE when using bcmp with int length argument | |
8245 | |
8246 SCO specific | |
8247 | |
8248 * [226]7623: SCO OpenServer build fails with machmode.def: undefined | |
8249 symbol: BITS_PER_UNIT | |
8250 | |
8251 m68k/Coldfire specific | |
8252 | |
8253 * [227]8314: crtbegin, crtend need to be multilib'ed for this | |
8254 platform | |
8255 | |
8256 Documentation | |
8257 | |
8258 * [228]761: Document some undocumented options | |
8259 * [229]5610: Fix documentation about invoking SSE instructions | |
8260 (-mfpmath=sse) | |
8261 * [230]7484: List -Wmissing-declarations as C-only option | |
8262 * [231]7531: -mcmodel not documented for x86-64 | |
8263 * [232]8120: Update documentation of bad use of ## | |
8264 __________________________________________________________________ | |
8265 | |
8266 GCC 3.2 | |
8267 | |
8268 3.2 is a small bug fix release, but there is a change to the | |
8269 application binary interface (ABI), hence the change to the second part | |
8270 of the version number. | |
8271 | |
8272 The main purpose of the 3.2 release is to correct a couple of problems | |
8273 in the C++ ABI, with the intention of providing a stable interface | |
8274 going forward. Accordingly, 3.2 is only a small change to 3.1.1. | |
8275 | |
8276 Bug Fixes | |
8277 | |
8278 C++ | |
8279 | |
8280 * [233]7320: g++ 3.2 relocation problem | |
8281 * [234]7470: vtable: virtual function pointers not in declaration | |
8282 order | |
8283 | |
8284 libstdc++ | |
8285 | |
8286 * [235]6410: Trouble with non-ASCII monetary symbols and wchar_t | |
8287 * [236]6503, [237]6642, [238]7186: Problems with comparing or | |
8288 subtracting various types of const and non-const iterators | |
8289 * [239]7216: ambiguity with basic_iostream::traits_type | |
8290 * [240]7220: problem with basic_istream::ignore(0,delimiter) | |
8291 * [241]7222: locale::operator==() doesn't work on std::locale("") | |
8292 * [242]7286: placement operator delete issue | |
8293 * [243]7442: cxxabi.h does not match the C++ ABI | |
8294 * [244]7445: poor performance of std::locale::classic() in | |
8295 multi-threaded applications | |
8296 | |
8297 x86-64 specific | |
8298 | |
8299 * [245]7291: off-by-one in generated inline bzero code for x86-64 | |
8300 | |
8301 Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There | |
8302 are also [247]other ways to contact the FSF. | |
8303 | |
8304 These pages are maintained by [248]the GCC team. | |
8305 | |
8306 | |
8307 For questions related to the use of GCC, please consult these web | |
8308 pages and the [249]GCC manuals. If that fails, the | |
8309 [250]gcc-help@gcc.gnu.org mailing list might help. | |
8310 Please send comments on these web pages and the development of GCC to | |
8311 our developer mailing list at [251]gcc@gnu.org or | |
8312 [252]gcc@gcc.gnu.org. All of our lists have [253]public archives. | |
8313 | |
8314 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8315 Floor, Boston, MA 02110, USA. | |
8316 | |
8317 Verbatim copying and distribution of this entire article is permitted | |
8318 in any medium, provided this notice is preserved. | |
8319 Last modified 2007-07-25 [254]Valid XHTML 1.0 | |
8320 | |
8321 References | |
8322 | |
8323 1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 | |
8324 2. http://gcc.gnu.org/gcc-3.1/changes.html | |
8325 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html | |
8326 4. http://gcc.gnu.org/PR3782 | |
8327 5. http://gcc.gnu.org/PR6440 | |
8328 6. http://gcc.gnu.org/PR7050 | |
8329 7. http://gcc.gnu.org/PR7741 | |
8330 8. http://gcc.gnu.org/PR7982 | |
8331 9. http://gcc.gnu.org/PR8068 | |
8332 10. http://gcc.gnu.org/PR8178 | |
8333 11. http://gcc.gnu.org/PR8396 | |
8334 12. http://gcc.gnu.org/PR8674 | |
8335 13. http://gcc.gnu.org/PR9768 | |
8336 14. http://gcc.gnu.org/PR9798 | |
8337 15. http://gcc.gnu.org/PR9799 | |
8338 16. http://gcc.gnu.org/PR9928 | |
8339 17. http://gcc.gnu.org/PR10114 | |
8340 18. http://gcc.gnu.org/PR10352 | |
8341 19. http://gcc.gnu.org/PR10336 | |
8342 20. http://gcc.gnu.org/PR8224 | |
8343 21. http://gcc.gnu.org/PR8613 | |
8344 22. http://gcc.gnu.org/PR8828 | |
8345 23. http://gcc.gnu.org/PR9226 | |
8346 24. http://gcc.gnu.org/PR9853 | |
8347 25. http://gcc.gnu.org/PR9797 | |
8348 26. http://gcc.gnu.org/PR9967 | |
8349 27. http://gcc.gnu.org/PR10116 | |
8350 28. http://gcc.gnu.org/PR10171 | |
8351 29. http://gcc.gnu.org/PR10175 | |
8352 30. http://gcc.gnu.org/PR8316 | |
8353 31. http://gcc.gnu.org/PR9169 | |
8354 32. http://gcc.gnu.org/PR9420 | |
8355 33. http://gcc.gnu.org/PR9459 | |
8356 34. http://gcc.gnu.org/PR9507 | |
8357 35. http://gcc.gnu.org/PR9538 | |
8358 36. http://gcc.gnu.org/PR9602 | |
8359 37. http://gcc.gnu.org/PR9993 | |
8360 38. http://gcc.gnu.org/PR10167 | |
8361 39. http://gcc.gnu.org/PR9652 | |
8362 40. http://gcc.gnu.org/PR10144 | |
8363 41. http://gcc.gnu.org/PR8746 | |
8364 42. http://gcc.gnu.org/PR9888 | |
8365 43. http://gcc.gnu.org/PR9638 | |
8366 44. http://gcc.gnu.org/PR9954 | |
8367 45. http://gcc.gnu.org/PR7784 | |
8368 46. http://gcc.gnu.org/PR7796 | |
8369 47. http://gcc.gnu.org/PR8281 | |
8370 48. http://gcc.gnu.org/PR8366 | |
8371 49. http://gcc.gnu.org/PR8726 | |
8372 50. http://gcc.gnu.org/PR9414 | |
8373 51. http://gcc.gnu.org/PR10067 | |
8374 52. http://gcc.gnu.org/PR7248 | |
8375 53. http://gcc.gnu.org/PR8343 | |
8376 54. http://gcc.gnu.org/PR9732 | |
8377 55. http://gcc.gnu.org/PR10073 | |
8378 56. http://gcc.gnu.org/PR7702 | |
8379 57. http://gcc.gnu.org/PR9671 | |
8380 58. http://gcc.gnu.org/PR8694 | |
8381 59. http://gcc.gnu.org/PR9953 | |
8382 60. http://gcc.gnu.org/PR10271 | |
8383 61. http://gcc.gnu.org/PR6362 | |
8384 62. http://gcc.gnu.org/PR10377 | |
8385 63. http://gcc.gnu.org/PR6955 | |
8386 64. http://gcc.gnu.org/PR5919 | |
8387 65. http://gcc.gnu.org/PR7129 | |
8388 66. http://gcc.gnu.org/PR7507 | |
8389 67. http://gcc.gnu.org/PR7622 | |
8390 68. http://gcc.gnu.org/PR7681 | |
8391 69. http://gcc.gnu.org/PR9528 | |
8392 70. http://gcc.gnu.org/PR8031 | |
8393 71. http://gcc.gnu.org/PR8275 | |
8394 72. http://gcc.gnu.org/PR8332 | |
8395 73. http://gcc.gnu.org/PR8372 | |
8396 74. http://gcc.gnu.org/PR8439 | |
8397 75. http://gcc.gnu.org/PR8442 | |
8398 76. http://gcc.gnu.org/PR8518 | |
8399 77. http://gcc.gnu.org/PR8615 | |
8400 78. http://gcc.gnu.org/PR8663 | |
8401 79. http://gcc.gnu.org/PR8799 | |
8402 80. http://gcc.gnu.org/PR9328 | |
8403 81. http://gcc.gnu.org/PR9465 | |
8404 82. http://gcc.gnu.org/PR47 | |
8405 83. http://gcc.gnu.org/PR6745 | |
8406 84. http://gcc.gnu.org/PR8214 | |
8407 85. http://gcc.gnu.org/PR8493 | |
8408 86. http://gcc.gnu.org/PR8332 | |
8409 87. http://gcc.gnu.org/PR8503 | |
8410 88. http://gcc.gnu.org/PR8727 | |
8411 89. http://gcc.gnu.org/PR7445 | |
8412 90. http://gcc.gnu.org/PR8230 | |
8413 91. http://gcc.gnu.org/PR8399 | |
8414 92. http://gcc.gnu.org/PR8662 | |
8415 93. http://gcc.gnu.org/PR8707 | |
8416 94. http://gcc.gnu.org/PR8708 | |
8417 95. http://gcc.gnu.org/PR8790 | |
8418 96. http://gcc.gnu.org/PR8887 | |
8419 97. http://gcc.gnu.org/PR9076 | |
8420 98. http://gcc.gnu.org/PR9151 | |
8421 99. http://gcc.gnu.org/PR9168 | |
8422 100. http://gcc.gnu.org/PR9269 | |
8423 101. http://gcc.gnu.org/PR9322 | |
8424 102. http://gcc.gnu.org/PR9433 | |
8425 103. http://gcc.gnu.org/PR8032 | |
8426 104. http://gcc.gnu.org/PR8639 | |
8427 105. http://gcc.gnu.org/PR8794 | |
8428 106. http://gcc.gnu.org/PR8832 | |
8429 107. http://gcc.gnu.org/PR8988 | |
8430 108. http://gcc.gnu.org/PR9492 | |
8431 109. http://gcc.gnu.org/PR9267 | |
8432 110. http://gcc.gnu.org/PR8344 | |
8433 111. http://gcc.gnu.org/PR8524 | |
8434 112. http://gcc.gnu.org/PR8880 | |
8435 113. http://gcc.gnu.org/PR9090 | |
8436 114. http://gcc.gnu.org/PR8588 | |
8437 115. http://gcc.gnu.org/PR8599 | |
8438 116. http://gcc.gnu.org/PR9506 | |
8439 117. http://gcc.gnu.org/PR9484 | |
8440 118. http://gcc.gnu.org/PR9292 | |
8441 119. http://gcc.gnu.org/PR9293 | |
8442 120. http://gcc.gnu.org/PR9295 | |
8443 121. http://gcc.gnu.org/PR9296 | |
8444 122. http://gcc.gnu.org/PR9316 | |
8445 123. http://gcc.gnu.org/PR9493 | |
8446 124. http://gcc.gnu.org/PR7341 | |
8447 125. http://gcc.gnu.org/PR8947 | |
8448 126. http://gcc.gnu.org/PR7448 | |
8449 127. http://gcc.gnu.org/PR8882 | |
8450 128. http://gcc.gnu.org/PR7445 | |
8451 129. http://gcc.gnu.org/PR2521 | |
8452 130. http://gcc.gnu.org/PR5661 | |
8453 131. http://gcc.gnu.org/PR6419 | |
8454 132. http://gcc.gnu.org/PR6994 | |
8455 133. http://gcc.gnu.org/PR7150 | |
8456 134. http://gcc.gnu.org/PR7160 | |
8457 135. http://gcc.gnu.org/PR7228 | |
8458 136. http://gcc.gnu.org/PR7266 | |
8459 137. http://gcc.gnu.org/PR7353 | |
8460 138. http://gcc.gnu.org/PR7411 | |
8461 139. http://gcc.gnu.org/PR7478 | |
8462 140. http://gcc.gnu.org/PR7526 | |
8463 141. http://gcc.gnu.org/PR7721 | |
8464 142. http://gcc.gnu.org/PR7803 | |
8465 143. http://gcc.gnu.org/PR7754 | |
8466 144. http://gcc.gnu.org/PR7788 | |
8467 145. http://gcc.gnu.org/PR8031 | |
8468 146. http://gcc.gnu.org/PR8055 | |
8469 147. http://gcc.gnu.org/PR8067 | |
8470 148. http://gcc.gnu.org/PR8134 | |
8471 149. http://gcc.gnu.org/PR8149 | |
8472 150. http://gcc.gnu.org/PR8160 | |
8473 151. http://gcc.gnu.org/PR5607 | |
8474 152. http://gcc.gnu.org/PR6579 | |
8475 153. http://gcc.gnu.org/PR6803 | |
8476 154. http://gcc.gnu.org/PR7176 | |
8477 155. http://gcc.gnu.org/PR7188 | |
8478 156. http://gcc.gnu.org/PR7306 | |
8479 157. http://gcc.gnu.org/PR7461 | |
8480 158. http://gcc.gnu.org/PR7524 | |
8481 159. http://gcc.gnu.org/PR7584 | |
8482 160. http://gcc.gnu.org/PR7676 | |
8483 161. http://gcc.gnu.org/PR7679 | |
8484 162. http://gcc.gnu.org/PR7811 | |
8485 163. http://gcc.gnu.org/PR7961 | |
8486 164. http://gcc.gnu.org/PR8071 | |
8487 165. http://gcc.gnu.org/PR8127 | |
8488 166. http://gcc.gnu.org/PR6745 | |
8489 167. http://gcc.gnu.org/PR8096 | |
8490 168. http://gcc.gnu.org/PR8127 | |
8491 169. http://gcc.gnu.org/PR8218 | |
8492 170. http://gcc.gnu.org/PR8287 | |
8493 171. http://gcc.gnu.org/PR8347 | |
8494 172. http://gcc.gnu.org/PR8348 | |
8495 173. http://gcc.gnu.org/PR8391 | |
8496 174. http://gcc.gnu.org/PR6627 | |
8497 175. http://gcc.gnu.org/PR6631 | |
8498 176. http://gcc.gnu.org/PR7102 | |
8499 177. http://gcc.gnu.org/PR7120 | |
8500 178. http://gcc.gnu.org/PR7209 | |
8501 179. http://gcc.gnu.org/PR7515 | |
8502 180. http://gcc.gnu.org/PR7814 | |
8503 181. http://gcc.gnu.org/PR8467 | |
8504 182. http://gcc.gnu.org/PR4890 | |
8505 183. http://gcc.gnu.org/PR7357 | |
8506 184. http://gcc.gnu.org/PR7358 | |
8507 185. http://gcc.gnu.org/PR7602 | |
8508 186. http://gcc.gnu.org/PR7862 | |
8509 187. http://gcc.gnu.org/PR8190 | |
8510 188. http://gcc.gnu.org/PR8524 | |
8511 189. http://gcc.gnu.org/PR5351 | |
8512 190. http://gcc.gnu.org/PR7591 | |
8513 191. http://gcc.gnu.org/PR6845 | |
8514 192. http://gcc.gnu.org/PR7034 | |
8515 193. http://gcc.gnu.org/PR7124 | |
8516 194. http://gcc.gnu.org/PR7174 | |
8517 195. http://gcc.gnu.org/PR7134 | |
8518 196. http://gcc.gnu.org/PR7375 | |
8519 197. http://gcc.gnu.org/PR7390 | |
8520 198. http://gcc.gnu.org/PR6890 | |
8521 199. http://gcc.gnu.org/PR6981 | |
8522 200. http://gcc.gnu.org/PR7242 | |
8523 201. http://gcc.gnu.org/PR7396 | |
8524 202. http://gcc.gnu.org/PR7630 | |
8525 203. http://gcc.gnu.org/PR7693 | |
8526 204. http://gcc.gnu.org/PR7723 | |
8527 205. http://gcc.gnu.org/PR7951 | |
8528 206. http://gcc.gnu.org/PR8146 | |
8529 207. http://gcc.gnu.org/PR5967 | |
8530 208. http://gcc.gnu.org/PR6984 | |
8531 209. http://gcc.gnu.org/PR7114 | |
8532 210. http://gcc.gnu.org/PR7130 | |
8533 211. http://gcc.gnu.org/PR7133 | |
8534 212. http://gcc.gnu.org/PR7380 | |
8535 213. http://gcc.gnu.org/PR8252 | |
8536 214. http://gcc.gnu.org/PR8451 | |
8537 215. http://gcc.gnu.org/PR7250 | |
8538 216. http://gcc.gnu.org/PR6668 | |
8539 217. http://gcc.gnu.org/PR7151 | |
8540 218. http://gcc.gnu.org/PR7335 | |
8541 219. http://gcc.gnu.org/PR7842 | |
8542 220. http://gcc.gnu.org/PR7856 | |
8543 221. http://gcc.gnu.org/PR7967 | |
8544 222. http://gcc.gnu.org/PR7374 | |
8545 223. http://gcc.gnu.org/PR7370 | |
8546 224. http://gcc.gnu.org/PR7409 | |
8547 225. http://gcc.gnu.org/PR8232 | |
8548 226. http://gcc.gnu.org/PR7623 | |
8549 227. http://gcc.gnu.org/PR8314 | |
8550 228. http://gcc.gnu.org/PR761 | |
8551 229. http://gcc.gnu.org/PR5610 | |
8552 230. http://gcc.gnu.org/PR7484 | |
8553 231. http://gcc.gnu.org/PR7531 | |
8554 232. http://gcc.gnu.org/PR8120 | |
8555 233. http://gcc.gnu.org/PR7320 | |
8556 234. http://gcc.gnu.org/PR7470 | |
8557 235. http://gcc.gnu.org/PR6410 | |
8558 236. http://gcc.gnu.org/PR6503 | |
8559 237. http://gcc.gnu.org/PR6642 | |
8560 238. http://gcc.gnu.org/PR7186 | |
8561 239. http://gcc.gnu.org/PR7216 | |
8562 240. http://gcc.gnu.org/PR7220 | |
8563 241. http://gcc.gnu.org/PR7222 | |
8564 242. http://gcc.gnu.org/PR7286 | |
8565 243. http://gcc.gnu.org/PR7442 | |
8566 244. http://gcc.gnu.org/PR7445 | |
8567 245. http://gcc.gnu.org/PR7291 | |
8568 246. mailto:gnu@gnu.org | |
8569 247. http://www.gnu.org/home.html#ContactInfo | |
8570 248. http://gcc.gnu.org/about.html | |
8571 249. http://gcc.gnu.org/onlinedocs/ | |
8572 250. mailto:gcc-help@gcc.gnu.org | |
8573 251. mailto:gcc@gnu.org | |
8574 252. mailto:gcc@gcc.gnu.org | |
8575 253. http://gcc.gnu.org/lists.html | |
8576 254. http://validator.w3.org/check/referer | |
8577 ====================================================================== | |
8578 http://gcc.gnu.org/gcc-3.1/index.html | |
8579 GCC 3.1 | |
8580 | |
8581 July 27, 2002 | |
8582 | |
8583 The [1]GNU project and the GCC developers are pleased to announce the | |
8584 release of GCC 3.1.1. | |
8585 | |
8586 The links below still apply to GCC 3.1.1. | |
8587 | |
8588 May 15, 2002 | |
8589 | |
8590 The [2]GNU project and the GCC developers are pleased to announce the | |
8591 release of GCC 3.1. | |
8592 | |
8593 GCC used to stand for the GNU C Compiler, but since the compiler | |
8594 supports several other languages aside from C, it now stands for the | |
8595 GNU Compiler Collection. | |
8596 | |
8597 A list of [3]successful builds is updated as new information becomes | |
8598 available. | |
8599 | |
8600 The GCC developers would like to thank the numerous people that have | |
8601 contributed [4]new features, improvements, bug fixes, and other changes | |
8602 as well as test results to GCC. This [5]amazing group of volunteers is | |
8603 what makes GCC successful. | |
8604 | |
8605 For additional information about GCC please refer to the [6]GCC project | |
8606 web site or contact the [7]GCC development mailing list. | |
8607 | |
8608 To obtain GCC please use [8]our mirror sites, or our CVS server. | |
8609 __________________________________________________________________ | |
8610 | |
8611 Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There | |
8612 are also [10]other ways to contact the FSF. | |
8613 | |
8614 These pages are maintained by [11]the GCC team. | |
8615 | |
8616 | |
8617 For questions related to the use of GCC, please consult these web | |
8618 pages and the [12]GCC manuals. If that fails, the | |
8619 [13]gcc-help@gcc.gnu.org mailing list might help. | |
8620 Please send comments on these web pages and the development of GCC to | |
8621 our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. | |
8622 All of our lists have [16]public archives. | |
8623 | |
8624 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8625 Floor, Boston, MA 02110, USA. | |
8626 | |
8627 Verbatim copying and distribution of this entire article is permitted | |
8628 in any medium, provided this notice is preserved. | |
8629 Last modified 2008-07-26 [17]Valid XHTML 1.0 | |
8630 | |
8631 References | |
8632 | |
8633 1. http://www.gnu.org/ | |
8634 2. http://www.gnu.org/ | |
8635 3. http://gcc.gnu.org/gcc-3.1/buildstat.html | |
8636 4. http://gcc.gnu.org/gcc-3.1/changes.html | |
8637 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
8638 6. http://gcc.gnu.org/index.html | |
8639 7. mailto:gcc@gcc.gnu.org | |
8640 8. http://gcc.gnu.org/mirrors.html | |
8641 9. mailto:gnu@gnu.org | |
8642 10. http://www.gnu.org/home.html#ContactInfo | |
8643 11. http://gcc.gnu.org/about.html | |
8644 12. http://gcc.gnu.org/onlinedocs/ | |
8645 13. mailto:gcc-help@gcc.gnu.org | |
8646 14. mailto:gcc@gnu.org | |
8647 15. mailto:gcc@gcc.gnu.org | |
8648 16. http://gcc.gnu.org/lists.html | |
8649 17. http://validator.w3.org/check/referer | |
8650 ====================================================================== | |
8651 http://gcc.gnu.org/gcc-3.1/changes.html | |
8652 GCC 3.1 Release Series | |
8653 Changes, New Features, and Fixes | |
8654 | |
8655 Additional changes in GCC 3.1.1 | |
8656 | |
8657 * A bug related to how structures and unions are returned has been | |
8658 fixed for powerpc-*-netbsd*. | |
8659 * An important bug in the implementation of -fprefetch-loop-arrays | |
8660 has been fixed. Previously the optimization prefetched random | |
8661 blocks of memory for most targets except for i386. | |
8662 * The Java compiler now compiles Java programs much faster and also | |
8663 works with parallel make. | |
8664 * Nested functions have been fixed for mips*-*-netbsd*. | |
8665 * Some missing floating point support routines have beed added for | |
8666 mips*-*-netbsd*. | |
8667 * This [1]message gives additional information about the bugs fixed | |
8668 in this release. | |
8669 | |
8670 Caveats | |
8671 | |
8672 * The -traditional C compiler option has been deprecated and will be | |
8673 removed in GCC 3.3. (It remains possible to preprocess non-C code | |
8674 with the traditional preprocessor.) | |
8675 * The default debugging format for most ELF platforms (including | |
8676 GNU/Linux and FreeBSD; notable exception is Solaris) has changed | |
8677 from stabs to DWARF2. This requires GDB 5.1.1 or later. | |
8678 | |
8679 General Optimizer Improvements | |
8680 | |
8681 * Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, | |
8682 and Andreas Jaeger, SuSE Labs, has contributed [2]infrastructure | |
8683 for profile driven optimizations. | |
8684 Options -fprofile-arcs and -fbranch-probabilities can now be used | |
8685 to improve speed of the generated code by profiling the actual | |
8686 program behaviour on typical runs. In the absence of profile info | |
8687 the compiler attempts to guess the profile statically. | |
8688 * [3]SPEC2000 and SPEC95 benchmark suites are now used daily to | |
8689 monitor performance of the generated code. | |
8690 According to the SPECInt2000 results on an AMD Athlon CPU, the code | |
8691 generated by GCC 3.1 is 6% faster on the average (8.2% faster with | |
8692 profile feedback) compared to GCC 3.0. The code produced by GCC 3.0 | |
8693 is about 2.1% faster compared to 2.95.3. Tests were done using the | |
8694 -O2 -march=athlon command-line options. | |
8695 * Alexandre Oliva, of Red Hat, has generalized the tree inlining | |
8696 infrastructure developed by CodeSourcery, LLC for the C++ front | |
8697 end, so that it is now used in the C front end too. Inlining | |
8698 functions as trees exposes them earlier to the compiler, giving it | |
8699 more opportunities for optimization. | |
8700 * Support for data prefetching instructions has been added to the GCC | |
8701 back end and several targets. A new __builtin_prefetch intrinsic is | |
8702 available to explicitly insert prefetch instructions and | |
8703 experimental support for loop array prefetching has been added (see | |
8704 -fprefetch-loop-array documentation). | |
8705 * Support for emitting debugging information for macros has been | |
8706 added for DWARF2. It is activated using -g3. | |
8707 | |
8708 New Languages and Language specific improvements | |
8709 | |
8710 C/C++ | |
8711 | |
8712 * A few more [4]ISO C99 features. | |
8713 * The preprocessor is 10-50% faster than the preprocessor in GCC 3.0. | |
8714 * The preprocessor's symbol table has been merged with the symbol | |
8715 table of the C, C++ and Objective-C front ends. | |
8716 * The preprocessor consumes less memory than the preprocessor in GCC | |
8717 3.0, often significantly so. On normal input files, it typically | |
8718 consumes less memory than pre-3.0 cccp-based GCC, too. | |
8719 | |
8720 C++ | |
8721 | |
8722 * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std | |
8723 was a workaround to allow std compliant code to work with the | |
8724 non-std compliant libstdc++-v2. libstdc++-v3 is std compliant. | |
8725 * The C++ ABI has been fixed so that void (A::*)() const is mangled | |
8726 as "M1AKFvvE", rather than "MK1AFvvE" as before. This change only | |
8727 affects pointer to cv-qualified member function types. | |
8728 * The C++ ABI has been changed to correctly handle this code: | |
8729 struct A { | |
8730 void operator delete[] (void *, size_t); | |
8731 }; | |
8732 | |
8733 struct B : public A { | |
8734 }; | |
8735 | |
8736 new B[10]; | |
8737 | |
8738 The amount of storage allocated for the array will be greater than | |
8739 it was in 3.0, in order to store the number of elements in the | |
8740 array, so that the correct size can be passed to operator delete[] | |
8741 when the array is deleted. Previously, the value passed to operator | |
8742 delete[] was unpredictable. | |
8743 This change will only affect code that declares a two-argument | |
8744 operator delete[] with a second parameter of type size_t in a base | |
8745 class, and does not override that definition in a derived class. | |
8746 * The C++ ABI has been changed so that: | |
8747 struct A { | |
8748 void operator delete[] (void *, size_t); | |
8749 void operator delete[] (void *); | |
8750 }; | |
8751 | |
8752 does not cause unnecessary storage to be allocated when an array of | |
8753 A objects is allocated. | |
8754 This change will only affect code that declares both of these forms | |
8755 of operator delete[], and declared the two-argument form before the | |
8756 one-argument form. | |
8757 * The C++ ABI has been changed so that when a parameter is passed by | |
8758 value, any cleanup for that parameter is performed in the caller, | |
8759 as specified by the ia64 C++ ABI, rather than the called function | |
8760 as before. As a result, classes with a non-trivial destructor but a | |
8761 trivial copy constructor will be passed and returned by invisible | |
8762 reference, rather than by bitwise copy as before. | |
8763 * G++ now supports the "named return value optimization": for code | |
8764 like | |
8765 A f () { | |
8766 A a; | |
8767 ... | |
8768 return a; | |
8769 } | |
8770 | |
8771 G++ will allocate a in the return value slot, so that the return | |
8772 becomes a no-op. For this to work, all return statements in the | |
8773 function must return the same variable. | |
8774 * Improvements to the C++ library are listed in [5]the libstdc++-v3 | |
8775 FAQ. | |
8776 | |
8777 Objective-C | |
8778 | |
8779 * Annoying linker warnings (due to incorrect code being generated) | |
8780 have been fixed. | |
8781 * If a class method cannot be found, the compiler no longer issues a | |
8782 warning if a corresponding instance method exists in the root | |
8783 class. | |
8784 * Forward @protocol declarations have been fixed. | |
8785 * Loading of categories has been fixed in certain situations (GNU run | |
8786 time only). | |
8787 * The class lookup in the run-time library has been rewritten so that | |
8788 class method dispatch is more than twice as fast as it used to be | |
8789 (GNU run time only). | |
8790 | |
8791 Java | |
8792 | |
8793 * libgcj now includes RMI, java.lang.ref.*, javax.naming, and | |
8794 javax.transaction. | |
8795 * Property files and other system resources can be compiled into | |
8796 executables which use libgcj using the new gcj --resource feature. | |
8797 * libgcj has been ported to more platforms. In particular there is | |
8798 now a mostly-functional mingw32 (Windows) target port. | |
8799 * JNI and CNI invocation interfaces were implemented, so gcj-compiled | |
8800 Java code can now be called from a C/C++ application. | |
8801 * gcj can now use builtin functions for certain known methods, for | |
8802 instance Math.cos. | |
8803 * gcj can now automatically remove redundant array-store checks in | |
8804 some common cases. | |
8805 * The --no-store-checks optimization option was added. This can be | |
8806 used to omit runtime store checks for code which is known not to | |
8807 throw ArrayStoreException | |
8808 * The following third party interface standards were added to libgcj: | |
8809 org.w3c.dom and org.xml.sax. | |
8810 * java.security has been merged with GNU Classpath. The new package | |
8811 is now JDK 1.2 compliant, and much more complete. | |
8812 * A bytecode verifier was added to the libgcj interpreter. | |
8813 * java.lang.Character was rewritten to comply with the Unicode 3.0 | |
8814 standard, and improve performance. | |
8815 * Partial support for many more locales was added to libgcj. | |
8816 * Socket timeouts have been implemented. | |
8817 * libgcj has been merged into a single shared library. There are no | |
8818 longer separate shared libraries for the garbage collector and | |
8819 zlib. | |
8820 * Several performance improvements were made to gcj and libgcj: | |
8821 + Hash synchronization (thin locks) | |
8822 + A special allocation path for finalizer-free objects | |
8823 + Thread-local allocation | |
8824 + Parallel GC, and other GC tweaks | |
8825 | |
8826 Fortran | |
8827 | |
8828 Fortran improvements are listed in [6]the Fortran documentation. | |
8829 | |
8830 Ada | |
8831 | |
8832 [7]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front | |
8833 end and associated tools. The GNAT compiler fully implements the Ada | |
8834 language as defined by the ISO/IEC 8652 standard. | |
8835 | |
8836 Please note that the integration of the Ada front end is still work in | |
8837 progress. | |
8838 | |
8839 New Targets and Target Specific Improvements | |
8840 | |
8841 * Hans-Peter Nilsson has contributed a port to [8]MMIX, the CPU | |
8842 architecture used in new editions of Donald E. Knuth's The Art of | |
8843 Computer Programming. | |
8844 * [9]Axis Communications has contributed its port to the CRIS CPU | |
8845 architecture, used in the ETRAX system-on-a-chip series. See | |
8846 [10]Axis' developer site for technical information. | |
8847 * Alexandre Oliva, of Red Hat, has contributed a port to the | |
8848 [11]SuperH SH5 64-bit RISC microprocessor architecture, extending | |
8849 the existing SH port. | |
8850 * UltraSPARC is fully supported in 64-bit mode. The option -m64 | |
8851 enables it. | |
8852 * For compatibility with the Sun compiler #pragma redefine_extname | |
8853 has been implemented on Solaris. | |
8854 * The x86 back end has had some noticeable work done to it. | |
8855 + SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas | |
8856 Jaeger have contributed a port to the AMD x86-64 architecture. | |
8857 For more information on x86-64 see [12]http://www.x86-64.org. | |
8858 + The compiler now supports MMX, 3DNow!, SSE, and SSE2 | |
8859 instructions. Options -mmmx, -m3dnow, -msse, and -msse2 will | |
8860 enable the respective instruction sets. Intel C++ compatible | |
8861 MMX/3DNow!/SSE intrinsics are implemented. SSE2 intrinsics | |
8862 will be added in next major release. | |
8863 + Following those improvements, targets for Pentium MMX, K6-2, | |
8864 K6-3, Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were | |
8865 added. Refer to the documentation on -march= and -mcpu= | |
8866 options for details. | |
8867 + For those targets that support it, -mfpmath=sse will cause the | |
8868 compiler to generate SSE/SSE2 instructions for floating point | |
8869 math instead of x87 instructions. Usually, this will lead to | |
8870 quicker code -- especially on the Pentium 4. Note that only | |
8871 scalar floating point instructions are used and GCC does not | |
8872 exploit SIMD features yet. | |
8873 + Prefetch support has been added to the Pentium III, Pentium 4, | |
8874 K6-2, K6-3, and Athlon series. | |
8875 + Code generated for floating point to integer conversions has | |
8876 been improved leading to better performance of many 3D | |
8877 applications. | |
8878 * The PowerPC back end has added 64-bit PowerPC GNU/Linux support. | |
8879 * C++ support for AIX has been improved. | |
8880 * Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the | |
8881 PowerPC port supporting the AltiVec programming model (SIMD). The | |
8882 support, though presently useful, is experimental and is expected | |
8883 to stabilize for 3.2. The support is written to conform to | |
8884 Motorola's AltiVec specs. See -maltivec. | |
8885 | |
8886 Obsolete Systems | |
8887 | |
8888 Support for a number of older systems has been declared obsolete in GCC | |
8889 3.1. Unless there is activity to revive them, the next release of GCC | |
8890 will have their sources permanently removed. | |
8891 | |
8892 All configurations of the following processor architectures have been | |
8893 declared obsolete: | |
8894 * MIL-STD-1750A, 1750a-*-* | |
8895 * AMD A29k, a29k-*-* | |
8896 * Convex, c*-convex-* | |
8897 * Clipper, clipper-*-* | |
8898 * Elxsi, elxsi-*-* | |
8899 * Intel i860, i860-*-* | |
8900 * Sun picoJava, pj-*-* and pjl-*-* | |
8901 * Western Electric 32000, we32k-*-* | |
8902 | |
8903 Most configurations of the following processor architectures have been | |
8904 declared obsolete, but we are preserving a few systems which may have | |
8905 active developers. It is unlikely that the remaining systems will | |
8906 survive much longer unless we see definite signs of port activity. | |
8907 * Motorola 88000 except | |
8908 + Generic a.out, m88k-*-aout* | |
8909 + Generic SVR4, m88k-*-sysv4 | |
8910 + OpenBSD, m88k-*-openbsd* | |
8911 * NS32k except | |
8912 + NetBSD, ns32k-*-netbsd* | |
8913 + OpenBSD, ns32k-*-openbsd*. | |
8914 * ROMP except | |
8915 + OpenBSD, romp-*-openbsd*. | |
8916 | |
8917 Finally, only some configurations of these processor architectures are | |
8918 being obsoleted. | |
8919 * Alpha: | |
8920 + OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka | |
8921 alpha*-*-osf[45], are still supported.) | |
8922 * ARM: | |
8923 + RISCiX, arm-*-riscix*. | |
8924 * i386: | |
8925 + 386BSD, i?86-*-bsd* | |
8926 + Chorus, i?86-*-chorusos* | |
8927 + DG/UX, i?86-*-dgux* | |
8928 + FreeBSD 1.x, i?86-*-freebsd1.* | |
8929 + IBM AIX, i?86-*-aix* | |
8930 + ISC UNIX, i?86-*-isc* | |
8931 + Linux with pre-BFD linker, i?86-*-linux*oldld* | |
8932 + NEXTstep, i?86-next-* | |
8933 + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose* | |
8934 + RTEMS/coff, i?86-*-rtemscoff* | |
8935 + RTEMS/go32, i?86-go32-rtems* | |
8936 + Sequent/BSD, i?86-sequent-bsd* | |
8937 + Sequent/ptx before version 3, i?86-sequent-ptx[12]* and | |
8938 i?86-sequent-sysv3* | |
8939 + SunOS, i?86-*-sunos* | |
8940 * Motorola 68000: | |
8941 + Altos, m68[k0]*-altos-* | |
8942 + Apollo, m68[k0]*-apollo-* | |
8943 + Apple A/UX, m68[k0]*-apple-* | |
8944 + Bull, m68[k0]*-bull-* | |
8945 + Convergent, m68[k0]*-convergent-* | |
8946 + Generic SVR3, m68[k0]*-*-sysv3* | |
8947 + ISI, m68[k0]*-isi-* | |
8948 + LynxOS, m68[k0]*-*-lynxos* | |
8949 + NEXT, m68[k0]*-next-* | |
8950 + RTEMS/coff, m68[k0]*-*-rtemscoff* | |
8951 + Sony, m68[k0]*-sony-* | |
8952 * MIPS: | |
8953 + DEC Ultrix, mips-*-ultrix* and mips-dec-* | |
8954 + Generic BSD, mips-*-bsd* | |
8955 + Generic System V, mips-*-sysv* | |
8956 + IRIX before version 5, mips-sgi-irix[1234]* | |
8957 + RiscOS, mips-*-riscos* | |
8958 + Sony, mips-sony-* | |
8959 + Tandem, mips-tandem-* | |
8960 * SPARC: | |
8961 + RTEMS/a.out, sparc-*-rtemsaout*. | |
8962 | |
8963 Documentation improvements | |
8964 | |
8965 * The old manual ("Using and Porting the GNU Compiler Collection") | |
8966 has been replaced by a users manual ("Using the GNU Compiler | |
8967 Collection") and a separate internals reference manual ("GNU | |
8968 Compiler Collection Internals"). | |
8969 * More complete and much improved documentation about GCC's internal | |
8970 representation used by the C and C++ front ends. | |
8971 * Many cleanups and improvements in general. | |
8972 | |
8973 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There | |
8974 are also [14]other ways to contact the FSF. | |
8975 | |
8976 These pages are maintained by [15]the GCC team. | |
8977 | |
8978 | |
8979 For questions related to the use of GCC, please consult these web | |
8980 pages and the [16]GCC manuals. If that fails, the | |
8981 [17]gcc-help@gcc.gnu.org mailing list might help. | |
8982 Please send comments on these web pages and the development of GCC to | |
8983 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. | |
8984 All of our lists have [20]public archives. | |
8985 | |
8986 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8987 Floor, Boston, MA 02110, USA. | |
8988 | |
8989 Verbatim copying and distribution of this entire article is permitted | |
8990 in any medium, provided this notice is preserved. | |
8991 Last modified 2008-05-03 [21]Valid XHTML 1.0 | |
8992 | |
8993 References | |
8994 | |
8995 1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html | |
8996 2. http://gcc.gnu.org/news/profiledriven.html | |
8997 3. http://gcc.gnu.org/benchmarks/ | |
8998 4. http://gcc.gnu.org/gcc-3.1/c99status.html | |
8999 5. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html | |
9000 6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html | |
9001 7. http://www.adacore.com/home/ | |
9002 8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html | |
9003 9. http://www.axis.com/ | |
9004 10. http://developer.axis.com/ | |
9005 11. http://www.superh.com/ | |
9006 12. http://www.x86-64.org/ | |
9007 13. mailto:gnu@gnu.org | |
9008 14. http://www.gnu.org/home.html#ContactInfo | |
9009 15. http://gcc.gnu.org/about.html | |
9010 16. http://gcc.gnu.org/onlinedocs/ | |
9011 17. mailto:gcc-help@gcc.gnu.org | |
9012 18. mailto:gcc@gnu.org | |
9013 19. mailto:gcc@gcc.gnu.org | |
9014 20. http://gcc.gnu.org/lists.html | |
9015 21. http://validator.w3.org/check/referer | |
9016 ====================================================================== | |
9017 http://gcc.gnu.org/gcc-3.0/gcc-3.0.html | |
9018 GCC 3.0.4 | |
9019 | |
9020 February 20, 2002 | |
9021 | |
9022 The [1]GNU project and the GCC developers are pleased to announce the | |
9023 release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0 | |
9024 series. | |
9025 | |
9026 GCC used to stand for the GNU C Compiler, but since the compiler | |
9027 supports several other languages aside from C, it now stands for the | |
9028 GNU Compiler Collection. | |
9029 | |
9030 GCC 3.0.x has several new optimizations, new targets, new languages and | |
9031 many other new features, relative to GCC 2.95.x. See the [2]new | |
9032 features page for a more complete list. | |
9033 | |
9034 A list of [3]successful builds is updated as new information becomes | |
9035 available. | |
9036 | |
9037 The GCC developers would like to thank the numerous people that have | |
9038 contributed new features, test results, bug fixes, etc to GCC. This | |
9039 [4]amazing group of volunteers is what makes GCC successful. | |
9040 | |
9041 And finally, we can't in good conscience fail to mention some | |
9042 [5]caveats to using GCC 3.0.x. | |
9043 | |
9044 For additional information about GCC please refer to the [6]GCC project | |
9045 web site or contact the [7]GCC development mailing list. | |
9046 | |
9047 To obtain GCC please use [8]our mirror sites, or our CVS server. | |
9048 __________________________________________________________________ | |
9049 | |
9050 Previous 3.0.x Releases | |
9051 | |
9052 December 20, 2001: GCC 3.0.3 has been released. | |
9053 October 25, 2001: GCC 3.0.2 has been released. | |
9054 August 20, 2001: GCC 3.0.1 has been released. | |
9055 June 18, 2001: GCC 3.0 has been released. | |
9056 | |
9057 Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There | |
9058 are also [10]other ways to contact the FSF. | |
9059 | |
9060 These pages are maintained by [11]the GCC team. | |
9061 | |
9062 | |
9063 For questions related to the use of GCC, please consult these web | |
9064 pages and the [12]GCC manuals. If that fails, the | |
9065 [13]gcc-help@gcc.gnu.org mailing list might help. | |
9066 Please send comments on these web pages and the development of GCC to | |
9067 our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. | |
9068 All of our lists have [16]public archives. | |
9069 | |
9070 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9071 Floor, Boston, MA 02110, USA. | |
9072 | |
9073 Verbatim copying and distribution of this entire article is permitted | |
9074 in any medium, provided this notice is preserved. | |
9075 Last modified 2008-07-26 [17]Valid XHTML 1.0 | |
9076 | |
9077 References | |
9078 | |
9079 1. http://www.gnu.org/ | |
9080 2. http://gcc.gnu.org/gcc-3.0/features.html | |
9081 3. http://gcc.gnu.org/gcc-3.0/buildstat.html | |
9082 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
9083 5. http://gcc.gnu.org/gcc-3.0/caveats.html | |
9084 6. http://gcc.gnu.org/index.html | |
9085 7. mailto:gcc@gcc.gnu.org | |
9086 8. http://gcc.gnu.org/mirrors.html | |
9087 9. mailto:gnu@gnu.org | |
9088 10. http://www.gnu.org/home.html#ContactInfo | |
9089 11. http://gcc.gnu.org/about.html | |
9090 12. http://gcc.gnu.org/onlinedocs/ | |
9091 13. mailto:gcc-help@gcc.gnu.org | |
9092 14. mailto:gcc@gnu.org | |
9093 15. mailto:gcc@gcc.gnu.org | |
9094 16. http://gcc.gnu.org/lists.html | |
9095 17. http://validator.w3.org/check/referer | |
9096 ====================================================================== | |
9097 http://gcc.gnu.org/gcc-3.0/features.html | |
9098 GCC 3.0 New Features | |
9099 | |
9100 Additional changes in GCC 3.0.4 | |
9101 | |
9102 * GCC 3.0 now supports newer versions of the [1]NetBSD operating | |
9103 system, which use the ELF object file format, on x86 processors. | |
9104 * Correct debugging information is generated from functions that have | |
9105 lines from multiple files (e.g. yacc output). | |
9106 * A fix for whitespace handling in the -traditional preprocessor, | |
9107 which can affect Fortran. | |
9108 * Fixes to the exception handling runtime. | |
9109 * More fixes for bad code generation in C++. | |
9110 * A fix for shared library generation under AIX 4.3. | |
9111 * Documentation updates. | |
9112 * Port of GCC to Tensilica's Xtensa processor contributed. | |
9113 * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). | |
9114 | |
9115 Additional changes in GCC 3.0.3 | |
9116 | |
9117 * A fix to correct an accidental change to the PowerPC ABI. | |
9118 * Fixes for bad code generation on a variety of architectures. | |
9119 * Improvements to the debugging information generated for C++ | |
9120 classes. | |
9121 * Fixes for bad code generation in C++. | |
9122 * A fix to avoid crashes in the C++ demangler. | |
9123 * A fix to the C++ standard library to avoid buffer overflows. | |
9124 * Miscellaneous improvements for a variety of architectures. | |
9125 | |
9126 Additional changes in GCC 3.0.2 | |
9127 | |
9128 * Fixes for bad code generation during loop unrolling. | |
9129 * Fixes for bad code generation by the sibling call optimization. | |
9130 * Minor improvements to x86 code generation. | |
9131 * Implementation of function descriptors in C++ vtables for IA64. | |
9132 * Numerous minor bug-fixes. | |
9133 | |
9134 Additional changes in GCC 3.0.1 | |
9135 | |
9136 * C++ fixes for incorrect code-generation. | |
9137 * Improved cross-compiling support for the C++ standard library. | |
9138 * Fixes for some embedded targets that worked in GCC 2.95.3, but not | |
9139 in GCC 3.0. | |
9140 * Fixes for various exception-handling bugs. | |
9141 * A port to the S/390 architecture. | |
9142 | |
9143 General Optimizer Improvements | |
9144 | |
9145 * [2]Basic block reordering pass. | |
9146 * New if-conversion pass with support for conditional (predicated) | |
9147 execution. | |
9148 * New tail call and sibling call elimination optimizations. | |
9149 * New register renaming pass. | |
9150 * New (experimental) [3]static single assignment (SSA) representation | |
9151 support. | |
9152 * New dead-code elimination pass implemented using the SSA | |
9153 representation. | |
9154 * [4]Global null pointer test elimination. | |
9155 * [5]Global code hoisting/unification. | |
9156 * More builtins and optimizations for stdio.h, string.h and old BSD | |
9157 functions, as well as for ISO C99 functions. | |
9158 * New builtin __builtin_expect for giving hints to the branch | |
9159 predictor. | |
9160 | |
9161 New Languages and Language specific improvements | |
9162 | |
9163 * The GNU Compiler for the Java(TM) language (GCJ) is now integrated | |
9164 and supported, including the run-time library containing most | |
9165 common non-GUI Java classes, a bytecode interpreter, and the Boehm | |
9166 conservative garbage collector. Many bugs have been fixed. GCJ can | |
9167 compile Java source or Java bytecodes to either native code or Java | |
9168 class files, and supports native methods written in either the | |
9169 standard JNI or the more efficient and convenient CNI. | |
9170 * Here is a [6]partial list of C++ improvements, both new features | |
9171 and those no longer supported. | |
9172 * New C++ ABI. On the IA-64 platform GCC is capable of | |
9173 inter-operating with other IA-64 compilers. | |
9174 * The new ABI also significantly reduces the size of symbol and debug | |
9175 information. | |
9176 * New [7]C++ support library and many C++ bug fixes, vastly improving | |
9177 our conformance to the ISO C++ standard. | |
9178 * New [8]inliner for C++. | |
9179 * Rewritten C preprocessor, integrated into the C, C++ and Objective | |
9180 C compilers, with very many improvements including ISO C99 support | |
9181 and [9]improvements to dependency generation. | |
9182 * Support for more [10]ISO C99 features. | |
9183 * Many improvements to support for checking calls to format functions | |
9184 such as printf and scanf, including support for ISO C99 format | |
9185 features, extensions from the Single Unix Specification and GNU | |
9186 libc 2.2, checking of strfmon formats and features to assist in | |
9187 auditing for format string security bugs. | |
9188 * New warnings for C code that may have undefined semantics because | |
9189 of violations of sequence point rules in the C standard (such as a | |
9190 = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. | |
9191 * Additional warning option -Wfloat-equal. | |
9192 * Improvements to -Wtraditional. | |
9193 * Fortran improvements are listed in [11]the Fortran documentation. | |
9194 | |
9195 New Targets and Target Specific Improvements | |
9196 | |
9197 * New x86 back-end, generating much improved code. | |
9198 * Support for a generic i386-elf target contributed. | |
9199 * New option to emit x86 assembly code using Intel style syntax | |
9200 (-mintel-syntax). | |
9201 * HPUX 11 support contributed. | |
9202 * Improved PowerPC code generation, including scheduled prologue and | |
9203 epilogue. | |
9204 * Port of GCC to Intel's IA-64 processor contributed. | |
9205 * Port of GCC to Motorola's MCore 210 and 340 contributed. | |
9206 * New unified back-end for Arm, Thumb and StrongArm contributed. | |
9207 * Port of GCC to Intel's XScale processor contributed. | |
9208 * Port of GCC to Atmel's AVR microcontrollers contributed. | |
9209 * Port of GCC to Mitsubishi's D30V processor contributed. | |
9210 * Port of GCC to Matsushita's AM33 processor (a member of the MN10300 | |
9211 processor family) contributed. | |
9212 * Port of GCC to Fujitsu's FR30 processor contributed. | |
9213 * Port of GCC to Motorola's 68HC11 and 68HC12 processors contributed. | |
9214 * Port of GCC to Sun's picoJava processor core contributed. | |
9215 | |
9216 Documentation improvements | |
9217 | |
9218 * Substantially rewritten and improved C preprocessor manual. | |
9219 * Many improvements to other documentation. | |
9220 * Manpages for gcc, cpp and gcov are now generated automatically from | |
9221 the master Texinfo manual, eliminating the problem of manpages | |
9222 being out of date. (The generated manpages are only extracts from | |
9223 the full manual, which is provided in Texinfo form, from which | |
9224 info, HTML, other formats and a printed manual can be generated.) | |
9225 * Generated info files are included in the release tarballs alongside | |
9226 their Texinfo sources, avoiding problems on some platforms with | |
9227 building makeinfo as part of the GCC distribution. | |
9228 | |
9229 Other significant improvements | |
9230 | |
9231 * Garbage collection used internally by the compiler for most memory | |
9232 allocation instead of obstacks. | |
9233 * Lengauer and Tarjan algorithm used for computing dominators in the | |
9234 CFG. This algorithm can be significantly faster and more space | |
9235 efficient than our older algorithm. | |
9236 * gccbug script provided to assist in submitting bug reports to our | |
9237 bug tracking system. (Bug reports previously submitted directly to | |
9238 our mailing lists, for which you received no bug tracking number, | |
9239 should be submitted again using gccbug if you can reproduce the | |
9240 problem with GCC 3.0.) | |
9241 * The internal libgcc library is [12]built as a shared library on | |
9242 systems that support it. | |
9243 * Extensive testsuite included with GCC, with many new tests. In | |
9244 addition to tests for GCC bugs that have been fixed, many tests | |
9245 have been added for language features, compiler warnings and | |
9246 builtin functions. | |
9247 * Additional language-independent warning options -Wpacked, -Wpadded, | |
9248 -Wunreachable-code and -Wdisabled-optimization. | |
9249 * Target-independent options -falign-functions, -falign-loops and | |
9250 -falign-jumps. | |
9251 | |
9252 Plus a great many bug fixes and almost all the [13]features found in | |
9253 GCC 2.95. | |
9254 | |
9255 Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There | |
9256 are also [15]other ways to contact the FSF. | |
9257 | |
9258 These pages are maintained by [16]the GCC team. | |
9259 | |
9260 | |
9261 For questions related to the use of GCC, please consult these web | |
9262 pages and the [17]GCC manuals. If that fails, the | |
9263 [18]gcc-help@gcc.gnu.org mailing list might help. | |
9264 Please send comments on these web pages and the development of GCC to | |
9265 our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org. | |
9266 All of our lists have [21]public archives. | |
9267 | |
9268 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9269 Floor, Boston, MA 02110, USA. | |
9270 | |
9271 Verbatim copying and distribution of this entire article is permitted | |
9272 in any medium, provided this notice is preserved. | |
9273 Last modified 2007-07-25 [22]Valid XHTML 1.0 | |
9274 | |
9275 References | |
9276 | |
9277 1. http://www.netbsd.org/ | |
9278 2. http://gcc.gnu.org/news/reorder.html | |
9279 3. http://gcc.gnu.org/news/ssa.html | |
9280 4. http://gcc.gnu.org/news/null.html | |
9281 5. http://gcc.gnu.org/news/unify.html | |
9282 6. http://gcc.gnu.org/gcc-3.0/c++features.html | |
9283 7. http://gcc.gnu.org/libstdc++/ | |
9284 8. http://gcc.gnu.org/news/inlining.html | |
9285 9. http://gcc.gnu.org/news/dependencies.html | |
9286 10. http://gcc.gnu.org/gcc-3.0/c99status.html | |
9287 11. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html | |
9288 12. http://gcc.gnu.org/gcc-3.0/libgcc.html | |
9289 13. http://gcc.gnu.org/gcc-2.95/features.html | |
9290 14. mailto:gnu@gnu.org | |
9291 15. http://www.gnu.org/home.html#ContactInfo | |
9292 16. http://gcc.gnu.org/about.html | |
9293 17. http://gcc.gnu.org/onlinedocs/ | |
9294 18. mailto:gcc-help@gcc.gnu.org | |
9295 19. mailto:gcc@gnu.org | |
9296 20. mailto:gcc@gcc.gnu.org | |
9297 21. http://gcc.gnu.org/lists.html | |
9298 22. http://validator.w3.org/check/referer | |
9299 ====================================================================== | |
9300 http://gcc.gnu.org/gcc-3.0/caveats.html | |
9301 GCC 3.0 Caveats | |
9302 | |
9303 * -fstrict-aliasing is now part of -O2 and higher optimization | |
9304 levels. This allows the compiler to assume the strictest aliasing | |
9305 rules applicable to the language being compiled. For C and C++, | |
9306 this activates optimizations based on the type of expressions. This | |
9307 optimization may thus break old, non-compliant code. | |
9308 * Enumerations are now properly promoted to int in function | |
9309 parameters and function returns. Normally this change is not | |
9310 visible, but when using -fshort-enums this is an ABI change. | |
9311 * The undocumented extension that allowed C programs to have a label | |
9312 at the end of a compound statement has been deprecated and may be | |
9313 removed in a future version. Programs that now generate a warning | |
9314 about this may be fixed by adding a null statement (a single | |
9315 semicolon) after the label. | |
9316 * The poorly documented extension that allowed string constants in C, | |
9317 C++ and Objective C to contain unescaped newlines has been | |
9318 deprecated and may be removed in a future version. Programs using | |
9319 this extension may be fixed in several ways: the bare newline may | |
9320 be replaced by \n, or preceded by \n\, or string concatenation may | |
9321 be used with the bare newline preceded by \n" and " placed at the | |
9322 start of the next line. | |
9323 * The Chill compiler is not included in GCC 3.0, because of the lack | |
9324 of a volunteer to convert it to use garbage collection. | |
9325 * Certain non-standard iostream methods from earlier versions of | |
9326 libstdc++ are not included in libstdc++ v3, i.e. filebuf::attach, | |
9327 ostream::form, and istream::gets. | |
9328 * The new C++ ABI is not yet fully supported by current (as of | |
9329 2001-07-01) releases and development versions of GDB, or any | |
9330 earlier versions. There is a problem setting breakpoints by line | |
9331 number, and other related issues that have been fixed in GCC 3.0 | |
9332 but not yet handled in GDB: | |
9333 [1]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html | |
9334 | |
9335 Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There | |
9336 are also [3]other ways to contact the FSF. | |
9337 | |
9338 These pages are maintained by [4]the GCC team. | |
9339 | |
9340 | |
9341 For questions related to the use of GCC, please consult these web | |
9342 pages and the [5]GCC manuals. If that fails, the | |
9343 [6]gcc-help@gcc.gnu.org mailing list might help. | |
9344 Please send comments on these web pages and the development of GCC to | |
9345 our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. | |
9346 All of our lists have [9]public archives. | |
9347 | |
9348 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9349 Floor, Boston, MA 02110, USA. | |
9350 | |
9351 Verbatim copying and distribution of this entire article is permitted | |
9352 in any medium, provided this notice is preserved. | |
9353 Last modified 2008-05-07 [10]Valid XHTML 1.0 | |
9354 | |
9355 References | |
9356 | |
9357 1. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html | |
9358 2. mailto:gnu@gnu.org | |
9359 3. http://www.gnu.org/home.html#ContactInfo | |
9360 4. http://gcc.gnu.org/about.html | |
9361 5. http://gcc.gnu.org/onlinedocs/ | |
9362 6. mailto:gcc-help@gcc.gnu.org | |
9363 7. mailto:gcc@gnu.org | |
9364 8. mailto:gcc@gcc.gnu.org | |
9365 9. http://gcc.gnu.org/lists.html | |
9366 10. http://validator.w3.org/check/referer | |
9367 ====================================================================== | |
9368 http://gcc.gnu.org/gcc-2.95/index.html | |
9369 GCC 2.95 | |
9370 | |
9371 March 16, 2001: The GNU project and the GCC developers are pleased to | |
9372 announce the release of GCC version 2.95.3. | |
9373 | |
9374 Release History | |
9375 | |
9376 GCC 2.95.3 | |
9377 March 16, 2001 | |
9378 | |
9379 GCC 2.95.2 | |
9380 October 27, 1999 | |
9381 | |
9382 GCC 2.95.1 | |
9383 August 19, 1999 | |
9384 | |
9385 GCC 2.95 | |
9386 July 31, 1999. This is the first release of GCC since the April | |
9387 1999 GCC/EGCS reunification and includes nearly a year's worth | |
9388 of new development and bugfixes. | |
9389 | |
9390 References and Acknowledgements | |
9391 | |
9392 GCC used to stand for the GNU C Compiler, but since the compiler | |
9393 supports several other languages aside from C, it now stands for the | |
9394 GNU Compiler Collection. | |
9395 | |
9396 The whole suite has been extensively [1]regression tested and | |
9397 [2]package tested. It should be reliable and suitable for widespread | |
9398 use. | |
9399 | |
9400 The compiler has several new optimizations, new targets, new languages | |
9401 and other new features. See the [3]new features page for a more | |
9402 complete list of new features found in the GCC 2.95 releases. | |
9403 | |
9404 The sources include installation instructions in both HTML and | |
9405 plaintext forms in the install directory in the distribution. However, | |
9406 the most up to date [4]installation instructions and [5]build/test | |
9407 status are on the web pages. We will update those pages as new | |
9408 information becomes available. | |
9409 | |
9410 The GCC developers would like to thank the numerous people that have | |
9411 contributed new features, test results, bugfixes, etc to GCC. This | |
9412 [6]amazing group of volunteers is what makes GCC successful. | |
9413 | |
9414 And finally, we can't in good conscience fail to mention some | |
9415 [7]caveats to using GCC 2.95. | |
9416 | |
9417 Download GCC 2.95 from one of our many [8]mirror sites. | |
9418 | |
9419 For additional information about GCC please see the [9]GCC project web | |
9420 server or contact the [10]GCC development mailing list. | |
9421 | |
9422 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
9423 are also [12]other ways to contact the FSF. | |
9424 | |
9425 These pages are maintained by [13]the GCC team. | |
9426 | |
9427 | |
9428 For questions related to the use of GCC, please consult these web | |
9429 pages and the [14]GCC manuals. If that fails, the | |
9430 [15]gcc-help@gcc.gnu.org mailing list might help. | |
9431 Please send comments on these web pages and the development of GCC to | |
9432 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
9433 All of our lists have [18]public archives. | |
9434 | |
9435 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9436 Floor, Boston, MA 02110, USA. | |
9437 | |
9438 Verbatim copying and distribution of this entire article is permitted | |
9439 in any medium, provided this notice is preserved. | |
9440 Last modified 2008-07-26 [19]Valid XHTML 1.0 | |
9441 | |
9442 References | |
9443 | |
9444 1. http://gcc.gnu.org/gcc-2.95/regress.html | |
9445 2. http://gcc.gnu.org/gcc-2.95/othertest.html | |
9446 3. http://gcc.gnu.org/gcc-2.95/features.html | |
9447 4. http://gcc.gnu.org/install/ | |
9448 5. http://gcc.gnu.org/gcc-2.95/buildstat.html | |
9449 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
9450 7. http://gcc.gnu.org/gcc-2.95/caveats.html | |
9451 8. http://gcc.gnu.org/mirrors.html | |
9452 9. http://gcc.gnu.org/index.html | |
9453 10. mailto:gcc@gcc.gnu.org | |
9454 11. mailto:gnu@gnu.org | |
9455 12. http://www.gnu.org/home.html#ContactInfo | |
9456 13. http://gcc.gnu.org/about.html | |
9457 14. http://gcc.gnu.org/onlinedocs/ | |
9458 15. mailto:gcc-help@gcc.gnu.org | |
9459 16. mailto:gcc@gnu.org | |
9460 17. mailto:gcc@gcc.gnu.org | |
9461 18. http://gcc.gnu.org/lists.html | |
9462 19. http://validator.w3.org/check/referer | |
9463 ====================================================================== | |
9464 http://gcc.gnu.org/gcc-2.95/features.html | |
9465 GCC 2.95 New Features | |
9466 | |
9467 * General Optimizer Improvements: | |
9468 + [1]Localized register spilling to improve speed and code | |
9469 density especially on small register class machines. | |
9470 + [2]Global CSE using lazy code motion algorithms. | |
9471 + [3]Improved global constant/copy propagation. | |
9472 + [4]Improved control flow graph analysis and manipulation. | |
9473 + [5]Local dead store elimination. | |
9474 + [6]Memory Load hoisting/store sinking in loops. | |
9475 + [7]Type based alias analysis is enabled by default. Note this | |
9476 feature will expose bugs in the Linux kernel. Please refer to | |
9477 the FAQ (as shipped with GCC 2.95) for additional information | |
9478 on this issue. | |
9479 + Major revamp of GIV detection, combination and simplification | |
9480 to improve loop performance. | |
9481 + Major improvements to register allocation and reloading. | |
9482 * New Languages and Language specific improvements | |
9483 + [8]Many C++ improvements. | |
9484 + [9]Many Fortran improvements. | |
9485 + [10]Java front-end has been integrated. [11]runtime library is | |
9486 available separately. | |
9487 + [12]ISO C99 support | |
9488 + [13]Chill front-end and runtime has been integrated. | |
9489 + Boehm garbage collector support in libobjc. | |
9490 + More support for various pragmas which appear in vendor | |
9491 include files | |
9492 * New Targets and Target Specific Improvements | |
9493 + [14]SPARC backend rewrite. | |
9494 + -mschedule=8000 will optimize code for PA8000 class | |
9495 processors; -mpa-risc-2-0 will generate code for PA2.0 | |
9496 processors | |
9497 + Various micro-optimizations for the ia32 port. K6 | |
9498 optimizations | |
9499 + Compiler will attempt to align doubles in the stack on the | |
9500 ia32 port | |
9501 + Alpha EV6 support | |
9502 + PowerPC 750 | |
9503 + RS6000/PowerPC: -mcpu=401 was added as an alias for -mcpu=403. | |
9504 -mcpu=e603e was added to do -mcpu=603e and -msoft-float. | |
9505 + c3x, c4x | |
9506 + HyperSPARC | |
9507 + SparcLite86x | |
9508 + sh4 | |
9509 + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix, | |
9510 arm-linux) | |
9511 + vxWorks targets include support for vxWorks threads | |
9512 + StrongARM 110 and ARM9 support added. ARM Scheduling | |
9513 parameters rewritten. | |
9514 + Various changes to the MIPS port to avoid assembler macros, | |
9515 which in turn improves performance | |
9516 + Various performance improvements to the i960 port. | |
9517 + Major rewrite of ns32k port | |
9518 * Other significant improvements | |
9519 + [15]Ability to dump cfg information and display it using vcg. | |
9520 + The new faster scheme for fixing vendor header files is | |
9521 enabled by default. | |
9522 + Experimental internationalization support. | |
9523 + multibyte character support | |
9524 + Some compile-time speedups for pathological problems | |
9525 + Better support for complex types | |
9526 * Plus the usual mountain of bugfixes | |
9527 * Core compiler is based on the gcc2 development tree from Sept 30, | |
9528 1998, so we have all of the [16]features found in GCC 2.8. | |
9529 | |
9530 Additional Changes in GCC 2.95.1 | |
9531 | |
9532 * Generic bugfixes and improvements | |
9533 + Various documentation fixes related to the GCC/EGCS merger. | |
9534 + Fix memory management bug which could lead to spurious aborts, | |
9535 core dumps or random parsing errors in the compiler. | |
9536 + Fix a couple bugs in the dwarf1 and dwarf2 debug record | |
9537 support. | |
9538 + Fix infinite loop in the CSE optimizer. | |
9539 + Avoid undefined behavior in compiler FP emulation code | |
9540 + Fix install problem when prefix is overridden on the make | |
9541 install command. | |
9542 + Fix problem with unwanted installation of assert.h on some | |
9543 systems. | |
9544 + Fix problem with finding the wrong assembler in a single tree | |
9545 build. | |
9546 + Avoid increasing the known alignment of a register that is | |
9547 already known to be a pointer. | |
9548 * Platform specific bugfixes and improvements | |
9549 + Codegen bugfix for prologue/epilogue for cpu32 target. | |
9550 + Fix long long code generation bug for the Coldfire target. | |
9551 + Fix various aborts in the SH compiler. | |
9552 + Fix bugs in libgcc support library for the SH. | |
9553 + Fix alpha ev6 code generation bug. | |
9554 + Fix problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on | |
9555 AIX platforms. | |
9556 + Fix -fpic code generation bug for rs6000/ppc svr4 targets. | |
9557 + Fix varargs/stdarg code generation bug for rs6000/ppc svr4 | |
9558 targets. | |
9559 + Fix weak symbol handling for rs6000/ppc svr4 targets. | |
9560 + Fix various problems with 64bit code generation for the | |
9561 rs6000/ppc port. | |
9562 + Fix codegen bug which caused tetex to be mis-compiled on the | |
9563 x86. | |
9564 + Fix compiler abort in new cfg code exposed by x86 port. | |
9565 + Fix out of range array reference in code convert flat | |
9566 registers to the x87 stacked FP register file. | |
9567 + Fix minor vxworks configuration bug. | |
9568 + Fix return type of bsearch for SunOS 4.x. | |
9569 * Language & Runtime specific fixes. | |
9570 + The G++ signature extension has been deprecated. It will be | |
9571 removed in the next major release of G++. Use of signatures | |
9572 will result in a warning from the compiler. | |
9573 + Several bugs relating to templates and namespaces were fixed. | |
9574 + A bug that caused crashes when combining templates with -g on | |
9575 DWARF1 platforms was fixed. | |
9576 + Pointers-to-members, virtual functions, and multiple | |
9577 inheritance should now work together correctly. | |
9578 + Some code-generation bugs relating to function try blocks were | |
9579 fixed. | |
9580 + G++ is a little bit more lenient with certain archaic | |
9581 constructs than in GCC 2.95. | |
9582 + Fix to prevent shared library version #s from bring truncated | |
9583 to 1 digit | |
9584 + Fix missing std:: in the libstdc++ library. | |
9585 + Fix stream locking problems in libio. | |
9586 + Fix problem in java compiler driver. | |
9587 | |
9588 Additional Changes in GCC 2.95.2 | |
9589 | |
9590 The -fstrict-aliasing is not enabled by default for GCC 2.95.2. While | |
9591 the optimizations performed by -fstrict-aliasing are valid according to | |
9592 the C and C++ standards, the optimization have caused some problems, | |
9593 particularly with old non-conforming code. | |
9594 | |
9595 The GCC developers are experimenting with ways to warn users about code | |
9596 which violates the C/C++ standards, but those warnings are not ready | |
9597 for widespread use at this time. Rather than wait for those warnings | |
9598 the GCC developers have chosen to disable -fstrict-aliasing by default | |
9599 for the GCC 2.95.2 release. | |
9600 | |
9601 We strongly encourage developers to find and fix code which violates | |
9602 the C/C++ standards as -fstrict-aliasing may be enabled by default in | |
9603 future releases. Use the option -fstrict-aliasing to re-enable these | |
9604 optimizations. | |
9605 * Generic bugfixes and improvements | |
9606 + Fix incorrectly optimized memory reference in global common | |
9607 subexpression elimination (GCSE) optimization pass. | |
9608 + Fix code generation bug in regmove.c in which it could | |
9609 incorrectly change a "const" value. | |
9610 + Fix bug in optimization of conditionals involving volatile | |
9611 memory references. | |
9612 + Avoid over-allocation of stack space for some procedures. | |
9613 + Fixed bug in the compiler which caused incorrect optimization | |
9614 of an obscure series of bit manipulations, shifts and | |
9615 arithmetic. | |
9616 + Fixed register allocator bug which caused teTeX to be | |
9617 mis-compiled on SPARC targets. | |
9618 + Avoid incorrect optimization of degenerate case statements for | |
9619 certain targets such as the ARM. | |
9620 + Fix out of range memory reference in the jump optimizer. | |
9621 + Avoid dereferencing null pointer in fix-header. | |
9622 + Fix test for GCC specific features so that it is possible to | |
9623 bootstrap with gcc-2.6.2 and older versions of GCC. | |
9624 + Fix typo in scheduler which could potentially cause out of | |
9625 range memory accesses. | |
9626 + Avoid incorrect loop reversal which caused incorrect code for | |
9627 certain loops on PowerPC targets. | |
9628 + Avoid incorrect optimization of switch statements on certain | |
9629 targets (for example the ARM). | |
9630 * Platform specific bugfixes and improvements | |
9631 + Work around bug in Sun V5.0 compilers which caused bootstrap | |
9632 comparison failures on SPARC targets. | |
9633 + Fix SPARC backend bug which caused aborts in final.c. | |
9634 + Fix sparc-hal-solaris2* configuration fragments. | |
9635 + Fix bug in sparc block profiling. | |
9636 + Fix obscure code generation bug for the PARISC targets. | |
9637 + Define __STDC_EXT__ for HPUX configurations. | |
9638 + Various POWERPC64 code generation bugfixes. | |
9639 + Fix abort for PPC targets using ELF (ex GNU/Linux). | |
9640 + Fix collect2 problems for AIX targets. | |
9641 + Correct handling of .file directive for PPC targets. | |
9642 + Fix bug in fix_trunc x86 patterns. | |
9643 + Fix x86 port to correctly pop the FP stack for functions that | |
9644 return structures in memory. | |
9645 + Fix minor bug in strlen x86 pattern. | |
9646 + Use stabs debugging instead of dwarf1 for x86-solaris targets. | |
9647 + Fix template repository code to handle leading underscore in | |
9648 mangled names. | |
9649 + Fix weak/weak alias support for OpenBSD. | |
9650 + GNU/Linux for the ARM has C++ compatible include files. | |
9651 * Language & Runtime specific fixes. | |
9652 + Fix handling of constructor attribute in the C front-end which | |
9653 caused problems building the Chill runtime library on some | |
9654 targets. | |
9655 + Fix minor problem merging type qualifiers in the C front-end. | |
9656 + Fix aliasing bug for pointers and references (C/C++). | |
9657 + Fix incorrect "non-constant initializer bug" when -traditional | |
9658 or -fwritable-strings is enabled. | |
9659 + Fix build error for Chill front-end on SunOS. | |
9660 + Do not complain about duplicate instantiations when using | |
9661 -frepo (C++). | |
9662 + Fix array bounds handling in C++ front-end which caused | |
9663 problems with dwarf debugging information in some | |
9664 circumstances. | |
9665 + Fix minor namespace problem. | |
9666 + Fix problem linking java programs. | |
9667 | |
9668 Additional Changes in GCC 2.95.3 | |
9669 | |
9670 * Generic bugfixes and improvements | |
9671 + Fix numerous problems that caused incorrect optimization in | |
9672 the register reloading code. | |
9673 + Fix numerous problems that caused incorrect optimization in | |
9674 the loop optimizer. | |
9675 + Fix aborts in the functions build_insn_chain and scan_loops | |
9676 under some circumstances. | |
9677 + Fix an alias analysis bug. | |
9678 + Fix an infinite compilation bug in the combiner. | |
9679 + A few problems with complex number support have been fixed. | |
9680 + It is no longer possible for gcc to act as a fork bomb when | |
9681 installed incorrectly. | |
9682 + The -fpack-struct option should be recognized now. | |
9683 + Fixed a bug that caused incorrect code to be generated due to | |
9684 a lost stack adjustment. | |
9685 * Platform specific bugfixes and improvements | |
9686 + Support building ARM toolchains hosted on Windows. | |
9687 + Fix attribute calculations in ARM toolchains. | |
9688 + arm-linux support has been improved. | |
9689 + Fix a PIC failure on sparc targets. | |
9690 + On ix86 targets, the regparm attribute should now work | |
9691 reliably. | |
9692 + Several updates for the h8300 port. | |
9693 + Fix problem building libio with glibc 2.2. | |
9694 | |
9695 Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There | |
9696 are also [18]other ways to contact the FSF. | |
9697 | |
9698 These pages are maintained by [19]the GCC team. | |
9699 | |
9700 | |
9701 For questions related to the use of GCC, please consult these web | |
9702 pages and the [20]GCC manuals. If that fails, the | |
9703 [21]gcc-help@gcc.gnu.org mailing list might help. | |
9704 Please send comments on these web pages and the development of GCC to | |
9705 our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. | |
9706 All of our lists have [24]public archives. | |
9707 | |
9708 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9709 Floor, Boston, MA 02110, USA. | |
9710 | |
9711 Verbatim copying and distribution of this entire article is permitted | |
9712 in any medium, provided this notice is preserved. | |
9713 Last modified 2008-06-15 [25]Valid XHTML 1.0 | |
9714 | |
9715 References | |
9716 | |
9717 1. http://gcc.gnu.org/news/spill.html | |
9718 2. http://gcc.gnu.org/news/lcm.html | |
9719 3. http://gcc.gnu.org/news/cprop.html | |
9720 4. http://gcc.gnu.org/news/cfg.html | |
9721 5. http://gcc.gnu.org/news/dse.html | |
9722 6. http://gcc.gnu.org/news/hoist.html | |
9723 7. http://gcc.gnu.org/news/alias.html | |
9724 8. http://gcc.gnu.org/gcc-2.95/c++features.html | |
9725 9. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html | |
9726 10. http://gcc.gnu.org/java/gcj-announce.txt | |
9727 11. http://gcc.gnu.org/news/javaannounce.html | |
9728 12. http://gcc.gnu.org/c99status.html | |
9729 13. http://gcc.gnu.org/news/chill.html | |
9730 14. http://gcc.gnu.org/news/sparc.html | |
9731 15. http://gcc.gnu.org/news/egcs-vcg.html | |
9732 16. http://gcc.gnu.org/egcs-1.0/features-2.8.html | |
9733 17. mailto:gnu@gnu.org | |
9734 18. http://www.gnu.org/home.html#ContactInfo | |
9735 19. http://gcc.gnu.org/about.html | |
9736 20. http://gcc.gnu.org/onlinedocs/ | |
9737 21. mailto:gcc-help@gcc.gnu.org | |
9738 22. mailto:gcc@gnu.org | |
9739 23. mailto:gcc@gcc.gnu.org | |
9740 24. http://gcc.gnu.org/lists.html | |
9741 25. http://validator.w3.org/check/referer | |
9742 ====================================================================== | |
9743 http://gcc.gnu.org/gcc-2.95/caveats.html | |
9744 GCC 2.95 Caveats | |
9745 | |
9746 * GCC 2.95 will issue an error for invalid asm statements that had | |
9747 been silently accepted by earlier versions of the compiler. This is | |
9748 particularly noticeable when compiling older versions of the Linux | |
9749 kernel (2.0.xx). Please refer to the FAQ (as shipped with GCC 2.95) | |
9750 for more information on this issue. | |
9751 * GCC 2.95 implements type based alias analysis to disambiguate | |
9752 memory references. Some programs, particularly the Linux kernel | |
9753 violate ANSI/ISO aliasing rules and therefore may not operate | |
9754 correctly when compiled with GCC 2.95. Please refer to the FAQ (as | |
9755 shipped with GCC 2.95) for more information on this issue. | |
9756 * GCC 2.95 has a known bug in its handling of complex variables for | |
9757 64bit targets. Instead of silently generating incorrect code, GCC | |
9758 2.95 will issue a fatal error for situations it can not handle. | |
9759 This primarily affects the Fortran community as Fortran makes more | |
9760 use of complex variables than C or C++. | |
9761 * GCC 2.95 has an integrated libstdc++, but does not have an | |
9762 integrated libg++. Furthermore old libg++ releases will not work | |
9763 with GCC 2.95. You can retrieve a recent copy of libg++ from the | |
9764 [1]GCC ftp server. | |
9765 Note most C++ programs only need libstdc++. | |
9766 * Exception handling may not work with shared libraries, particularly | |
9767 on alphas, hppas, rs6000/powerpc and mips based platforms. | |
9768 Exception handling is known to work on x86 GNU/Linux platforms with | |
9769 shared libraries. | |
9770 * In general, GCC 2.95 is more rigorous about rejecting invalid C++ | |
9771 code or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0, | |
9772 or EGCS 1.1. As a result it may be necessary to fix C++ code before | |
9773 it will compile with GCC 2.95. | |
9774 * G++ is also converting toward the ISO C++ standard; as a result | |
9775 code which was previously valid (and thus accepted by other | |
9776 compilers and older versions of g++) may no longer be accepted. The | |
9777 flag -fpermissive may allow some non-conforming code to compile | |
9778 with GCC 2.95. | |
9779 * GCC 2.95 compiled C++ code is not binary compatible with EGCS | |
9780 1.1.x, EGCS 1.0.x or GCC 2.8.x. | |
9781 * GCC 2.95 does not have changes from the GCC 2.8 tree that were made | |
9782 between Sept 30, 1998 and April 30, 1999 (the official end of the | |
9783 GCC 2.8 project). Future GCC releases will include all the changes | |
9784 from the defunct GCC 2.8 sources. | |
9785 | |
9786 Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There | |
9787 are also [3]other ways to contact the FSF. | |
9788 | |
9789 These pages are maintained by [4]the GCC team. | |
9790 | |
9791 | |
9792 For questions related to the use of GCC, please consult these web | |
9793 pages and the [5]GCC manuals. If that fails, the | |
9794 [6]gcc-help@gcc.gnu.org mailing list might help. | |
9795 Please send comments on these web pages and the development of GCC to | |
9796 our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. | |
9797 All of our lists have [9]public archives. | |
9798 | |
9799 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9800 Floor, Boston, MA 02110, USA. | |
9801 | |
9802 Verbatim copying and distribution of this entire article is permitted | |
9803 in any medium, provided this notice is preserved. | |
9804 Last modified 2007-07-25 [10]Valid XHTML 1.0 | |
9805 | |
9806 References | |
9807 | |
9808 1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz | |
9809 2. mailto:gnu@gnu.org | |
9810 3. http://www.gnu.org/home.html#ContactInfo | |
9811 4. http://gcc.gnu.org/about.html | |
9812 5. http://gcc.gnu.org/onlinedocs/ | |
9813 6. mailto:gcc-help@gcc.gnu.org | |
9814 7. mailto:gcc@gnu.org | |
9815 8. mailto:gcc@gcc.gnu.org | |
9816 9. http://gcc.gnu.org/lists.html | |
9817 10. http://validator.w3.org/check/referer | |
9818 ====================================================================== | |
9819 http://gcc.gnu.org/egcs-1.1/index.html | |
9820 EGCS 1.1 | |
9821 | |
9822 September 3, 1998: We are pleased to announce the release of EGCS 1.1. | |
9823 December 1, 1998: We are pleased to announce the release of EGCS 1.1.1. | |
9824 March 15, 1999: We are pleased to announce the release of EGCS 1.1.2. | |
9825 | |
9826 EGCS is a free software project to further the development of the GNU | |
9827 compilers using an open development environment. | |
9828 | |
9829 EGCS 1.1 is a major new release of the EGCS compiler system. It has | |
9830 been [1]extensively tested and is believed to be stable and suitable | |
9831 for widespread use. | |
9832 | |
9833 EGCS 1.1 is based on an June 6, 1998 snapshot of the GCC 2.8 | |
9834 development sources; it contains all of the new features found in GCC | |
9835 2.8.1 as well as all new development from GCC up to June 6, 1998. | |
9836 | |
9837 EGCS 1.1 also contains many improvements and features not found in GCC | |
9838 or in older versions of EGCS: | |
9839 * Global common subexpression elimination and global constant/copy | |
9840 propagation (aka [2]gcse) | |
9841 * Ongoing improvements to the [3]alias analysis support to allow for | |
9842 better optimizations throughout the compiler. | |
9843 * Vastly improved [4]C++ compiler and integrated C++ runtime | |
9844 libraries. | |
9845 * Fixes for the /tmp symlink race security problems. | |
9846 * New targets including mips16, arm-thumb and 64 bit PowerPC. | |
9847 * Improvements to GNU Fortran (g77) compiler and runtime library made | |
9848 since g77 version 0.5.23. | |
9849 | |
9850 See the [5]new features page for a more complete list of new features | |
9851 found in EGCS 1.1 releases. | |
9852 | |
9853 EGCS 1.1.1 is a minor update to fix several serious problems in EGCS | |
9854 1.1: | |
9855 * General improvements and fixes | |
9856 + Avoid some stack overflows when compiling large functions. | |
9857 + Avoid incorrect loop invariant code motions. | |
9858 + Fix some core dumps on Linux kernel code. | |
9859 + Bring back the imake -Di386 and friends fix from EGCS 1.0.2. | |
9860 + Fix code generation problem in gcse. | |
9861 + Various documentation related fixes. | |
9862 * g++/libstdc++ improvements and fixes | |
9863 + MT safe EH fix for setjmp/longjmp based exception handling. | |
9864 + Fix a few bad interactions between optimization and exception | |
9865 handling. | |
9866 + Fixes for demangling of template names starting with "__". | |
9867 + Fix a bug that would fail to run destructors in some cases | |
9868 with -O2. | |
9869 + Fix 'new' of classes with virtual bases. | |
9870 + Fix crash building Qt on the Alpha. | |
9871 + Fix failure compiling WIFEXITED macro on GNU/Linux. | |
9872 + Fix some -frepo failures. | |
9873 * g77 and libf2c improvements and fixes | |
9874 + Various documentation fixes. | |
9875 + Avoid compiler crash on RAND intrinsic. | |
9876 + Fix minor bugs in makefiles exposed by BSD make programs. | |
9877 + Define _XOPEN_SOURCE for libI77 build to avoid potential | |
9878 problems on some 64-bit systems. | |
9879 + Fix problem with implicit endfile on rewind. | |
9880 + Fix spurious recursive I/O errors. | |
9881 * platform specific improvements and fixes | |
9882 + Match all versions of UnixWare7. | |
9883 + Do not assume x86 SVR4 or UnixWare targets can handle stabs. | |
9884 + Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion | |
9885 from unsigned ints to double precision floats. | |
9886 + Fix ARM ABI issue with NetBSD. | |
9887 + Fix a few arm code generation bugs. | |
9888 + Fixincludes will fix additional broken SCO OpenServer header | |
9889 files. | |
9890 + Fix a m68k backend bug which caused invalid offsets in reg+d | |
9891 addresses. | |
9892 + Fix problems with 64bit AIX 4.3 support. | |
9893 + Fix handling of long longs for varargs/stdarg functions on the | |
9894 ppc. | |
9895 + Minor fixes to CPP predefines for Windows. | |
9896 + Fix code generation problems with gpr<->fpr copies for 64bit | |
9897 ppc. | |
9898 + Fix a few coldfire code generation bugs. | |
9899 + Fix some more header file problems on SunOS 4.x. | |
9900 + Fix assert.h handling for RTEMS. | |
9901 + Fix Windows handling of TREE_SYMBOL_REFERENCED. | |
9902 + Fix x86 compiler abort in reg-stack pass. | |
9903 + Fix cygwin/windows problem with section attributes. | |
9904 + Fix Alpha code generation problem exposed by SMP Linux | |
9905 kernels. | |
9906 + Fix typo in m68k 32->64bit integer conversion. | |
9907 + Make sure target libraries build with -fPIC for PPC & Alpha | |
9908 targets. | |
9909 | |
9910 EGCS 1.1.2 is a minor update to fix several serious problems in EGCS | |
9911 1.1.1: | |
9912 * General improvements and fixes | |
9913 + Fix bug in loop optimizer which caused the SPARC (and | |
9914 potentially other) ports to segfault. | |
9915 + Fix infinite recursion in alias analysis and combiner code. | |
9916 + Fix bug in regclass preferencing. | |
9917 + Fix incorrect loop reversal which caused incorrect code to be | |
9918 generated for several targets. | |
9919 + Fix return value for builtin memcpy. | |
9920 + Reduce compile time for certain loops which exposed quadratic | |
9921 behavior in the loop optimizer. | |
9922 + Fix bug which caused volatile memory to be written multiple | |
9923 times when only one write was needed/desired. | |
9924 + Fix compiler abort in caller-save.c | |
9925 + Fix combiner bug which caused incorrect code generation for | |
9926 certain division by constant operations. | |
9927 + Fix incorrect code generation due to a bug in range check | |
9928 optimizations. | |
9929 + Fix incorrect code generation due to mis-handling of clobbered | |
9930 values in CSE. | |
9931 + Fix compiler abort/segfault due to incorrect register | |
9932 splitting when unrolling loops. | |
9933 + Fix code generation involving autoincremented addresses with | |
9934 ternary operators. | |
9935 + Work around bug in the scheduler which caused qt to be | |
9936 mis-compiled on some platforms. | |
9937 + Fix code generation problems with -fshort-enums. | |
9938 + Tighten security for temporary files. | |
9939 + Improve compile time for codes which make heavy use of | |
9940 overloaded functions. | |
9941 + Fix multiply defined constructor/destructor symbol problems. | |
9942 + Avoid setting bogus RPATH environment variable during | |
9943 bootstrap. | |
9944 + Avoid GNU-make dependencies in the texinfo subdir. | |
9945 + Install CPP wrapper script in $(prefix)/bin if --enable-cpp. | |
9946 --enable-cpp=<dirname> can be used to specify an additional | |
9947 install directory for the cpp wrapper script. | |
9948 + Fix CSE bug which caused incorrect label-label refs to appear | |
9949 on some platforms. | |
9950 + Avoid linking in EH routines from libgcc if they are not | |
9951 needed. | |
9952 + Avoid obscure bug in aliasing code. | |
9953 + Fix bug in weak symbol handling. | |
9954 * Platform-specific improvements and fixes | |
9955 + Fix detection of PPro/PII on Unixware 7. | |
9956 + Fix compiler segfault when building spec99 and other programs | |
9957 for SPARC targets. | |
9958 + Fix code-generation bugs for integer and floating point | |
9959 conditional move instructions on the PPro/PII. | |
9960 + Use fixincludes to fix byteorder problems on i?86-*-sysv. | |
9961 + Fix build failure for the arc port. | |
9962 + Fix floating point format configuration for i?86-gnu port. | |
9963 + Fix problems with hppa1.0-hp-hpux10.20 configuration when | |
9964 threads are enabled. | |
9965 + Fix coldfire code generation bugs. | |
9966 + Fix "unrecognized insn" problems for Alpha and PPC ports. | |
9967 + Fix h8/300 code generation problem with floating point values | |
9968 in memory. | |
9969 + Fix unrecognized insn problems for the m68k port. | |
9970 + Fix namespace-pollution problem for the x86 port. | |
9971 + Fix problems with old assembler on x86 NeXT systems. | |
9972 + Fix PIC code-generation problems for the SPARC port. | |
9973 + Fix minor bug with LONG_CALLS in PowerPC SVR4 support. | |
9974 + Fix minor ISO namespace violation in Alpha varargs/stdarg | |
9975 support. | |
9976 + Fix incorrect "braf" instruction usage for the SH port. | |
9977 + Fix minor bug in va-sh which prevented its use with -ansi. | |
9978 + Fix problems recognizing and supporting FreeBSD. | |
9979 + Handle OpenBSD systems correctly. | |
9980 + Minor fixincludes fix for Digital UNIX 4.0B. | |
9981 + Fix problems with ctors/dtors in SCO shared libraries. | |
9982 + Abort instead of generating incorrect code for PPro/PII | |
9983 floating point conditional moves. | |
9984 + Avoid multiply defined symbols on Linux/GNU systems using | |
9985 libc-5.4.xx. | |
9986 + Fix abort in alpha compiler. | |
9987 * Fortran-specific fixes | |
9988 + Fix the IDate intrinsic (VXT) (in libg2c) so the returned year | |
9989 is in the documented, non-Y2K-compliant range of 0-99, instead | |
9990 of being returned as 100 in the year 2000. | |
9991 + Fix the `Date_and_Time' intrinsic (in libg2c) to return the | |
9992 milliseconds value properly in Values(8). | |
9993 + Fix the `LStat' intrinsic (in libg2c) to return device-ID | |
9994 information properly in SArray(7). | |
9995 | |
9996 Each release includes installation instructions in both HTML and | |
9997 plaintext forms (see the INSTALL directory in the toplevel directory of | |
9998 the distribution). However, we also keep the most up to date | |
9999 [6]installation instructions and [7]build/test status on our web page. | |
10000 We will update those pages as new information becomes available. | |
10001 | |
10002 The EGCS project would like to thank the numerous people that have | |
10003 contributed new features, test results, bugfixes, etc. This [8]amazing | |
10004 group of volunteers is what makes EGCS successful. | |
10005 | |
10006 And finally, we can't in good conscience fail to mention some | |
10007 [9]caveats to using EGCS 1.1. | |
10008 | |
10009 Download EGCS from egcs.cygnus.com (USA California). | |
10010 | |
10011 The EGCS 1.1 release is also available on many mirror sites. | |
10012 [10]Goto mirror list to find a closer site. | |
10013 | |
10014 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
10015 are also [12]other ways to contact the FSF. | |
10016 | |
10017 These pages are maintained by [13]the GCC team. | |
10018 | |
10019 | |
10020 For questions related to the use of GCC, please consult these web | |
10021 pages and the [14]GCC manuals. If that fails, the | |
10022 [15]gcc-help@gcc.gnu.org mailing list might help. | |
10023 Please send comments on these web pages and the development of GCC to | |
10024 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
10025 All of our lists have [18]public archives. | |
10026 | |
10027 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10028 Floor, Boston, MA 02110, USA. | |
10029 | |
10030 Verbatim copying and distribution of this entire article is permitted | |
10031 in any medium, provided this notice is preserved. | |
10032 Last modified 2007-07-25 [19]Valid XHTML 1.0 | |
10033 | |
10034 References | |
10035 | |
10036 1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html | |
10037 2. http://gcc.gnu.org/news/gcse.html | |
10038 3. http://gcc.gnu.org/news/alias.html | |
10039 4. http://gcc.gnu.org/egcs-1.1/c++features.html | |
10040 5. http://gcc.gnu.org/egcs-1.1/features.html | |
10041 6. http://gcc.gnu.org/install/ | |
10042 7. http://gcc.gnu.org/egcs-1.1/buildstat.html | |
10043 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
10044 9. http://gcc.gnu.org/egcs-1.1/caveats.html | |
10045 10. http://gcc.gnu.org/mirrors.html | |
10046 11. mailto:gnu@gnu.org | |
10047 12. http://www.gnu.org/home.html#ContactInfo | |
10048 13. http://gcc.gnu.org/about.html | |
10049 14. http://gcc.gnu.org/onlinedocs/ | |
10050 15. mailto:gcc-help@gcc.gnu.org | |
10051 16. mailto:gcc@gnu.org | |
10052 17. mailto:gcc@gcc.gnu.org | |
10053 18. http://gcc.gnu.org/lists.html | |
10054 19. http://validator.w3.org/check/referer | |
10055 ====================================================================== | |
10056 http://gcc.gnu.org/egcs-1.1/features.html | |
10057 EGCS 1.1 new features | |
10058 | |
10059 * Integrated GNU Fortran (g77) compiler and runtime library with | |
10060 improvements, based on g77 version 0.5.23. | |
10061 * Vast improvements in the C++ compiler; so many they have [1]page of | |
10062 their own! | |
10063 * Compiler implements [2]global common subexpression elimination and | |
10064 global copy/constant propagation. | |
10065 * More major improvements in the [3]alias analysis code. | |
10066 * More major improvements in the exception handling code to improve | |
10067 performance, lower static overhead and provide the infrastructure | |
10068 for future improvements. | |
10069 * The infamous /tmp symlink race security problems have been fixed. | |
10070 * The regmove optimization pass has been nearly completely rewritten | |
10071 to improve performance of generated code. | |
10072 * The compiler now recomputes register usage information before local | |
10073 register allocation. By providing more accurate information to the | |
10074 priority based allocator, we get better register allocation. | |
10075 * The register reloading phase of the compiler optimizes spill code | |
10076 much better than in previous releases. | |
10077 * Some bad interactions between the register allocator and | |
10078 instruction scheduler have been fixed, resulting in much better | |
10079 code for certain programs. Additionally, we have tuned the | |
10080 scheduler in various ways to improve performance of generated code | |
10081 for some architectures. | |
10082 * The compiler's branch shortening algorithms have been significantly | |
10083 improved to work better on targets which align jump targets. | |
10084 * The compiler now supports -Os to prefer optimizing for code space | |
10085 over optimizing for code speed. | |
10086 * The compiler will now totally eliminate library calls which compute | |
10087 constant values. This primarily helps targets with no integer | |
10088 div/mul support and targets without floating point support. | |
10089 * The compiler now supports an extensive "--help" option. | |
10090 * cpplib has been greatly improved and may be suitable for limited | |
10091 use. | |
10092 * Memory footprint for the compiler has been significantly reduced | |
10093 for some pathological cases. | |
10094 * The time to build EGCS has been improved for certain targets | |
10095 (particularly the alpha and mips platforms). | |
10096 * Many infrastructure improvements throughout the compiler, plus the | |
10097 usual mountain of bugfixes and minor improvements. | |
10098 * Target dependent improvements: | |
10099 + SPARC port now includes V8 plus and V9 support as well as | |
10100 performance tuning for Ultra class machines. The SPARC port | |
10101 now uses the Haifa scheduler. | |
10102 + Alpha port has been tuned for the EV6 processor and has an | |
10103 optimized expansion of memcpy/bzero. The Alpha port now uses | |
10104 the Haifa scheduler. | |
10105 + RS6000/PowerPC: support for the Power64 architecture and AIX | |
10106 4.3. The RS6000/PowerPC port now uses the Haifa scheduler. | |
10107 + x86: Alignment of static store data and jump targets is per | |
10108 Intel recommendations now. Various improvements throughout the | |
10109 x86 port to improve performance on Pentium processors | |
10110 (including improved epilogue sequences for Pentium chips and | |
10111 backend improvements which should help register allocation on | |
10112 all x86 variants. Conditional move support has been fixed and | |
10113 enabled for PPro processors. The x86 port also better supports | |
10114 64bit operations now. Unixware 7, a System V Release 5 target, | |
10115 is now supported and SCO OpenServer targets can support GAS. | |
10116 + MIPS has improved multiply/multiply-add support and now | |
10117 includes mips16 ISA support. | |
10118 + M68k has many micro-optimizations and Coldfire fixes. | |
10119 * Core compiler is based on the GCC development tree from June 9, | |
10120 1998, so we have all of the [4]features found in GCC 2.8. | |
10121 | |
10122 Please send FSF & GNU inquiries & questions to [5]gnu@gnu.org. There | |
10123 are also [6]other ways to contact the FSF. | |
10124 | |
10125 These pages are maintained by [7]the GCC team. | |
10126 | |
10127 | |
10128 For questions related to the use of GCC, please consult these web | |
10129 pages and the [8]GCC manuals. If that fails, the | |
10130 [9]gcc-help@gcc.gnu.org mailing list might help. | |
10131 Please send comments on these web pages and the development of GCC to | |
10132 our developer mailing list at [10]gcc@gnu.org or [11]gcc@gcc.gnu.org. | |
10133 All of our lists have [12]public archives. | |
10134 | |
10135 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10136 Floor, Boston, MA 02110, USA. | |
10137 | |
10138 Verbatim copying and distribution of this entire article is permitted | |
10139 in any medium, provided this notice is preserved. | |
10140 Last modified 2008-07-26 [13]Valid XHTML 1.0 | |
10141 | |
10142 References | |
10143 | |
10144 1. http://gcc.gnu.org/egcs-1.1/c++features.html | |
10145 2. http://gcc.gnu.org/news/gcse.html | |
10146 3. http://gcc.gnu.org/news/alias.html | |
10147 4. http://gcc.gnu.org/egcs-1.0/features-2.8.html | |
10148 5. mailto:gnu@gnu.org | |
10149 6. http://www.gnu.org/home.html#ContactInfo | |
10150 7. http://gcc.gnu.org/about.html | |
10151 8. http://gcc.gnu.org/onlinedocs/ | |
10152 9. mailto:gcc-help@gcc.gnu.org | |
10153 10. mailto:gcc@gnu.org | |
10154 11. mailto:gcc@gcc.gnu.org | |
10155 12. http://gcc.gnu.org/lists.html | |
10156 13. http://validator.w3.org/check/referer | |
10157 ====================================================================== | |
10158 http://gcc.gnu.org/egcs-1.1/caveats.html | |
10159 EGCS 1.1 Caveats | |
10160 | |
10161 * EGCS has an integrated libstdc++, but does not have an integrated | |
10162 libg++. Furthermore old libg++ releases will not work with EGCS; HJ | |
10163 Lu has made a libg++-2.8.1.2 snapshot available which may work with | |
10164 EGCS. | |
10165 Note most C++ programs only need libstdc++. | |
10166 * Exception handling may not work with shared libraries, particularly | |
10167 on alphas, hppas, rs6000/powerpc and mips based platforms. | |
10168 Exception handling is known to work on x86-linux platforms with | |
10169 shared libraries. | |
10170 * Some versions of the Linux kernel have bugs which prevent them from | |
10171 being compiled or from running when compiled by EGCS. See the FAQ | |
10172 (as shipped with EGCS 1.1) for additional information. | |
10173 * In general, EGCS is more rigorous about rejecting invalid C++ code | |
10174 or deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As | |
10175 a result it may be necessary to fix C++ code before it will compile | |
10176 with EGCS. | |
10177 * G++ is also converting toward the ISO C++ standard; as a result | |
10178 code which was previously valid (and thus accepted by other | |
10179 compilers and older versions of g++) may no longer be accepted. | |
10180 * EGCS 1.1 compiled C++ code is not binary compatible with EGCS 1.0.x | |
10181 or GCC 2.8.x due to changes necessary to support thread safe | |
10182 exception handling. | |
10183 | |
10184 Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There | |
10185 are also [2]other ways to contact the FSF. | |
10186 | |
10187 These pages are maintained by [3]the GCC team. | |
10188 | |
10189 | |
10190 For questions related to the use of GCC, please consult these web | |
10191 pages and the [4]GCC manuals. If that fails, the | |
10192 [5]gcc-help@gcc.gnu.org mailing list might help. | |
10193 Please send comments on these web pages and the development of GCC to | |
10194 our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. | |
10195 All of our lists have [8]public archives. | |
10196 | |
10197 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10198 Floor, Boston, MA 02110, USA. | |
10199 | |
10200 Verbatim copying and distribution of this entire article is permitted | |
10201 in any medium, provided this notice is preserved. | |
10202 Last modified 2007-07-25 [9]Valid XHTML 1.0 | |
10203 | |
10204 References | |
10205 | |
10206 1. mailto:gnu@gnu.org | |
10207 2. http://www.gnu.org/home.html#ContactInfo | |
10208 3. http://gcc.gnu.org/about.html | |
10209 4. http://gcc.gnu.org/onlinedocs/ | |
10210 5. mailto:gcc-help@gcc.gnu.org | |
10211 6. mailto:gcc@gnu.org | |
10212 7. mailto:gcc@gcc.gnu.org | |
10213 8. http://gcc.gnu.org/lists.html | |
10214 9. http://validator.w3.org/check/referer | |
10215 ====================================================================== | |
10216 http://gcc.gnu.org/egcs-1.0/index.html | |
10217 EGCS 1.0 | |
10218 | |
10219 December 3, 1997: We are pleased to announce the release of EGCS 1.0. | |
10220 January 6, 1998: We are pleased to announce the release of EGCS 1.0.1. | |
10221 March 16, 1998: We are pleased to announce the release of EGCS 1.0.2. | |
10222 May 15, 1998 We are pleased to announce the release of EGCS 1.0.3. | |
10223 | |
10224 EGCS is a collaborative effort involving several groups of hackers | |
10225 using an open development model to accelerate development and testing | |
10226 of GNU compilers and runtime libraries. | |
10227 | |
10228 An important goal of EGCS is to allow wide scale testing of | |
10229 experimental features and optimizations; therefore, EGCS contains some | |
10230 features and optimizations which are still under development. However, | |
10231 EGCS has been carefully tested and should be comparable in quality to | |
10232 most GCC releases. | |
10233 | |
10234 EGCS 1.0 is based on an August 2, 1997 snapshot of the GCC 2.8 | |
10235 development sources; it contains nearly all of the new features found | |
10236 in GCC 2.8. | |
10237 | |
10238 EGCS 1.0 also contains many improvements and features not found in GCC | |
10239 2.7 and even the GCC 2.8 series (which was released after the original | |
10240 EGCS 1.0 release). | |
10241 * Integrated C++ runtime libraries, including support for most major | |
10242 GNU/Linux systems! | |
10243 * The integrated libstdc++ library includes a verbatim copy of SGI's | |
10244 STL release. | |
10245 * Integrated GNU Fortran compiler. | |
10246 * New instruction scheduler. | |
10247 * New alias analysis code. | |
10248 | |
10249 See the [1]new features page for a more complete list of new features. | |
10250 | |
10251 EGCS 1.0.1 is a minor update to the EGCS 1.0 compiler to fix a few | |
10252 critical bugs and add support for Red Hat 5.0 Linux. Changes since the | |
10253 EGCS 1.0 release: | |
10254 * Add support for Red Hat 5.0 Linux and better support for Linux | |
10255 systems using glibc2. | |
10256 Many programs failed to link when compiled with EGCS 1.0 on Red Hat | |
10257 5.0 or on systems with newer versions of glibc2. EGCS 1.0.1 should | |
10258 fix these problems. | |
10259 * Compatibility with both EGCS 1.0 and GCC 2.8 libgcc exception | |
10260 handling interfaces. | |
10261 To avoid future compatibility problems, we strongly urge anyone who | |
10262 is planning on distributing shared libraries that contain C++ code | |
10263 to upgrade to EGCS 1.0.1 first. | |
10264 Soon after EGCS 1.0 was released, the GCC developers made some | |
10265 incompatible changes in libgcc's exception handling interfaces. | |
10266 These changes were needed to solve problems on some platforms. This | |
10267 means that GCC 2.8.0, when released, will not be seamlessly | |
10268 compatible with shared libraries built by EGCS 1.0. The reason is | |
10269 that the libgcc.a in GCC 2.8.0 will not contain a function needed | |
10270 by the old interface. | |
10271 The result of this is that there may be compatibility problems with | |
10272 shared libraries built by EGCS 1.0 when used with GCC 2.8.0. | |
10273 With EGCS 1.0.1, generated code uses the new (GCC 2.8.0) interface, | |
10274 and libgcc.a has the support routines for both the old and the new | |
10275 interfaces (so EGCS 1.0.1 and EGCS 1.0 code can be freely mixed, | |
10276 and EGCS 1.0.1 and GCC 2.8.0 code can be freely mixed). | |
10277 The maintainers of GCC 2.x have decided against including seamless | |
10278 support for the old interface in 2.8.0, since it was never | |
10279 "official", so to avoid future compatibility problems we recommend | |
10280 against distributing any shared libraries built by EGCS 1.0 that | |
10281 contain C++ code (upgrade to 1.0.1 and use that). | |
10282 * Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends. | |
10283 The x86 changes fix code generation errors exposed when building | |
10284 glibc2 and the Linux dynamic linker (ld.so). | |
10285 The hppa change fixes a compiler abort when configured for use with | |
10286 RTEMS. | |
10287 The MIPS changes fix problems with the definition of LONG_MAX on | |
10288 newer systems, allow for command line selection of the target ABI, | |
10289 and fix one code generation problem. | |
10290 The rs6000/ppc change fixes some problems with passing structures | |
10291 to varargs/stdarg functions. | |
10292 * A few machine independent bugfixes, mostly to fix code generation | |
10293 errors when building Linux kernels or glibc. | |
10294 * Fix a few critical exception handling and template bugs in the C++ | |
10295 compiler. | |
10296 * Fix Fortran namelist bug on alphas. | |
10297 * Fix build problems on x86-solaris systems. | |
10298 | |
10299 EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several | |
10300 serious problems in EGCS 1.0.1. | |
10301 * General improvements and fixes | |
10302 + Memory consumption significantly reduced, especially for | |
10303 templates and inline functions. | |
10304 + Fix various problems with glibc2.1. | |
10305 + Fix loop optimization bug exposed by rs6000/ppc port. | |
10306 + Fix to avoid potential code generation problems in jump.c. | |
10307 + Fix some undefined symbol problems in dwarf1 debug support. | |
10308 * g++/libstdc++ improvements and fixes | |
10309 + libstdc++ in the EGCS release has been updated and should be | |
10310 link compatible with libstdc++-2.8. | |
10311 + Various fixes in libio/libstdc++ to work better on Linux | |
10312 systems. | |
10313 + Fix problems with duplicate symbols on systems that do not | |
10314 support weak symbols. | |
10315 + Memory corruption bug and undefined symbols in bastring have | |
10316 been fixed. | |
10317 + Various exception handling fixes. | |
10318 + Fix compiler abort for very long thunk names. | |
10319 * g77 improvements and fixes | |
10320 + Fix compiler crash for omitted bound in Fortran CASE | |
10321 statement. | |
10322 + Add missing entries to g77 lang-options. | |
10323 + Fix problem with -fpedantic in the g77 compiler. | |
10324 + Fix "backspace" problem with g77 on alphas. | |
10325 + Fix x86 backend problem with Fortran literals and -fpic. | |
10326 + Fix some of the problems with negative subscripts for g77 on | |
10327 alphas. | |
10328 + Fixes for Fortran builds on cygwin32/mingw32. | |
10329 * platform specific improvements and fixes | |
10330 + Fix long double problems on x86 (exposed by glibc). | |
10331 + x86 ports define i386 again to keep imake happy. | |
10332 + Fix exception handling support on NetBSD ports. | |
10333 + Several changes to collect2 to fix many problems with AIX. | |
10334 + Define __ELF__ for rs6000/linux. | |
10335 + Fix -mcall-linux problem on rs6000/linux. | |
10336 + Fix stdarg/vararg problem for rs6000/linux. | |
10337 + Allow autoconf to select a proper install problem on AIX 3.1. | |
10338 + m68k port support includes -mcpu32 option as well as cpu32 | |
10339 multilibs. | |
10340 + Fix stdarg bug for irix6. | |
10341 + Allow EGCS to build on irix5 without the gnu assembler. | |
10342 + Fix problem with static linking on sco5. | |
10343 + Fix bootstrap on sco5 with native compiler. | |
10344 + Fix for abort building newlib on H8 target. | |
10345 + Fix fixincludes handling of math.h on SunOS. | |
10346 + Minor fix for Motorola 3300 m68k systems. | |
10347 | |
10348 EGCS 1.0.3 is a minor update to the EGCS 1.0.2 compiler to fix a few | |
10349 problems reported by Red Hat for builds of Red Hat 5.1. | |
10350 * Generic bugfixes: | |
10351 + Fix a typo in the libio library which resulted in incorrect | |
10352 behavior of istream::get. | |
10353 + Fix the Fortran negative array index problem. | |
10354 + Fix a major problem with the ObjC runtime thread support | |
10355 exposed by glibc2. | |
10356 + Reduce memory consumption of the Haifa scheduler. | |
10357 * Target specific bugfixes: | |
10358 + Fix one x86 floating point code generation bug exposed by | |
10359 glibc2 builds. | |
10360 + Fix one x86 internal compiler error exposed by glibc2 builds. | |
10361 + Fix profiling bugs on the Alpha. | |
10362 + Fix ImageMagick & emacs 20.2 build problems on the Alpha. | |
10363 + Fix rs6000/ppc bug when converting values from integer types | |
10364 to floating point types. | |
10365 | |
10366 The EGCS 1.0 releases include installation instructions in both HTML | |
10367 and plaintext forms (see the INSTALL directory in the toplevel | |
10368 directory of the distribution). However, we also keep the most up to | |
10369 date [2]installation instructions and [3]build/test status on our web | |
10370 page. We will update those pages as new information becomes available. | |
10371 | |
10372 And, we can't in good conscience fail to mention some [4]caveats to | |
10373 using EGCS. | |
10374 | |
10375 Update: Big thanks to Stanford for providing a high speed link for | |
10376 downloading EGCS (go.cygnus.com)! | |
10377 | |
10378 Download EGCS from ftp.cygnus.com (USA California) or go.cygnus.com | |
10379 (USA California -- High speed link provided by Stanford). | |
10380 | |
10381 The EGCS 1.0 release is also available many mirror sites. | |
10382 [5]Goto mirror list to find a closer site | |
10383 | |
10384 We'd like to thank the numerous people that have contributed new | |
10385 features, test results, bugfixes, etc. Unfortunately, they're far too | |
10386 numerous to mention by name. | |
10387 | |
10388 Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There | |
10389 are also [7]other ways to contact the FSF. | |
10390 | |
10391 These pages are maintained by [8]the GCC team. | |
10392 | |
10393 | |
10394 For questions related to the use of GCC, please consult these web | |
10395 pages and the [9]GCC manuals. If that fails, the | |
10396 [10]gcc-help@gcc.gnu.org mailing list might help. | |
10397 Please send comments on these web pages and the development of GCC to | |
10398 our developer mailing list at [11]gcc@gnu.org or [12]gcc@gcc.gnu.org. | |
10399 All of our lists have [13]public archives. | |
10400 | |
10401 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10402 Floor, Boston, MA 02110, USA. | |
10403 | |
10404 Verbatim copying and distribution of this entire article is permitted | |
10405 in any medium, provided this notice is preserved. | |
10406 Last modified 2007-07-25 [14]Valid XHTML 1.0 | |
10407 | |
10408 References | |
10409 | |
10410 1. http://gcc.gnu.org/egcs-1.0/features.html | |
10411 2. http://gcc.gnu.org/install/ | |
10412 3. http://gcc.gnu.org/egcs-1.0/buildstat.html | |
10413 4. http://gcc.gnu.org/egcs-1.0/caveats.html | |
10414 5. http://gcc.gnu.org/mirrors.html | |
10415 6. mailto:gnu@gnu.org | |
10416 7. http://www.gnu.org/home.html#ContactInfo | |
10417 8. http://gcc.gnu.org/about.html | |
10418 9. http://gcc.gnu.org/onlinedocs/ | |
10419 10. mailto:gcc-help@gcc.gnu.org | |
10420 11. mailto:gcc@gnu.org | |
10421 12. mailto:gcc@gcc.gnu.org | |
10422 13. http://gcc.gnu.org/lists.html | |
10423 14. http://validator.w3.org/check/referer | |
10424 ====================================================================== | |
10425 http://gcc.gnu.org/egcs-1.0/features.html | |
10426 EGCS 1.0 features | |
10427 | |
10428 * Core compiler is based on the gcc2 development tree from Aug 2, | |
10429 1997, so we have most of the [1]features found in GCC 2.8. | |
10430 * Integrated GNU Fortran compiler based on g77-0.5.22-19970929. | |
10431 * Vast improvements in the C++ compiler; so many they have [2]page of | |
10432 their own! | |
10433 * Integrated C++ runtime libraries, including support for most major | |
10434 linux systems! | |
10435 * New instruction scheduler from IBM Haifa which includes support for | |
10436 function wide instruction scheduling as well as superscalar | |
10437 scheduling. | |
10438 * Significantly improved alias analysis code. | |
10439 * Improved register allocation for two address machines. | |
10440 * Significant code generation improvements for Fortran code on | |
10441 Alphas. | |
10442 * Various optimizations from the g77 project as well as improved loop | |
10443 optimizations. | |
10444 * Dwarf2 debug format support for some targets. | |
10445 * egcs libstdc++ includes the SGI STL implementation without changes. | |
10446 * As a result of these and other changes, egcs libstc++ is not binary | |
10447 compatible with previous releases of libstdc++. | |
10448 * Various new ports -- UltraSPARC, Irix6.2 & Irix6.3 support, The SCO | |
10449 Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and | |
10450 1.1), Support for RTEMS on several embedded targets, Support for | |
10451 arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and | |
10452 MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc. | |
10453 * Integrated testsuites for gcc, g++, g77, libstdc++ and libio. | |
10454 * RS6000/PowerPC ports generate code which can run on all | |
10455 RS6000/PowerPC variants by default. | |
10456 * -mcpu= and -march= switches for the x86 port to allow better | |
10457 control over how the x86 port generates code. | |
10458 * Includes the template repository patch (aka repo patch); note the | |
10459 new template code makes repo obsolete for ELF systems using gnu-ld | |
10460 such as Linux. | |
10461 * Plus the usual assortment of bugfixes and improvements. | |
10462 | |
10463 Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There | |
10464 are also [4]other ways to contact the FSF. | |
10465 | |
10466 These pages are maintained by [5]the GCC team. | |
10467 | |
10468 | |
10469 For questions related to the use of GCC, please consult these web | |
10470 pages and the [6]GCC manuals. If that fails, the | |
10471 [7]gcc-help@gcc.gnu.org mailing list might help. | |
10472 Please send comments on these web pages and the development of GCC to | |
10473 our developer mailing list at [8]gcc@gnu.org or [9]gcc@gcc.gnu.org. | |
10474 All of our lists have [10]public archives. | |
10475 | |
10476 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10477 Floor, Boston, MA 02110, USA. | |
10478 | |
10479 Verbatim copying and distribution of this entire article is permitted | |
10480 in any medium, provided this notice is preserved. | |
10481 Last modified 2007-07-25 [11]Valid XHTML 1.0 | |
10482 | |
10483 References | |
10484 | |
10485 1. http://gcc.gnu.org/egcs-1.0/features-2.8.html | |
10486 2. http://gcc.gnu.org/egcs-1.0/c++features.html | |
10487 3. mailto:gnu@gnu.org | |
10488 4. http://www.gnu.org/home.html#ContactInfo | |
10489 5. http://gcc.gnu.org/about.html | |
10490 6. http://gcc.gnu.org/onlinedocs/ | |
10491 7. mailto:gcc-help@gcc.gnu.org | |
10492 8. mailto:gcc@gnu.org | |
10493 9. mailto:gcc@gcc.gnu.org | |
10494 10. http://gcc.gnu.org/lists.html | |
10495 11. http://validator.w3.org/check/referer | |
10496 ====================================================================== | |
10497 http://gcc.gnu.org/egcs-1.0/caveats.html | |
10498 EGCS 1.0 Caveats | |
10499 | |
10500 * EGCS has an integrated libstdc++, but does not have an integrated | |
10501 libg++. Furthermore old libg++ releases will not work with egc; HJ | |
10502 Lu has made a libg++-2.8.1.2 available which may work with EGCS. | |
10503 Note most C++ programs only need libstdc++. | |
10504 * Note that using -pedantic or -Wreturn-type can cause an explosion | |
10505 in the amount of memory needed for template-heavy C++ code, such as | |
10506 code that uses STL. Also note that -Wall includes -Wreturn-type, so | |
10507 if you use -Wall you will need to specify -Wno-return-type to turn | |
10508 it off. | |
10509 * Exception handling may not work with shared libraries, particularly | |
10510 on alphas, hppas, and mips based platforms. Exception handling is | |
10511 known to work on x86-linux platforms with shared libraries. | |
10512 * Some versions of the Linux kernel have bugs which prevent them from | |
10513 being compiled or from running when compiled by EGCS. See the FAQ | |
10514 (as shipped with EGCS 1.0) for additional information. | |
10515 * In general, EGCS is more rigorous about rejecting invalid C++ code | |
10516 or deprecated C++ constructs than G++ 2.7. As a result it may be | |
10517 necessary to fix C++ code before it will compile with EGCS. | |
10518 * G++ is also aggressively tracking the C++ standard; as a result | |
10519 code which was previously valid (and thus accepted by other | |
10520 compilers and older versions of G++) may no longer be accepted. | |
10521 * EGCS 1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS | |
10522 1.0.x and later releases should work with Red Hat Linux 5.0. | |
10523 | |
10524 Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There | |
10525 are also [2]other ways to contact the FSF. | |
10526 | |
10527 These pages are maintained by [3]the GCC team. | |
10528 | |
10529 | |
10530 For questions related to the use of GCC, please consult these web | |
10531 pages and the [4]GCC manuals. If that fails, the | |
10532 [5]gcc-help@gcc.gnu.org mailing list might help. | |
10533 Please send comments on these web pages and the development of GCC to | |
10534 our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. | |
10535 All of our lists have [8]public archives. | |
10536 | |
10537 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10538 Floor, Boston, MA 02110, USA. | |
10539 | |
10540 Verbatim copying and distribution of this entire article is permitted | |
10541 in any medium, provided this notice is preserved. | |
10542 Last modified 2007-07-25 [9]Valid XHTML 1.0 | |
10543 | |
10544 References | |
10545 | |
10546 1. mailto:gnu@gnu.org | |
10547 2. http://www.gnu.org/home.html#ContactInfo | |
10548 3. http://gcc.gnu.org/about.html | |
10549 4. http://gcc.gnu.org/onlinedocs/ | |
10550 5. mailto:gcc-help@gcc.gnu.org | |
10551 6. mailto:gcc@gnu.org | |
10552 7. mailto:gcc@gcc.gnu.org | |
10553 8. http://gcc.gnu.org/lists.html | |
10554 9. http://validator.w3.org/check/referer | |
10555 ====================================================================== |