Mercurial > hg > CbC > CbC_gcc
comparison NEWS @ 0:a06113de4d67
first commit
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 17 Jul 2009 14:47:48 +0900 |
parents | |
children | 58ad6c70ea60 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a06113de4d67 |
---|---|
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 | |
11 April 21, 2008 | |
12 | |
13 The [1]GNU project and the GCC developers are pleased to announce the | |
14 release of GCC 4.4.0. | |
15 | |
16 This release is a major release, containing new features (as well as | |
17 many other improvements) relative to GCC 4.3.x. | |
18 | |
19 Release History | |
20 | |
21 GCC 4.4.0 | |
22 April 21, 2008 ([2]changes) | |
23 | |
24 References and Acknowledgements | |
25 | |
26 GCC used to stand for the GNU C Compiler, but since the compiler | |
27 supports several other languages aside from C, it now stands for the | |
28 GNU Compiler Collection. | |
29 | |
30 A list of [3]successful builds is updated as new information becomes | |
31 available. | |
32 | |
33 The GCC developers would like to thank the numerous people that have | |
34 contributed new features, improvements, bug fixes, and other changes as | |
35 well as test results to GCC. This [4]amazing group of volunteers is | |
36 what makes GCC successful. | |
37 | |
38 For additional information about GCC please refer to the [5]GCC project | |
39 web site or contact the [6]GCC development mailing list. | |
40 | |
41 To obtain GCC please use [7]our mirror sites or [8]our SVN server. | |
42 | |
43 Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There | |
44 are also [10]other ways to contact the FSF. | |
45 | |
46 These pages are maintained by [11]the GCC team. | |
47 | |
48 | |
49 For questions related to the use of GCC, please consult these web | |
50 pages and the [12]GCC manuals. If that fails, the | |
51 [13]gcc-help@gcc.gnu.org mailing list might help. | |
52 Please send comments on these web pages and the development of GCC to | |
53 our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. | |
54 All of our lists have [16]public archives. | |
55 | |
56 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
57 Floor, Boston, MA 02110, USA. | |
58 | |
59 Verbatim copying and distribution of this entire article is permitted | |
60 in any medium, provided this notice is preserved. | |
61 Last modified 2009-04-21 [17]Valid XHTML 1.0 | |
62 | |
63 References | |
64 | |
65 1. http://www.gnu.org/ | |
66 2. http://gcc.gnu.org/gcc-4.4/changes.html | |
67 3. http://gcc.gnu.org/gcc-4.4/buildstat.html | |
68 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
69 5. http://gcc.gnu.org/index.html | |
70 6. mailto:gcc@gcc.gnu.org | |
71 7. http://gcc.gnu.org/mirrors.html | |
72 8. http://gcc.gnu.org/svn.html | |
73 9. mailto:gnu@gnu.org | |
74 10. http://www.gnu.org/home.html#ContactInfo | |
75 11. http://gcc.gnu.org/about.html | |
76 12. http://gcc.gnu.org/onlinedocs/ | |
77 13. mailto:gcc-help@gcc.gnu.org | |
78 14. mailto:gcc@gnu.org | |
79 15. mailto:gcc@gcc.gnu.org | |
80 16. http://gcc.gnu.org/lists.html | |
81 17. http://validator.w3.org/check/referer | |
82 ====================================================================== | |
83 http://gcc.gnu.org/gcc-4.4/changes.html | |
84 GCC 4.4 Release Series | |
85 Changes, New Features, and Fixes | |
86 | |
87 Caveats | |
88 | |
89 * __builtin_stdarg_start has been completely removed from GCC. | |
90 Support for <varargs.h> had been deprecated since GCC 4.0. Use | |
91 __builtin_va_start as a replacement. | |
92 * Some of the errors issued by the C++ front end that could be | |
93 downgraded to warnings in previous releases by using -fpermissive | |
94 are now warnings by default. They can be converted into errors by | |
95 using -pedantic-errors. | |
96 * Use of the cpp assertion extension will now emit a warning when | |
97 -Wdeprecated or -pedantic is used. This extension has been | |
98 deprecated for many years, but never warned about. | |
99 * Packed bit-fields of type char were not properly bit-packed on many | |
100 targets prior to GCC 4.4. On these targets, the fix in GCC 4.4 | |
101 causes an ABI change. For example there is no longer a 4-bit | |
102 padding between field a and b in this structure: | |
103 struct foo | |
104 { | |
105 char a:4; | |
106 char b:8; | |
107 } __attribute__ ((packed)); | |
108 There is a new warning to help identify fields that are affected: | |
109 foo.c:5: note: Offset of packed bit-field 'b' has changed in GCC 4.4 | |
110 The warning can be disabled with -Wno-packed-bitfield-compat. | |
111 * On ARM EABI targets, the C++ mangling of the va_list type has been | |
112 changed to conform to the current revision of the EABI. This does | |
113 not affect the libstdc++ library included with GCC. | |
114 * The SCOUNT and POS bits of the MIPS DSP control register are now | |
115 treated as global. Previous versions of GCC treated these fields as | |
116 call-clobbered instead. | |
117 * The MIPS port no longer recognizes the h asm constraint. It was | |
118 necessary to remove this constraint in order to avoid generating | |
119 unpredictable code sequences. | |
120 One of the main uses of the h constraint was to extract the high | |
121 part of a multiplication on 64-bit targets. For example: | |
122 asm ("dmultu\t%1,%2" : "=h" (result) : "r" (x), "r" (y)); | |
123 You can now achieve the same effect using 128-bit types: | |
124 typedef unsigned int uint128_t __attribute__((mode(TI))); | |
125 result = ((uint128_t) x * y) >> 64; | |
126 The second sequence is better in many ways. For example, if x and y | |
127 are constants, the compiler can perform the multiplication at | |
128 compile time. If x and y are not constants, the compiler can | |
129 schedule the runtime multiplication better than it can schedule an | |
130 asm statement. | |
131 * Support for a number of older systems and recently unmaintained or | |
132 untested target ports of GCC has been declared obsolete in GCC 4.4. | |
133 Unless there is activity to revive them, the next release of GCC | |
134 will have their sources permanently removed. | |
135 The following ports for individual systems on particular | |
136 architectures have been obsoleted: | |
137 + Generic a.out on IA32 and m68k (i[34567]86-*-aout*, | |
138 m68k-*-aout*) | |
139 + Generic COFF on ARM, H8300, IA32, m68k and SH (arm-*-coff*, | |
140 armel-*-coff*, h8300-*-*, i[34567]86-*-coff*, m68k-*-coff*, | |
141 sh-*-*). This does not affect other more specific targets | |
142 using the COFF object format on those architectures, or the | |
143 more specific H8300 and SH targets (h8300-*-rtems*, | |
144 h8300-*-elf*, sh-*-elf*, sh-*-symbianelf*, sh-*-linux*, | |
145 sh-*-netbsdelf*, sh-*-rtems*, sh-wrs-vxworks). | |
146 + 2BSD on PDP-11 (pdp11-*-bsd) | |
147 + AIX 4.1 and 4.2 on PowerPC (rs6000-ibm-aix4.[12]*, | |
148 powerpc-ibm-aix4.[12]*) | |
149 + Tuning support for Itanium1 (Merced) variants. Note that code | |
150 tuned for Itanium2 should also run correctly on Itanium1. | |
151 * The protoize and unprotoize utilities have been obsoleted and will | |
152 be removed in GCC 4.5. These utilities have not been installed by | |
153 default since GCC 3.0. | |
154 * Support has been removed for all the [1]configurations obsoleted in | |
155 GCC 4.3. | |
156 * Unknown -Wno-* options are now silently ignored by GCC if no other | |
157 diagnostics are issued. If other diagnostics are issued, then GCC | |
158 warns about the unknown options. | |
159 * More information on porting to GCC 4.4 from previous versions of | |
160 GCC can be found in the [2]porting guide for this release. | |
161 | |
162 General Optimizer Improvements | |
163 | |
164 * A new command-line switch -findirect-inlining has been added. When | |
165 turned on it allows the inliner to also inline indirect calls that | |
166 are discovered to have known targets at compile time thanks to | |
167 previous inlining. | |
168 * A new command-line switch -ftree-switch-conversion has been added. | |
169 This new pass turns simple initializations of scalar variables in | |
170 switch statements into initializations from a static array, given | |
171 that all the values are known at compile time and the ratio between | |
172 the new array size and the original switch branches does not exceed | |
173 the parameter --param switch-conversion-max-branch-ratio (default | |
174 is eight). | |
175 * A new command-line switch -ftree-builtin-call-dce has been added. | |
176 This optimization eliminates unnecessary calls to certain builtin | |
177 functions when the return value is not used, in cases where the | |
178 calls can not be eliminated entirely because the function may set | |
179 errno. This optimization is on by default at -O2 and above. | |
180 * A new command-line switch -fconserve-stack directs the compiler to | |
181 minimize stack usage even if it makes the generated code slower. | |
182 This affects inlining decisions. | |
183 * When the assembler supports it, the compiler will now emit unwind | |
184 information using assembler .cfi directives. This makes it possible | |
185 to use such directives in inline assembler code. The new option | |
186 -fno-dwarf2-cfi-asm directs the compiler to not use .cfi | |
187 directives. | |
188 * The [3]Graphite branch has been merged. This merge has brought in a | |
189 new framework for loop optimizations based on a polyhedral | |
190 intermediate representation. These optimizations apply to all the | |
191 languages supported by GCC. The following new code transformations | |
192 are available in GCC 4.4: | |
193 + -floop-interchange performs loop interchange transformations | |
194 on loops. Interchanging two nested loops switches the inner | |
195 and outer loops. For example, given a loop like: | |
196 DO J = 1, M | |
197 DO I = 1, N | |
198 A(J, I) = A(J, I) * C | |
199 ENDDO | |
200 ENDDO | |
201 | |
202 loop interchange will transform the loop as if the user had | |
203 written: | |
204 DO I = 1, N | |
205 DO J = 1, M | |
206 A(J, I) = A(J, I) * C | |
207 ENDDO | |
208 ENDDO | |
209 | |
210 which can be beneficial when N is larger than the caches, | |
211 because in Fortran, the elements of an array are stored in | |
212 memory contiguously by column, and the original loop iterates | |
213 over rows, potentially creating at each access a cache miss. | |
214 + -floop-strip-mine performs loop strip mining transformations | |
215 on loops. Strip mining splits a loop into two nested loops. | |
216 The outer loop has strides equal to the strip size and the | |
217 inner loop has strides of the original loop within a strip. | |
218 For example, given a loop like: | |
219 DO I = 1, N | |
220 A(I) = A(I) + C | |
221 ENDDO | |
222 | |
223 loop strip mining will transform the loop as if the user had | |
224 written: | |
225 DO II = 1, N, 4 | |
226 DO I = II, min (II + 3, N) | |
227 A(I) = A(I) + C | |
228 ENDDO | |
229 ENDDO | |
230 | |
231 + -floop-block performs loop blocking transformations on loops. | |
232 Blocking strip mines each loop in the loop nest such that the | |
233 memory accesses of the element loops fit inside caches. For | |
234 example, given a loop like: | |
235 DO I = 1, N | |
236 DO J = 1, M | |
237 A(J, I) = B(I) + C(J) | |
238 ENDDO | |
239 ENDDO | |
240 | |
241 loop blocking will transform the loop as if the user had | |
242 written: | |
243 DO II = 1, N, 64 | |
244 DO JJ = 1, M, 64 | |
245 DO I = II, min (II + 63, N) | |
246 DO J = JJ, min (JJ + 63, M) | |
247 A(J, I) = B(I) + C(J) | |
248 ENDDO | |
249 ENDDO | |
250 ENDDO | |
251 ENDDO | |
252 | |
253 which can be beneficial when M is larger than the caches, | |
254 because the innermost loop will iterate over a smaller amount | |
255 of data that can be kept in the caches. | |
256 * A new register allocator has replaced the old one. It is called | |
257 integrated register allocator (IRA) because coalescing, register | |
258 live range splitting, and hard register preferencing are done | |
259 on-the-fly during coloring. It also has better integration with the | |
260 reload pass. IRA is a regional register allocator which uses modern | |
261 Chaitin-Briggs coloring instead of Chow's priority coloring used in | |
262 the old register allocator. More info about IRA internals and | |
263 options can be found in the GCC manuals. | |
264 * A new instruction scheduler and software pipeliner, based on the | |
265 selective scheduling approach, has been added. The new pass | |
266 performs instruction unification, register renaming, substitution | |
267 through register copies, and speculation during scheduling. The | |
268 software pipeliner is able to pipeline non-countable loops. The new | |
269 pass is targeted at scheduling-eager in-order platforms. In GCC 4.4 | |
270 it is available for the Intel Itanium platform working by default | |
271 as the second scheduling pass (after register allocation) at the | |
272 -O3 optimization level. | |
273 * When using -fprofile-generate with a multi-threaded program, the | |
274 profile counts may be slightly wrong due to race conditions. The | |
275 new -fprofile-correction option directs the compiler to apply | |
276 heuristics to smooth out the inconsistencies. By default the | |
277 compiler will give an error message when it finds an inconsistent | |
278 profile. | |
279 * The new -fprofile-dir=PATH option permits setting the directory | |
280 where profile data files are stored when using -fprofile-generate | |
281 and friends, and the directory used when reading profile data files | |
282 using -fprofile-use and friends. | |
283 | |
284 New warning options | |
285 | |
286 * The new -Wframe-larger-than=NUMBER option directs GCC to emit a | |
287 warning if any stack frame is larger than NUMBER bytes. This may be | |
288 used to help ensure that code fits within a limited amount of stack | |
289 space. | |
290 * The new -Wno-mudflap option disables warnings about constructs | |
291 which can not be instrumented when using -fmudflap. | |
292 | |
293 New Languages and Language specific improvements | |
294 | |
295 * Version 3.0 of the [4]OpenMP specification is now supported for the | |
296 C, C++, and Fortran compilers. | |
297 | |
298 C family | |
299 | |
300 * A new optimize attribute was added to allow programmers to change | |
301 the optimization level and particular optimization options for an | |
302 individual function. You can also change the optimization options | |
303 via the GCC optimize pragma for functions defined after the pragma. | |
304 The GCC push_options pragma and the GCC pop_options pragma allow | |
305 you temporarily save and restore the options used. The GCC | |
306 reset_options pragma restores the options to what was specified on | |
307 the command line. | |
308 * Uninitialized warnings do not require enabling optimization | |
309 anymore, that is, -Wuninitialized can be used together with -O0. | |
310 Nonetheless, the warnings given by -Wuninitialized will probably be | |
311 more accurate if optimization is enabled. | |
312 * -Wparentheses now warns about expressions such as (!x | y) and (!x | |
313 & y). Using explicit parentheses, such as in ((!x) | y), silences | |
314 this warning. | |
315 * -Wsequence-points now warns within if, while,do while and for | |
316 conditions, and within for begin/end expressions. | |
317 * A new option -dU is available to dump definitions of preprocessor | |
318 macros that are tested or expanded. | |
319 | |
320 C++ | |
321 | |
322 * [5]Improved experimental support for the upcoming ISO C++ standard, | |
323 C++0x. Including support for auto, inline namespaces, generalized | |
324 initializer lists, defaulted and deleted functions, new character | |
325 types, and scoped enums. | |
326 * Those errors that may be downgraded to warnings to build legacy | |
327 code now mention -fpermissive when -fdiagnostics-show-option is | |
328 enabled. | |
329 * -Wconversion now warns if the result of a static_cast to enumeral | |
330 type is unspecified because the value is outside the range of the | |
331 enumeral type. | |
332 * -Wuninitialized now warns if a non-static reference or non-static | |
333 const member appears in a class without constructors. | |
334 * G++ now properly implements value-initialization, so objects with | |
335 an initializer of () and an implicitly defined default constructor | |
336 will be zero-initialized before the default constructor is called. | |
337 | |
338 Runtime Library (libstdc++) | |
339 | |
340 * Added experimental support for the upcoming ISO C++ standard, | |
341 C++0x. Including support for <chrono>, <condition_variable>, | |
342 <cstdatomic>, <forward_list>, <initializer_list>, <mutex>, <ratio>, | |
343 <system_error>, and <thread>. Plus unique_ptr, <algorithm> | |
344 additions, exception propagation, and some support for the new | |
345 character types. ([6]Implementation status of C++0x library) | |
346 * Experimental support for non-standard pointer types in containers. | |
347 | |
348 Fortran | |
349 | |
350 * GNU Fortran now employs libcpp directly instead of using cc1 as an | |
351 external preprocessor. The [7]-cpp option was added to allow manual | |
352 invocation of the preprocessor without relying on filename | |
353 extensions. | |
354 * The [8]-Warray-temporaries option warns about array temporaries | |
355 generated by the compiler, as an aid to optimization. | |
356 * The [9]-fcheck-array-temporaries option has been added, printing a | |
357 notification at run time, when an array temporary had to be created | |
358 for an function argument. Contrary to -Warray-temporaries the | |
359 warning is only printed if the array is noncontiguous. | |
360 * Improved generation of DWARF debugging symbols | |
361 * If using an intrinsic not part of the selected standard (via -std= | |
362 and -fall-intrinsics) gfortran will now treat it as if this | |
363 procedure were declared EXTERNAL and try to link to a user-supplied | |
364 procedure. -Wintrinsics-std will warn whenever this happens. The | |
365 now-useless option -Wnonstd-intrinsic was removed. | |
366 * The flag -falign-commons has been added to control the alignment of | |
367 variables in COMMON blocks, which is enabled by default in line | |
368 with previous GCC version. Using -fno-align-commons one can force | |
369 commons to be contiguous in memory as required by the Fortran | |
370 standard, however, this slows down the memory access. The option | |
371 -Walign-commons, which is enabled by default, warns when padding | |
372 bytes were added for alignment. The proper solution is to sort the | |
373 common objects by decreasing storage size, which avoids the | |
374 alignment problems. | |
375 * Fortran 2003 support has been extended: | |
376 + Wide characters (ISO 10646, UCS-4, kind=4) and UTF-8 I/O is | |
377 now supported (except internal reads from/writes to wide | |
378 strings). [10]-fbackslash now supports also \unnnn and | |
379 \Unnnnnnnn to enter Unicode characters. | |
380 + Asynchronous I/O (implemented as synchronous I/O) and the | |
381 decimal=, size=, sign=, pad=, blank=, and delim= specifiers | |
382 are now supported in I/O statements. | |
383 + Support for Fortran 2003 structure constructors and for array | |
384 constructor with typespec has been added. | |
385 + Procedure Pointers (but not yet as component in derived types | |
386 and as function results) are now supported. | |
387 + Abstract types, type extension, and type-bound procedures | |
388 (both PROCEDURE and GENERIC but not as operators). Note: As | |
389 CLASS/polymorphyic types are not implemented, type-bound | |
390 procedures with PASS accept as non-standard extension TYPE | |
391 arguments. | |
392 * Fortran 2008 support has been added: | |
393 + The -std=f2008 option and support for the file extensions | |
394 .f2008 and .F2008 has been added. | |
395 + The g0 format descriptor is now supported. | |
396 + The Fortran 2008 mathematical intrinsics ASINH, ACOSH, ATANH, | |
397 ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_*, HYPOT, and ERFC_SCALED | |
398 are now available (some of them existed as GNU extension | |
399 before). Note: The hyperbolic functions are not yet supporting | |
400 complex arguments and the three- argument version of BESSEL_*N | |
401 is not available. | |
402 + The bit intrinsics LEADZ and TRAILZ have been added. | |
403 | |
404 Java (GCJ) | |
405 | |
406 Ada | |
407 | |
408 * The Ada runtime now supports multilibs on many platforms including | |
409 x86_64, SPARC and PowerPC. Their build is enabled by default. | |
410 | |
411 New Targets and Target Specific Improvements | |
412 | |
413 ARM | |
414 | |
415 * GCC now supports optimizing for the Cortex-A9, Cortex-R4 and | |
416 Cortex-R4F processors and has many other improvements to | |
417 optimization for ARM processors. | |
418 * GCC now supports the VFPv3 variant with 16 double-precision | |
419 registers with -mfpu=vfpv3-d16. The option -mfpu=vfp3 has been | |
420 renamed to -mfpu=vfpv3. | |
421 * GCC now supports the -mfix-cortex-m3-ldrd option to work around an | |
422 erratum on Cortex-M3 processors. | |
423 * GCC now supports the __sync_* atomic operations for ARM EABI | |
424 GNU/Linux. | |
425 * The section anchors optimization is now enabled by default when | |
426 optimizing for ARM. | |
427 * GCC now uses a new EABI-compatible profiling interface for EABI | |
428 targets. This requires a function __gnu_mcount_nc, which is | |
429 provided by GNU libc versions 2.8 and later. | |
430 | |
431 AVR | |
432 | |
433 * The -mno-tablejump option has been deprecated because it has the | |
434 same effect as the -fno-jump-tables option. | |
435 * Added support for these new AVR devices: | |
436 + ATA6289 | |
437 + ATtiny13A | |
438 + ATtiny87 | |
439 + ATtiny167 | |
440 + ATtiny327 | |
441 + ATmega8C1 | |
442 + ATmega16C1 | |
443 + ATmega32C1 | |
444 + ATmega8M1 | |
445 + ATmega16M1 | |
446 + ATmega32M1 | |
447 + ATmega32U4 | |
448 + ATmega16HVB | |
449 + ATmega4HVD | |
450 + ATmega8HVD | |
451 + ATmega64C1 | |
452 + ATmega64M1 | |
453 + ATmega16U4 | |
454 + ATmega32U6 | |
455 + ATmega128RFA1 | |
456 + AT90PWM81 | |
457 + AT90SCR100 | |
458 + M3000F | |
459 + M3000S | |
460 + M3001B | |
461 | |
462 IA-32/x86-64 | |
463 | |
464 * Support for Intel AES built-in functions and code generation is | |
465 available via -maes. | |
466 * Support for Intel PCLMUL built-in function and code generation is | |
467 available via -mpclmul. | |
468 * Support for Intel AVX built-in functions and code generation is | |
469 available via -mavx. | |
470 * Automatically align the stack for local variables with alignment | |
471 requirement. | |
472 * GCC can now utilize the SVML library for vectorizing calls to a set | |
473 of C99 functions if -mveclibabi=svml is specified and you link to | |
474 an SVML ABI compatible library. | |
475 * A new target attribute was added to allow programmers to change the | |
476 target options like -msse2 or -march=k8 for an individual function. | |
477 You can also change the target options via the GCC target pragma | |
478 for functions defined after the pragma. | |
479 * GCC can now be configured with options --with-arch-32, | |
480 --with-arch-64, --with-cpu-32, --with-cpu-64, --with-tune-32 and | |
481 --with-tune-64 to control the default optimization separately for | |
482 32-bit and 64-bit modes. | |
483 | |
484 IA-32/IA64 | |
485 | |
486 * Support for __float128 (TFmode) IEEE quad type and corresponding | |
487 TCmode IEEE complex quad type is available via the soft-fp library | |
488 on IA-32/IA64 targets. This includes basic arithmetic operations | |
489 (addition, subtraction, negation, multiplication and division) on | |
490 __float128 real and TCmode complex values, the full set of IEEE | |
491 comparisons between __float128 values, conversions to and from | |
492 float, double and long double floating point types, as well as | |
493 conversions to and from signed or unsigned integer, signed or | |
494 unsigned long integer and signed or unsigned quad (TImode, IA64 | |
495 only) integer types. Additionally, all operations generate the full | |
496 set of IEEE exceptions and support the full set of IEEE rounding | |
497 modes. | |
498 | |
499 M68K/ColdFire | |
500 | |
501 * GCC now supports instruction scheduling for ColdFire V1, V3 and V4 | |
502 processors. (Scheduling support for ColdFire V2 processors was | |
503 added in GCC 4.3.) | |
504 * GCC now supports the -mxgot option to support programs requiring | |
505 many GOT entries on ColdFire. | |
506 * The m68k-*-linux-gnu target now builds multilibs by default. | |
507 | |
508 MIPS | |
509 | |
510 * MIPS Technologies have extended the original MIPS SVR4 ABI to | |
511 include support for procedure linkage tables (PLTs) and copy | |
512 relocations. These extensions allow GNU/Linux executables to use a | |
513 significantly more efficient code model than the one defined by the | |
514 original ABI. | |
515 GCC support for this code model is available via a new command-line | |
516 option, -mplt. There is also a new configure-time option, | |
517 --with-mips-plt, to make -mplt the default. | |
518 The new code model requires support from the assembler, the linker, | |
519 and the runtime C library. This support is available in binutils | |
520 2.19 and GLIBC 2.9. | |
521 * GCC can now generate MIPS16 code for 32-bit GNU/Linux executables | |
522 and 32-bit GNU/Linux shared libraries. This feature requires GNU | |
523 binutils 2.19 or above. | |
524 * Support for RMI's XLR processor is now available through the | |
525 -march=xlr and -mtune=xlr options. | |
526 * 64-bit targets can now perform 128-bit multiplications inline, | |
527 instead of relying on a libgcc function. | |
528 * Native GNU/Linux toolchains now support -march=native and | |
529 -mtune=native, which select the host processor. | |
530 * GCC now supports the R10K, R12K, R14K and R16K processors. The | |
531 canonical -march= and -mtune= names for these processors are | |
532 r10000, r12000, r14000 and r16000 respectively. | |
533 * GCC can now work around the side effects of speculative execution | |
534 on R10K processors. Please see the documentation of the | |
535 -mr10k-cache-barrier option for details. | |
536 * Support for the MIPS64 Release 2 instruction set has been added. | |
537 The option -march=mips64r2 enables generation of these | |
538 instructions. | |
539 * GCC now supports Cavium Networks' Octeon processor. This support is | |
540 available through the -march=octeon and -mtune=octeon options. | |
541 * GCC now supports STMicroelectronics' Loongson 2E/2F processors. The | |
542 canonical -march= and -mtune= names for these processors are | |
543 loongson2e and loongson2f. | |
544 | |
545 picochip | |
546 | |
547 Picochip is a 16-bit processor. A typical picoChip contains over 250 | |
548 small cores, each with small amounts of memory. There are three | |
549 processor variants (STAN, MEM and CTRL) with different instruction sets | |
550 and memory configurations and they can be chosen using the -mae option. | |
551 | |
552 This port is intended to be a "C" only port. | |
553 | |
554 Power Architecture and PowerPC | |
555 | |
556 * GCC now supports the e300c2, e300c3 and e500mc processors. | |
557 * GCC now supports Xilinx processors with a single-precision FPU. | |
558 * Decimal floating point is now supported for e500 processors. | |
559 | |
560 S/390, zSeries and System z9/z10 | |
561 | |
562 * Support for the IBM System z10 EC/BC processor has been added. When | |
563 using the -march=z10 option, the compiler will generate code making | |
564 use of instructions provided by the General-Instruction-Extension | |
565 Facility and the Execute-Extension Facility. | |
566 | |
567 VxWorks | |
568 | |
569 * GCC now supports the thread-local storage mechanism used on | |
570 VxWorks. | |
571 | |
572 Xtensa | |
573 | |
574 * GCC now supports thread-local storage (TLS) for Xtensa processor | |
575 configurations that include the Thread Pointer option. TLS also | |
576 requires support from the assembler and linker; this support is | |
577 provided in the GNU binutils beginning with version 2.19. | |
578 | |
579 Documentation improvements | |
580 | |
581 Other significant improvements | |
582 | |
583 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
584 are also [12]other ways to contact the FSF. | |
585 | |
586 These pages are maintained by [13]the GCC team. | |
587 | |
588 | |
589 For questions related to the use of GCC, please consult these web | |
590 pages and the [14]GCC manuals. If that fails, the | |
591 [15]gcc-help@gcc.gnu.org mailing list might help. | |
592 Please send comments on these web pages and the development of GCC to | |
593 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
594 All of our lists have [18]public archives. | |
595 | |
596 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
597 Floor, Boston, MA 02110, USA. | |
598 | |
599 Verbatim copying and distribution of this entire article is permitted | |
600 in any medium, provided this notice is preserved. | |
601 Last modified 2009-04-19 [19]Valid XHTML 1.0 | |
602 | |
603 References | |
604 | |
605 1. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted | |
606 2. http://gcc.gnu.org/gcc-4.4/porting_to.html | |
607 3. http://gcc.gnu.org/wiki/Graphite | |
608 4. http://openmp.org/wp/openmp-specifications/ | |
609 5. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html | |
610 6. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#id476343 | |
611 7. http://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html | |
612 8. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 | |
613 9. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 | |
614 10. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34 | |
615 11. mailto:gnu@gnu.org | |
616 12. http://www.gnu.org/home.html#ContactInfo | |
617 13. http://gcc.gnu.org/about.html | |
618 14. http://gcc.gnu.org/onlinedocs/ | |
619 15. mailto:gcc-help@gcc.gnu.org | |
620 16. mailto:gcc@gnu.org | |
621 17. mailto:gcc@gcc.gnu.org | |
622 18. http://gcc.gnu.org/lists.html | |
623 19. http://validator.w3.org/check/referer | |
624 ====================================================================== | |
625 http://gcc.gnu.org/gcc-4.3/index.html | |
626 GCC 4.3 Release Series | |
627 | |
628 January 24, 2009 | |
629 | |
630 The [1]GNU project and the GCC developers are pleased to announce the | |
631 release of GCC 4.3.3. | |
632 | |
633 This release is a bug-fix release, containing fixes for regressions in | |
634 GCC 4.3.2 relative to previous releases of GCC. | |
635 | |
636 Release History | |
637 | |
638 GCC 4.3.3 | |
639 January 24, 2009 ([2]changes) | |
640 | |
641 GCC 4.3.2 | |
642 August 27, 2008 ([3]changes) | |
643 | |
644 GCC 4.3.1 | |
645 June 6, 2008 ([4]changes) | |
646 | |
647 GCC 4.3.0 | |
648 March 5, 2008 ([5]changes) | |
649 | |
650 References and Acknowledgements | |
651 | |
652 GCC used to stand for the GNU C Compiler, but since the compiler | |
653 supports several other languages aside from C, it now stands for the | |
654 GNU Compiler Collection. | |
655 | |
656 A list of [6]successful builds is updated as new information becomes | |
657 available. | |
658 | |
659 The GCC developers would like to thank the numerous people that have | |
660 contributed new features, improvements, bug fixes, and other changes as | |
661 well as test results to GCC. This [7]amazing group of volunteers is | |
662 what makes GCC successful. | |
663 | |
664 For additional information about GCC please refer to the [8]GCC project | |
665 web site or contact the [9]GCC development mailing list. | |
666 | |
667 To obtain GCC please use [10]our mirror sites or [11]our SVN server. | |
668 | |
669 Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There | |
670 are also [13]other ways to contact the FSF. | |
671 | |
672 These pages are maintained by [14]the GCC team. | |
673 | |
674 | |
675 For questions related to the use of GCC, please consult these web | |
676 pages and the [15]GCC manuals. If that fails, the | |
677 [16]gcc-help@gcc.gnu.org mailing list might help. | |
678 Please send comments on these web pages and the development of GCC to | |
679 our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. | |
680 All of our lists have [19]public archives. | |
681 | |
682 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
683 Floor, Boston, MA 02110, USA. | |
684 | |
685 Verbatim copying and distribution of this entire article is permitted | |
686 in any medium, provided this notice is preserved. | |
687 Last modified 2009-01-24 [20]Valid XHTML 1.0 | |
688 | |
689 References | |
690 | |
691 1. http://www.gnu.org/ | |
692 2. http://gcc.gnu.org/gcc-4.3/changes.html | |
693 3. http://gcc.gnu.org/gcc-4.3/changes.html | |
694 4. http://gcc.gnu.org/gcc-4.3/changes.html | |
695 5. http://gcc.gnu.org/gcc-4.3/changes.html | |
696 6. http://gcc.gnu.org/gcc-4.3/buildstat.html | |
697 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
698 8. http://gcc.gnu.org/index.html | |
699 9. mailto:gcc@gcc.gnu.org | |
700 10. http://gcc.gnu.org/mirrors.html | |
701 11. http://gcc.gnu.org/svn.html | |
702 12. mailto:gnu@gnu.org | |
703 13. http://www.gnu.org/home.html#ContactInfo | |
704 14. http://gcc.gnu.org/about.html | |
705 15. http://gcc.gnu.org/onlinedocs/ | |
706 16. mailto:gcc-help@gcc.gnu.org | |
707 17. mailto:gcc@gnu.org | |
708 18. mailto:gcc@gcc.gnu.org | |
709 19. http://gcc.gnu.org/lists.html | |
710 20. http://validator.w3.org/check/referer | |
711 ====================================================================== | |
712 http://gcc.gnu.org/gcc-4.3/changes.html | |
713 GCC 4.3 Release Series | |
714 Changes, New Features, and Fixes | |
715 | |
716 The latest release in the 4.3 release series is [1]GCC 4.3.3. | |
717 | |
718 Caveats | |
719 | |
720 * GCC requires the [2]GMP and [3]MPFR libraries for building all the | |
721 various front-end languages it supports. See the [4]prerequisites | |
722 page for version requirements. | |
723 * ColdFire targets now treat long double as having the same format as | |
724 double. In earlier versions of GCC, they used the 68881 long double | |
725 format instead. | |
726 * The m68k-uclinux target now uses the same calling conventions as | |
727 m68k-linux-gnu. You can select the original calling conventions by | |
728 configuring for m68k-uclinuxoldabi instead. Note that | |
729 m68k-uclinuxoldabi also retains the original 80-bit long double on | |
730 ColdFire targets. | |
731 * The -fforce-mem option has been removed because it has had no | |
732 effect in the last few GCC releases. | |
733 * The i386 -msvr3-shlib option has been removed since it is no longer | |
734 used. | |
735 * Fastcall for i386 has been changed not to pass aggregate arguments | |
736 in registers, following Microsoft compilers. | |
737 * Support for the AOF assembler has been removed from the ARM back | |
738 end; this affects only the targets arm-semi-aof and armel-semi-aof, | |
739 which are no longer recognized. We removed these targets without a | |
740 deprecation period because we discovered that they have been | |
741 unusable since GCC 4.0.0. | |
742 * Support for the TMS320C3x/C4x processor (targets c4x-* and tic4x-*) | |
743 has been removed. This support had been deprecated since GCC 4.0.0. | |
744 * Support for a number of older systems and recently unmaintained or | |
745 untested target ports of GCC has been declared obsolete in GCC 4.3. | |
746 Unless there is activity to revive them, the next release of GCC | |
747 will have their sources permanently removed. | |
748 All GCC ports for the following processor architectures have been | |
749 declared obsolete: | |
750 + Morpho MT (mt-*) | |
751 The following aliases for processor architectures have been | |
752 declared obsolete. Users should use the indicated generic target | |
753 names instead, with compile-time options such as -mcpu or | |
754 configure-time options such as --with-cpu to control the | |
755 configuration more precisely. | |
756 + strongarm*-*-*, ep9312*-*-*, xscale*-*-* (use arm*-*-* | |
757 instead). | |
758 + parisc*-*-* (use hppa*-*-* instead). | |
759 + m680[012]0-*-* (use m68k-*-* instead). | |
760 All GCC ports for the following operating systems have been | |
761 declared obsolete: | |
762 + BeOS (*-*-beos*) | |
763 + kaOS (*-*-kaos*) | |
764 + GNU/Linux using the a.out object format (*-*-linux*aout*) | |
765 + GNU/Linux using version 1 of the GNU C Library | |
766 (*-*-linux*libc1*) | |
767 + Solaris versions before Solaris 7 (*-*-solaris2.[0-6], | |
768 *-*-solaris2.[0-6].*) | |
769 + Miscellaneous System V (*-*-sysv*) | |
770 + WindISS (*-*-windiss*) | |
771 Also, those for some individual systems on particular architectures | |
772 have been obsoleted: | |
773 + UNICOS/mk on DEC Alpha (alpha*-*-unicosmk*) | |
774 + CRIS with a.out object format (cris-*-aout) | |
775 + BSD 4.3 on PA-RISC (hppa1.1-*-bsd*) | |
776 + OSF/1 on PA-RISC (hppa1.1-*-osf*) | |
777 + PRO on PA-RISC (hppa1.1-*-pro*) | |
778 + Sequent PTX on IA32 (i[34567]86-sequent-ptx4*, | |
779 i[34567]86-sequent-sysv4*) | |
780 + SCO Open Server 5 on IA32 (i[34567]86-*-sco3.2v5*) | |
781 + UWIN on IA32 (i[34567]86-*-uwin*) (support for UWIN as a host | |
782 was previously [5]removed in 2001, leaving only the support | |
783 for UWIN as a target now being deprecated) | |
784 + ChorusOS on PowerPC (powerpc-*-chorusos*) | |
785 + All VAX configurations apart from NetBSD and OpenBSD | |
786 (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*) | |
787 * The [6]-Wconversion option has been modified. Its purpose now is to | |
788 warn for implicit conversions that may alter a value. This new | |
789 behavior is available for both C and C++. Warnings about | |
790 conversions between signed and unsigned integers can be disabled by | |
791 using -Wno-sign-conversion. In C++, they are disabled by default | |
792 unless -Wsign-conversion is explicitly requested. The old behavior | |
793 of -Wconversion, that is, warn for prototypes causing a type | |
794 conversion that is different from what would happen to the same | |
795 argument in the absence of a prototype, has been moved to a new | |
796 option -Wtraditional-conversion, which is only available for C. | |
797 * The -m386, -m486, -mpentium and -mpentiumpro tuning options have | |
798 been removed because they were deprecated for more than 3 GCC major | |
799 releases. Use -mtune=i386, -mtune=i486, -mtune=pentium or | |
800 -mtune=pentiumpro as a replacement. | |
801 * The -funsafe-math-optimizations option now automatically turns on | |
802 -fno-trapping-math in addition to -fno-signed-zeros, as it enables | |
803 reassociation and thus may introduce or remove traps. | |
804 * The -ftree-vectorize option is now on by default under -O3. In | |
805 order to generate code for a SIMD extension, it has to be enabled | |
806 as well: use -maltivec for PowerPC platforms and -msse/-msse2 for | |
807 i?86 and x86_64. | |
808 * More information on porting to GCC 4.3 from previous versions of | |
809 GCC can be found in the [7]porting guide for this release. | |
810 | |
811 General Optimizer Improvements | |
812 | |
813 * The GCC middle-end has been integrated with the [8]MPFR library. | |
814 This allows GCC to evaluate and replace at compile-time calls to | |
815 built-in math functions having constant arguments with their | |
816 mathematically equivalent results. In making use of [9]MPFR, GCC | |
817 can generate correct results regardless of the math library | |
818 implementation or floating point precision of the host platform. | |
819 This also allows GCC to generate identical results regardless of | |
820 whether one compiles in native or cross-compile configurations to a | |
821 particular target. The following built-in functions take advantage | |
822 of this new capability: acos, acosh, asin, asinh, atan2, atan, | |
823 atanh, cbrt, cos, cosh, drem, erf, erfc, exp10, exp2, exp, expm1, | |
824 fdim, fma, fmax, fmin, gamma_r, hypot, j0, j1, jn, lgamma_r, log10, | |
825 log1p, log2, log, pow10, pow, remainder, remquo, sin, sincos, sinh, | |
826 tan, tanh, tgamma, y0, y1 and yn. The float and long double | |
827 variants of these functions (e.g. sinf and sinl) are also handled. | |
828 The sqrt and cabs functions with constant arguments were already | |
829 optimized in prior GCC releases. Now they also use [10]MPFR. | |
830 * A new forward propagation pass on RTL was added. The new pass | |
831 replaces several slower transformations, resulting in compile-time | |
832 improvements as well as better code generation in some cases. | |
833 * A new command-line switch -frecord-gcc-switches has been added to | |
834 GCC, although it is only enabled for some targets. The switch | |
835 causes the command line that was used to invoke the compiler to be | |
836 recorded into the object file that is being created. The exact | |
837 format of this recording is target and binary file format | |
838 dependent, but it usually takes the form of a note section | |
839 containing ASCII text. The switch is related to the -fverbose-asm | |
840 switch, but that one only records the information in the assembler | |
841 output file as comments, so the information never reaches the | |
842 object file. | |
843 * The inliner heuristic is now aware of stack frame consumption. New | |
844 command-line parameters --param large-stack-frame and --param | |
845 large-stack-frame-growth can be used to limit stack frame size | |
846 growth caused by inlining. | |
847 * During feedback directed optimizations, the expected block size the | |
848 memcpy, memset and bzero functions operate on is discovered and for | |
849 cases of commonly used small sizes, specialized inline code is | |
850 generated. | |
851 * __builtin_expect no longer requires its argument to be a compile | |
852 time constant. | |
853 * Interprocedural optimization was reorganized to work on functions | |
854 in SSA form. This enables more precise and cheaper dataflow | |
855 analysis and makes writing interprocedural optimizations easier. | |
856 The following improvements have been implemented on top of this | |
857 framework: | |
858 + Pre-inline optimization: Selected local optimization passes | |
859 are run before the inliner (and other interprocedural passes) | |
860 are executed. This significantly improves the accuracy of code | |
861 growth estimates used by the inliner and reduces the overall | |
862 memory footprint for large compilation units. | |
863 + Early inlining (a simple bottom-up inliner pass inlining only | |
864 functions whose body is smaller than the expected call | |
865 overhead) is now executed with the early optimization passes, | |
866 thus inlining already optimized function bodies into an | |
867 unoptimized function that is subsequently optimized by early | |
868 optimizers. This enables the compiler to quickly eliminate | |
869 abstraction penalty in C++ programs. | |
870 + Interprocedural constant propagation now operate on SSA form | |
871 increasing accuracy of the analysis. | |
872 * A new internal representation for GIMPLE statements has been | |
873 contributed, resulting in compile-time memory savings. | |
874 * The vectorizer was enhanced to support vectorization of outer | |
875 loops, intra-iteration parallelism (loop-aware SLP), vectorization | |
876 of strided accesses and loops with multiple data-types. Run-time | |
877 dependency testing using loop versioning was added. The cost model, | |
878 turned on by -fvect-cost-model, was developed. | |
879 | |
880 New Languages and Language specific improvements | |
881 | |
882 * We have added new command-line options | |
883 -finstrument-functions-exclude-function-list and | |
884 -finstrument-functions-exclude-file-list. They provide more control | |
885 over which functions are annotated by the -finstrument-functions | |
886 option. | |
887 | |
888 C family | |
889 | |
890 * Implicit conversions between generic vector types are now only | |
891 permitted when the two vectors in question have the same number of | |
892 elements and compatible element types. (Note that the restriction | |
893 involves compatible element types, not implicitly-convertible | |
894 element types: thus, a vector type with element type int may not be | |
895 implicitly converted to a vector type with element type unsigned | |
896 int.) This restriction, which is in line with specifications for | |
897 SIMD architectures such as AltiVec, may be relaxed using the flag | |
898 -flax-vector-conversions. This flag is intended only as a | |
899 compatibility measure and should not be used for new code. | |
900 * -Warray-bounds has been added and is now enabled by default for | |
901 -Wall . It produces warnings for array subscripts that can be | |
902 determined at compile time to be always out of bounds. | |
903 -Wno-array-bounds will disable the warning. | |
904 * The constructor and destructor function attributes now accept | |
905 optional priority arguments which control the order in which the | |
906 constructor and destructor functions are run. | |
907 * New [11]command-line options -Wtype-limits, | |
908 -Wold-style-declaration, -Wmissing-parameter-type, -Wempty-body, | |
909 -Wclobbered and -Wignored-qualifiers have been added for finer | |
910 control of the diverse warnings enabled by -Wextra. | |
911 * A new function attribute alloc_size has been added to mark up | |
912 malloc style functions. For constant sized allocations this can be | |
913 used to find out the size of the returned pointer using the | |
914 __builtin_object_size() function for buffer overflow checking and | |
915 similar. This supplements the already built-in malloc and calloc | |
916 constant size handling. | |
917 * Integer constants written in binary are now supported as a GCC | |
918 extension. They consist of a prefix 0b or 0B, followed by a | |
919 sequence of 0 and 1 digits. | |
920 * A new predefined macro __COUNTER__ has been added. It expands to | |
921 sequential integral values starting from 0. In conjunction with the | |
922 ## operator, this provides a convenient means to generate unique | |
923 identifiers. | |
924 * A new command-line option -fdirectives-only has been added. It | |
925 enables a special preprocessing mode which improves the performance | |
926 of applications like distcc and ccache. | |
927 * Fixed-point data types and operators have been added. They are | |
928 based on Chapter 4 of the Embedded-C specification (n1169.pdf). | |
929 Currently, only MIPS targets are supported. | |
930 * Decimal floating-point arithmetic based on draft ISO/IEC TR 24732, | |
931 N1241, is now supported as a GCC extension to C for targets | |
932 i[34567]86-*-linux-gnu, powerpc*-*-linux-gnu, s390*-ibm-linux-gnu, | |
933 and x86_64-*-linux-gnu. The feature introduces new data types | |
934 _Decimal32, _Decimal64, and _Decimal128 with constant suffixes DF, | |
935 DD, and DL. | |
936 | |
937 C++ | |
938 | |
939 * [12]Experimental support for the upcoming ISO C++ standard, C++0x. | |
940 * -Wc++0x-compat has been added and is now enabled by default for | |
941 -Wall. It produces warnings for constructs whose meaning differs | |
942 between ISO C++ 1998 and C++0x. | |
943 * The -Wparentheses option now works for C++ as it does for C. It | |
944 warns if parentheses are omitted when operators with confusing | |
945 precedence are nested. It also warns about ambiguous else | |
946 statements. Since -Wparentheses is enabled by -Wall, this may cause | |
947 additional warnings with existing C++ code which uses -Wall. These | |
948 new warnings may be disabled by using -Wall -Wno-parentheses. | |
949 * The -Wmissing-declarations now works for C++ as it does for C. | |
950 * The -fvisibility-ms-compat flag was added, to make it easier to | |
951 port larger projects using shared libraries from Microsoft's Visual | |
952 Studio to ELF and Mach-O systems. | |
953 * C++ attribute handling has been overhauled for template arguments | |
954 (ie dependent types). In particular, __attribute__((aligned(T))); | |
955 works for C++ types. | |
956 | |
957 Runtime Library (libstdc++) | |
958 | |
959 * [13]Experimental support for the upcoming ISO C++ standard, C++0x. | |
960 * Support for TR1 mathematical special functions and regular | |
961 expressions. ([14]Implementation status of TR1) | |
962 * Default what implementations give more elaborate exception strings | |
963 for bad_cast, bad_typeid, bad_exception, and bad_alloc. | |
964 * Header dependencies have been streamlined, reducing unnecessary | |
965 includes and pre-processed bloat. | |
966 * Variadic template implementations of items in <tuple> and | |
967 <functional>. | |
968 * An experimental [15]parallel mode has been added. This is a | |
969 parallel implementation of many C++ Standard library algorithms, | |
970 like std::accumulate, std::for_each, std::transform, or std::sort, | |
971 to give but four examples. These algorithms can be substituted for | |
972 the normal (sequential) libstdc++ algorithms on a piecemeal basis, | |
973 or all existing algorithms can be transformed via the | |
974 -D_GLIBCXX_PARALLEL macro. | |
975 * Debug mode versions of classes in <unordered_set> and | |
976 <unordered_map>. | |
977 * Formal deprecation of <ext/hash_set> and <ext/hash_map>, which are | |
978 now <backward/hash_set> and <backward/hash_map>. This code: | |
979 #include <ext/hash_set> | |
980 __gnu_cxx::hash_set<int> s; | |
981 | |
982 Can be transformed (in order of preference) to: | |
983 #include <tr1/unordered_set> | |
984 std::tr1::unordered_set<int> s; | |
985 | |
986 or | |
987 #include <backward/hash_set> | |
988 __gnu_cxx::hash_set<int> s; | |
989 | |
990 Similar transformations apply to __gnu_cxx::hash_map, | |
991 __gnu_cxx::hash_multimap, __gnu_cxx::hash_set, | |
992 __gnu_cxx::hash_multiset. | |
993 | |
994 Fortran | |
995 | |
996 * Due to the fact that the [16]GMP and [17]MPFR libraries are | |
997 required for all languages, Fortran is no longer special in this | |
998 regard and is available by default. | |
999 * The [18]-fexternal-blas option has been added, which generates | |
1000 calls to BLAS routines for intrinsic matrix operations such as | |
1001 matmul rather than using the built-in algorithms. | |
1002 * Support to give a backtrace (compiler flag -fbacktrace or | |
1003 environment variable GFORTRAN_ERROR_BACKTRACE; on glibc systems | |
1004 only) or a core dump (-fdump-core, GFORTRAN_ERROR_DUMPCORE) when a | |
1005 run-time error occured. | |
1006 * GNU Fortran now defines __GFORTRAN__ when it runs the C | |
1007 preprocessor (CPP). | |
1008 * The [19]-finit-local-zero, -finit-real, -finit-integer, | |
1009 -finit-character, and -finit-logical options have been added, which | |
1010 can be used to initialize local variables. | |
1011 * The intrinsic procedures [20]GAMMA and [21]LGAMMA have been added, | |
1012 which calculate the Gamma function and its logarithm. Use EXTERNAL | |
1013 gamma if you want to use your own gamma function. | |
1014 * GNU Fortran now regards the backslash character as literal (as | |
1015 required by the Fortran 2003 standard); using [22]-fbackslash GNU | |
1016 Fortran interprets backslashes as C-style escape characters. | |
1017 * The [23]interpretation of binary, octal and hexadecimal (BOZ) | |
1018 literal constants has been changed. Before they were always | |
1019 interpreted as integer; now they are bit-wise transferred as | |
1020 argument of INT, REAL, DBLE and CMPLX as required by the Fortran | |
1021 2003 standard, and for real and complex variables in DATA | |
1022 statements or when directly assigned to real and complex variables. | |
1023 Everywhere else and especially in expressions they are still | |
1024 regarded as integer constants. | |
1025 * Fortran 2003 support has been extended: | |
1026 + Intrinsic statements IMPORT, PROTECTED, VALUE and VOLATILE | |
1027 + Pointer intent | |
1028 + Intrinsic module ISO_ENV_FORTRAN | |
1029 + Interoperability with C (ISO C Bindings) | |
1030 + ABSTRACT INTERFACES and PROCEDURE statements (without POINTER | |
1031 attribute) | |
1032 + Fortran 2003 BOZ | |
1033 | |
1034 Java (GCJ) | |
1035 | |
1036 * gcj now uses the Eclipse Java compiler for its Java parsing needs. | |
1037 This enables the use of all 1.5 language features, and fixes most | |
1038 existing front end bugs. | |
1039 * libgcj now supports all 1.5 language features which require runtime | |
1040 support: foreach, enum, annotations, generics, and auto-boxing. | |
1041 * We've made many changes to the tools shipped with gcj. | |
1042 + The old jv-scan tool has been removed. This tool never really | |
1043 worked properly. There is no replacement. | |
1044 + gcjh has been rewritten. Some of its more obscure options no | |
1045 longer work, but are still recognized in an attempt at | |
1046 compatibility. gjavah is a new program with similar | |
1047 functionality but different command-line options. | |
1048 + grmic and grmiregistry have been rewritten. grmid has been | |
1049 added. | |
1050 + gjar replaces the old fastjar. | |
1051 + gjarsigner (used for signing jars), gkeytool (used for key | |
1052 management), gorbd (for CORBA), gserialver (computes | |
1053 serialization UIDs), and gtnameserv (also for CORBA) are now | |
1054 installed. | |
1055 * The ability to dump the contents of the java run time heap to a | |
1056 file for off-line analysis has been added. The heap dumps may be | |
1057 analyzed with the new gc-analyze tool. They may be generated on | |
1058 out-of-memory conditions or on demand and are controlled by the new | |
1059 run time class gnu.gcj.util.GCInfo. | |
1060 * java.util.TimeZone can now read files from /usr/share/zoneinfo to | |
1061 provide correct, updated, timezone information. This means that | |
1062 packagers no longer have to update libgcj when a time zone change | |
1063 is published. | |
1064 | |
1065 New Targets and Target Specific Improvements | |
1066 | |
1067 IA-32/x86-64 | |
1068 | |
1069 * Tuning for Intel Core 2 processors is available via -mtune=core2 | |
1070 and -march=core2. | |
1071 * Tuning for AMD Geode processors is available via -mtune=geode and | |
1072 -march=geode. | |
1073 * Code generation of block move (memcpy) and block set (memset) was | |
1074 rewritten. GCC can now pick the best algorithm (loop, unrolled | |
1075 loop, instruction with rep prefix or a library call) based on the | |
1076 size of the block being copied and the CPU being optimized for. A | |
1077 new option -minline-stringops-dynamically has been added. With this | |
1078 option string operations of unknown size are expanded such that | |
1079 small blocks are copied by in-line code, while for large blocks a | |
1080 library call is used. This results in faster code than | |
1081 -minline-all-stringops when the library implementation is capable | |
1082 of using cache hierarchy hints. The heuristic choosing the | |
1083 particular algorithm can be overwritten via -mstringop-strategy. | |
1084 Newly also memset of values different from 0 is inlined. | |
1085 * GCC no longer places the cld instruction before string operations. | |
1086 Both i386 and x86-64 ABI documents mandate the direction flag to be | |
1087 clear at the entry of a function. It is now invalid to set the flag | |
1088 in asm statement without reseting it afterward. | |
1089 * Support for SSSE3 built-in functions and code generation are | |
1090 available via -mssse3. | |
1091 * Support for SSE4.1 built-in functions and code generation are | |
1092 available via -msse4.1. | |
1093 * Support for SSE4.2 built-in functions and code generation are | |
1094 available via -msse4.2. | |
1095 * Both SSE4.1 and SSE4.2 support can be enabled via -msse4. | |
1096 * A new set of options -mpc32, -mpc64 and -mpc80 have been added to | |
1097 allow explicit control of x87 floating point precision. | |
1098 * Support for __float128 (TFmode) IEEE quad type and corresponding | |
1099 TCmode IEEE complex quad type is available via the soft-fp library | |
1100 on x86_64 targets. This includes basic arithmetic operations | |
1101 (addition, subtraction, negation, multiplication and division) on | |
1102 __float128 real and TCmode complex values, the full set of IEEE | |
1103 comparisons between __float128 values, conversions to and from | |
1104 float, double and long double floating point types, as well as | |
1105 conversions to and from signed or unsigned integer, signed or | |
1106 unsigned long integer and signed or unsigned quad (TImode) integer | |
1107 types. Additionally, all operations generate the full set of IEEE | |
1108 exceptions and support the full set of IEEE rounding modes. | |
1109 * GCC can now utilize the ACML library for vectorizing calls to a set | |
1110 of C99 functions on x86_64 if -mveclibabi=acml is specified and you | |
1111 link to an ACML ABI compatible library. | |
1112 | |
1113 ARM | |
1114 | |
1115 * Compiler and Library support for Thumb-2 and the ARMv7 architecture | |
1116 has been added. | |
1117 | |
1118 CRIS | |
1119 | |
1120 New features | |
1121 | |
1122 * Compiler and Library support for the CRIS v32 architecture, as | |
1123 found in Axis Communications ETRAX FS and ARTPEC-3 chips, has been | |
1124 added. | |
1125 | |
1126 Configuration changes | |
1127 | |
1128 * The cris-*-elf target now includes support for CRIS v32, including | |
1129 libraries, through the -march=v32 option. | |
1130 * A new crisv32-*-elf target defaults to generate code for CRIS v32. | |
1131 * A new crisv32-*-linux* target defaults to generate code for CRIS | |
1132 v32. | |
1133 * The cris-*-aout target has been obsoleted. | |
1134 | |
1135 Improved support for built-in functions | |
1136 | |
1137 * GCC can now use the lz and swapwbr instructions to implement the | |
1138 __builtin_clz, __builtin_ctz and __builtin_ffs family of functions. | |
1139 * __builtin_bswap32 is now implemented using the swapwb instruction, | |
1140 when available. | |
1141 | |
1142 m68k and ColdFire | |
1143 | |
1144 New features | |
1145 | |
1146 * Support for several new ColdFire processors has been added. You can | |
1147 generate code for them using the new -mcpu option. | |
1148 * All targets now support ColdFire processors. | |
1149 * m68k-uclinux targets have improved support for C++ constructors and | |
1150 destructors, and for shared libraries. | |
1151 * It is now possible to set breakpoints on the first or last line of | |
1152 a function, even if there are no statements on that line. | |
1153 | |
1154 Optimizations | |
1155 | |
1156 * Support for sibling calls has been added. | |
1157 * More use is now made of the ColdFire mov3q instruction. | |
1158 * __builtin_clz is now implemented using the ff1 ColdFire | |
1159 instruction, when available. | |
1160 * GCC now honors the -m68010 option. 68010 code now uses clr rather | |
1161 than move to zero volatile memory. | |
1162 * 68020 targets and above can now use symbol(index.size*scale) | |
1163 addresses for indexed array accesses. Earlier compilers would | |
1164 always load the symbol into a base register first. | |
1165 | |
1166 Configuration changes | |
1167 | |
1168 * All m68k and ColdFire targets now allow the default processor to be | |
1169 set at configure time using --with-cpu. | |
1170 * A --with-arch configuration option has been added. This option | |
1171 allows you to restrict a target to ColdFire or non-ColdFire | |
1172 processors. | |
1173 | |
1174 Preprocessor macros | |
1175 | |
1176 * An __mcfv*__ macro is now defined for all ColdFire targets. | |
1177 (Earlier versions of GCC only defined __mcfv4e__.) | |
1178 * __mcf_cpu_*, __mcf_family_* and __mcffpu__ macros have been added. | |
1179 * All targets now define __mc68010 and __mc68010__ when generating | |
1180 68010 code. | |
1181 | |
1182 Command-line changes | |
1183 | |
1184 * New command-line options -march, -mcpu, -mtune and -mhard-float | |
1185 have been added. These options apply to both m68k and ColdFire | |
1186 targets. | |
1187 * -mno-short, -mno-bitfield and -mno-rtd are now accepted as negative | |
1188 versions of -mshort, etc. | |
1189 * -fforce-addr has been removed. It is now ignored by the compiler. | |
1190 | |
1191 Other improvements | |
1192 | |
1193 * ColdFire targets now try to maintain a 4-byte-aligned stack where | |
1194 possible. | |
1195 * m68k-uclinux targets now try to avoid situations that lead to the | |
1196 load-time error: BINFMT_FLAT: reloc outside program. | |
1197 | |
1198 MIPS | |
1199 | |
1200 Changes to existing configurations | |
1201 | |
1202 * libffi and libjava now support all three GNU/Linux ABIs: o32, n32 | |
1203 and n64. Every GNU/Linux configuration now builds these libraries | |
1204 by default. | |
1205 * GNU/Linux configurations now generate -mno-shared code unless | |
1206 overridden by -fpic, -fPIC, -fpie or -fPIE. | |
1207 * mipsisa32*-linux-gnu configurations now generate hard-float code by | |
1208 default, just like other mipsisa32* and mips*-linux-gnu | |
1209 configurations. You can build a soft-float version of any | |
1210 mips*-linux-gnu configuration by passing --with-float=soft to | |
1211 configure. | |
1212 * mips-wrs-vxworks now supports run-time processes (RTPs). | |
1213 | |
1214 Changes to existing command-line options | |
1215 | |
1216 * The -march and -mtune options no longer accept 24k as a processor | |
1217 name. Please use 24kc, 24kf2_1 or 24kf1_1 instead. | |
1218 * The -march and -mtune options now accept 24kf2_1, 24kef2_1 and | |
1219 34kf2_1 as synonyms for 24kf, 24kef and 34kf respectively. The | |
1220 options also accept 24kf1_1, 24kef1_1 and 34kf1_1 as synonyms for | |
1221 24kx, 24kex and 34kx. | |
1222 | |
1223 New configurations | |
1224 | |
1225 GCC now supports the following configurations: | |
1226 * mipsisa32r2*-linux-gnu*, which generates MIPS32 revision 2 code by | |
1227 default. Earlier releases also recognized this configuration, but | |
1228 they treated it in the same way as mipsisa32*-linux-gnu*. Note that | |
1229 you can customize any mips*-linux-gnu* configuration to a | |
1230 particular ISA or processor by passing an appropriate --with-arch | |
1231 option to configure. | |
1232 * mipsisa*-sde-elf*, which provides compatibility with MIPS | |
1233 Technologies' SDE toolchains. The configuration uses the SDE | |
1234 libraries by default, but you can use it like other newlib-based | |
1235 ELF configurations by passing --with-newlib to configure. It is the | |
1236 only configuration besides mips64vr*-elf* to build MIPS16 as well | |
1237 as non-MIPS16 libraries. | |
1238 * mipsisa*-elfoabi*, which is similar to the general mipsisa*-elf* | |
1239 configuration, but uses the o32 and o64 ABIs instead of the 32-bit | |
1240 and 64-bit forms of the EABI. | |
1241 | |
1242 New processors and application-specific extensions | |
1243 | |
1244 * Support for the SmartMIPS ASE is available through the new | |
1245 -msmartmips option. | |
1246 * Support for revision 2 of the DSP ASE is available through the new | |
1247 -mdspr2 option. A new preprocessor macro called __mips_dsp_rev | |
1248 indicates the revision of the ASE in use. | |
1249 * Support for the 4KS and 74K families of processors is available | |
1250 through the -march and -mtune options. | |
1251 | |
1252 Improved support for built-in functions | |
1253 | |
1254 * GCC can now use load-linked, store-conditional and sync | |
1255 instructions to implement atomic built-in functions such as | |
1256 __sync_fetch_and_add. The memory reference must be 4 bytes wide for | |
1257 32-bit targets and either 4 or 8 bytes wide for 64-bit targets. | |
1258 * GCC can now use the clz and dclz instructions to implement the | |
1259 __builtin_ctz and __builtin_ffs families of functions. | |
1260 * There is a new __builtin___clear_cache function for flushing the | |
1261 instruction cache. GCC expands this function inline on MIPS32 | |
1262 revision 2 targets, otherwise it calls the function specified by | |
1263 -mcache-flush-func. | |
1264 | |
1265 MIPS16 improvements | |
1266 | |
1267 * GCC can now compile objects that contain a mixture of MIPS16 and | |
1268 non-MIPS16 code. There are two new attributes, mips16 and nomips16, | |
1269 for specifying which mode a function should use. | |
1270 * A new option called -minterlink-mips16 makes non-MIPS16 code | |
1271 link-compatible with MIPS16 code. | |
1272 * After many bug fixes, the long-standing MIPS16 -mhard-float support | |
1273 should now work fairly reliably. | |
1274 * GCC can now use the MIPS16e save and restore instructions. | |
1275 * -fsection-anchors now works in MIPS16 mode. MIPS16 code compiled | |
1276 with -G0 -fsection-anchors is often smaller than code compiled with | |
1277 -G8. However, please note that you must usually compile all objects | |
1278 in your application with the same -G option; see the documentation | |
1279 of -G for details. | |
1280 * A new option called-mcode-readable specifies which instructions are | |
1281 allowed to load from the code segment. -mcode-readable=yes is the | |
1282 default and says that any instruction may load from the code | |
1283 segment. The other alternatives are -mcode-readable=pcrel, which | |
1284 says that only PC-relative MIPS16 instructions may load from the | |
1285 code segment, and -mcode-readable=no, which says that no | |
1286 instruction may do so. Please see the documentation for more | |
1287 details, including example uses. | |
1288 | |
1289 Small-data improvements | |
1290 | |
1291 There are three new options for controlling small data: | |
1292 * -mno-extern-sdata, which disables small-data accesses for | |
1293 externally-defined variables. Code compiled with -Gn | |
1294 -mno-extern-sdata will be link-compatible with any -G setting | |
1295 between -G0 and -Gn inclusive. | |
1296 * -mno-local-sdata, which disables the use of small-data sections for | |
1297 data that is not externally visible. This option can be a useful | |
1298 way of reducing small-data usage in less performance-critical parts | |
1299 of an application. | |
1300 * -mno-gpopt, which disables the use of the $gp register while still | |
1301 honoring the -G limit when placing externally-visible data. This | |
1302 option implies -mno-extern-sdata and -mno-local-sdata and it can be | |
1303 useful in situations where $gp does not necessarily hold the | |
1304 expected value. | |
1305 | |
1306 Miscellaneous improvements | |
1307 | |
1308 * There is a new option called -mbranch-cost for tweaking the | |
1309 perceived cost of branches. | |
1310 * If GCC is configured to use a version of GAS that supports the | |
1311 .gnu_attribute directive, it will use that directive to record | |
1312 certain properties of the output code. .gnu_attribute is new to GAS | |
1313 2.18. | |
1314 * There are two new function attributes, near and far, for overriding | |
1315 the command-line setting of -mlong-calls on a function-by-function | |
1316 basis. | |
1317 * -mfp64, which previously required a 64-bit target, now works with | |
1318 MIPS32 revision 2 targets as well. The mipsisa*-elfoabi* and | |
1319 mipsisa*-sde-elf* configurations provide suitable library support. | |
1320 * GCC now recognizes the -mdmx and -mmt options and passes them down | |
1321 to the assembler. It does nothing else with the options at present. | |
1322 | |
1323 SPU (Synergistic Processor Unit) of the Cell Broadband Engine Architecture | |
1324 (BEA) | |
1325 | |
1326 * Support has been added for this new architecture. | |
1327 | |
1328 RS6000 (POWER/PowerPC) | |
1329 | |
1330 * Support for the PowerPC 750CL paired-single instructions has been | |
1331 added with a new powerpc-*-linux*paired* target configuration. It | |
1332 is enabled by an associated -mpaired option and can be accessed | |
1333 using new built-in functions. | |
1334 * Support for auto-detecting architecture and system configuration to | |
1335 auto-select processor optimization tuning. | |
1336 * Support for VMX on AIX 5.3 has been added. | |
1337 * Support for AIX Version 6.1 has been added. | |
1338 | |
1339 S/390, zSeries and System z9 | |
1340 | |
1341 * Support for the IBM System z9 EC/BC processor (z9 GA3) has been | |
1342 added. When using the -march=z9-ec option, the compiler will | |
1343 generate code making use of instructions provided by the decimal | |
1344 floating point facility and the floating point conversion facility | |
1345 (pfpo). Besides the instructions used to implement decimal floating | |
1346 point operations these facilities also contain instructions to move | |
1347 between general purpose and floating point registers and to modify | |
1348 and copy the sign-bit of floating point values. | |
1349 * When the -march=z9-ec option is used the new | |
1350 -mhard-dfp/-mno-hard-dfp options can be used to specify whether the | |
1351 decimal floating point hardware instructions will be used or not. | |
1352 If none of them is given the hardware support is enabled by | |
1353 default. | |
1354 * The -mstack-guard option can now be omitted when using stack | |
1355 checking via -mstack-size in order to let GCC choose a sensible | |
1356 stack guard value according to the frame size of each function. | |
1357 * Various changes to improve performance of generated code have been | |
1358 implemented, including: | |
1359 + The condition code set by an add logical with carry | |
1360 instruction is now available for overflow checks like: a + b + | |
1361 carry < b. | |
1362 + The test data class instruction is now used to implement | |
1363 sign-bit and infinity checks of binary and decimal floating | |
1364 point numbers. | |
1365 | |
1366 Xtensa | |
1367 | |
1368 * Stack unwinding for exception handling now uses by default a | |
1369 specialized version of DWARF unwinding. This is not | |
1370 binary-compatible with the setjmp/longjmp (sjlj) unwinding used for | |
1371 Xtensa with previous versions of GCC. | |
1372 * For Xtensa processors that include the Conditional Store option, | |
1373 the built-in functions for atomic memory access are now implemented | |
1374 using S32C1I instructions. | |
1375 * If the Xtensa NSA option is available, GCC will use it to implement | |
1376 the __builtin_ctz and __builtin_clz functions. | |
1377 | |
1378 Documentation improvements | |
1379 | |
1380 * Existing libstdc++ documentation has been edited and restructured | |
1381 into a single DocBook XML manual. The results can be viewed online | |
1382 [24]here. | |
1383 | |
1384 Other significant improvements | |
1385 | |
1386 * The compiler's --help command-line option has been extended so that | |
1387 it now takes an optional set of arguments. These arguments restrict | |
1388 the information displayed to specific classes of command-line | |
1389 options, and possibly only a subset of those options. It is also | |
1390 now possible to replace the descriptive text associated with each | |
1391 displayed option with an indication of its current value, or for | |
1392 binary options, whether it has been enabled or disabled. | |
1393 Here are some examples. The following will display all the options | |
1394 controlling warning messages: | |
1395 --help=warnings | |
1396 | |
1397 Whereas this will display all the undocumented, target specific | |
1398 options: | |
1399 --help=target,undocumented | |
1400 | |
1401 This sequence of commands will display the binary optimizations | |
1402 that are enabled by -O3: | |
1403 gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts | |
1404 gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts | |
1405 diff /tmp/O2-opts /tmp/O3-opts | grep enabled | |
1406 | |
1407 * The configure options --with-pkgversion and --with-bugurl have been | |
1408 added. These allow distributors of GCC to include a | |
1409 distributor-specific string in manuals and --version output and to | |
1410 specify the URL for reporting bugs in their versions of GCC. | |
1411 | |
1412 GCC 4.3.1 | |
1413 | |
1414 This is the [25]list of problem reports (PRs) from GCC's bug tracking | |
1415 system that are known to be fixed in the 4.3.1 release. This list might | |
1416 not be complete (that is, it is possible that some PRs that have been | |
1417 fixed are not listed here). | |
1418 | |
1419 Target Specific Changes | |
1420 | |
1421 IA-32/x86-64 | |
1422 | |
1423 ABI changes | |
1424 | |
1425 * Starting with GCC 4.3.1, decimal floating point variables are | |
1426 aligned to their natural boundaries when they are passed on the | |
1427 stack for i386. | |
1428 | |
1429 Command-line changes | |
1430 | |
1431 * Starting with GCC 4.3.1, the -mcld option has been added to | |
1432 automatically generate a cld instruction in the prologue of | |
1433 functions that use string instructions. This option is used for | |
1434 backward compatibility on some operating systems and can be enabled | |
1435 by default for 32-bit x86 targets by configuring GCC with the | |
1436 --enable-cld configure option. | |
1437 | |
1438 GCC 4.3.2 | |
1439 | |
1440 This is the [26]list of problem reports (PRs) from GCC's bug tracking | |
1441 system that are known to be fixed in the 4.3.2 release. This list might | |
1442 not be complete (that is, it is possible that some PRs that have been | |
1443 fixed are not listed here). | |
1444 | |
1445 GCC 4.3.3 | |
1446 | |
1447 This is the [27]list of problem reports (PRs) from GCC's bug tracking | |
1448 system that are known to be fixed in the 4.3.3 release. This list might | |
1449 not be complete (that is, it is possible that some PRs that have been | |
1450 fixed are not listed here). | |
1451 | |
1452 Please send FSF & GNU inquiries & questions to [28]gnu@gnu.org. There | |
1453 are also [29]other ways to contact the FSF. | |
1454 | |
1455 These pages are maintained by [30]the GCC team. | |
1456 | |
1457 | |
1458 For questions related to the use of GCC, please consult these web | |
1459 pages and the [31]GCC manuals. If that fails, the | |
1460 [32]gcc-help@gcc.gnu.org mailing list might help. | |
1461 Please send comments on these web pages and the development of GCC to | |
1462 our developer mailing list at [33]gcc@gnu.org or [34]gcc@gcc.gnu.org. | |
1463 All of our lists have [35]public archives. | |
1464 | |
1465 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1466 Floor, Boston, MA 02110, USA. | |
1467 | |
1468 Verbatim copying and distribution of this entire article is permitted | |
1469 in any medium, provided this notice is preserved. | |
1470 Last modified 2009-04-19 [36]Valid XHTML 1.0 | |
1471 | |
1472 References | |
1473 | |
1474 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.3 | |
1475 2. http://gmplib.org/ | |
1476 3. http://www.mpfr.org/ | |
1477 4. http://gcc.gnu.org/install/prerequisites.html | |
1478 5. http://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html | |
1479 6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options | |
1480 7. http://gcc.gnu.org/gcc-4.3/porting_to.html | |
1481 8. http://www.mpfr.org/ | |
1482 9. http://www.mpfr.org/ | |
1483 10. http://www.mpfr.org/ | |
1484 11. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html | |
1485 12. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html | |
1486 13. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html | |
1487 14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#m anual.intro.status.standard.tr1 | |
1488 15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html | |
1489 16. http://gmplib.org/ | |
1490 17. http://www.mpfr.org/ | |
1491 18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options | |
1492 19. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 | |
1493 20. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/GAMMA.html | |
1494 21. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html | |
1495 22. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html | |
1496 23. http://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html | |
1497 24. http://gcc.gnu.org/onlinedocs/libstdc++/ | |
1498 25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1 | |
1499 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2 | |
1500 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3 | |
1501 28. mailto:gnu@gnu.org | |
1502 29. http://www.gnu.org/home.html#ContactInfo | |
1503 30. http://gcc.gnu.org/about.html | |
1504 31. http://gcc.gnu.org/onlinedocs/ | |
1505 32. mailto:gcc-help@gcc.gnu.org | |
1506 33. mailto:gcc@gnu.org | |
1507 34. mailto:gcc@gcc.gnu.org | |
1508 35. http://gcc.gnu.org/lists.html | |
1509 36. http://validator.w3.org/check/referer | |
1510 ====================================================================== | |
1511 http://gcc.gnu.org/gcc-4.2/index.html | |
1512 GCC 4.2 Release Series | |
1513 | |
1514 May 19, 2008 | |
1515 | |
1516 The [1]GNU project and the GCC developers are pleased to announce the | |
1517 release of GCC 4.2.4. | |
1518 | |
1519 This release is a bug-fix release, containing fixes for regressions in | |
1520 GCC 4.2.3 relative to previous releases of GCC. | |
1521 | |
1522 Release History | |
1523 | |
1524 GCC 4.2.4 | |
1525 May 19, 2008 ([2]changes) | |
1526 | |
1527 GCC 4.2.3 | |
1528 February 1, 2008 ([3]changes) | |
1529 | |
1530 GCC 4.2.2 | |
1531 October 7, 2007 ([4]changes) | |
1532 | |
1533 GCC 4.2.1 | |
1534 July 18, 2007 ([5]changes) | |
1535 | |
1536 GCC 4.2.0 | |
1537 May 13, 2007 ([6]changes) | |
1538 | |
1539 References and Acknowledgements | |
1540 | |
1541 GCC used to stand for the GNU C Compiler, but since the compiler | |
1542 supports several other languages aside from C, it now stands for the | |
1543 GNU Compiler Collection. | |
1544 | |
1545 A list of [7]successful builds is updated as new information becomes | |
1546 available. | |
1547 | |
1548 The GCC developers would like to thank the numerous people that have | |
1549 contributed new features, improvements, bug fixes, and other changes as | |
1550 well as test results to GCC. This [8]amazing group of volunteers is | |
1551 what makes GCC successful. | |
1552 | |
1553 For additional information about GCC please refer to the [9]GCC project | |
1554 web site or contact the [10]GCC development mailing list. | |
1555 | |
1556 To obtain GCC please use [11]our mirror sites or [12]our SVN server. | |
1557 | |
1558 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There | |
1559 are also [14]other ways to contact the FSF. | |
1560 | |
1561 These pages are maintained by [15]the GCC team. | |
1562 | |
1563 | |
1564 For questions related to the use of GCC, please consult these web | |
1565 pages and the [16]GCC manuals. If that fails, the | |
1566 [17]gcc-help@gcc.gnu.org mailing list might help. | |
1567 Please send comments on these web pages and the development of GCC to | |
1568 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. | |
1569 All of our lists have [20]public archives. | |
1570 | |
1571 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1572 Floor, Boston, MA 02110, USA. | |
1573 | |
1574 Verbatim copying and distribution of this entire article is permitted | |
1575 in any medium, provided this notice is preserved. | |
1576 Last modified 2008-10-04 [21]Valid XHTML 1.0 | |
1577 | |
1578 References | |
1579 | |
1580 1. http://www.gnu.org/ | |
1581 2. http://gcc.gnu.org/gcc-4.2/changes.html | |
1582 3. http://gcc.gnu.org/gcc-4.2/changes.html | |
1583 4. http://gcc.gnu.org/gcc-4.2/changes.html | |
1584 5. http://gcc.gnu.org/gcc-4.2/changes.html | |
1585 6. http://gcc.gnu.org/gcc-4.2/changes.html | |
1586 7. http://gcc.gnu.org/gcc-4.2/buildstat.html | |
1587 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
1588 9. http://gcc.gnu.org/index.html | |
1589 10. mailto:gcc@gcc.gnu.org | |
1590 11. http://gcc.gnu.org/mirrors.html | |
1591 12. http://gcc.gnu.org/svn.html | |
1592 13. mailto:gnu@gnu.org | |
1593 14. http://www.gnu.org/home.html#ContactInfo | |
1594 15. http://gcc.gnu.org/about.html | |
1595 16. http://gcc.gnu.org/onlinedocs/ | |
1596 17. mailto:gcc-help@gcc.gnu.org | |
1597 18. mailto:gcc@gnu.org | |
1598 19. mailto:gcc@gcc.gnu.org | |
1599 20. http://gcc.gnu.org/lists.html | |
1600 21. http://validator.w3.org/check/referer | |
1601 ====================================================================== | |
1602 http://gcc.gnu.org/gcc-4.2/changes.html | |
1603 GCC 4.2 Release Series | |
1604 Changes, New Features, and Fixes | |
1605 | |
1606 Caveats | |
1607 | |
1608 * GCC no longer accepts the -fshared-data option. This option has had | |
1609 no effect in any GCC 4 release; the targets to which the option | |
1610 used to apply had been removed before GCC 4.0. | |
1611 | |
1612 General Optimizer Improvements | |
1613 | |
1614 * New command-line options specify the possible relationships among | |
1615 parameters and between parameters and global data. For example, | |
1616 -fargument-noalias-anything specifies that arguments do not alias | |
1617 any other storage. | |
1618 Each language will automatically use whatever option is required by | |
1619 the language standard. You should not need to use these options | |
1620 yourself. | |
1621 | |
1622 New Languages and Language specific improvements | |
1623 | |
1624 * [1]OpenMP is now supported for the C, C++ and Fortran compilers. | |
1625 * New command-line options -fstrict-overflow and -Wstrict-overflow | |
1626 have been added. -fstrict-overflow tells the compiler that it may | |
1627 assume that the program follows the strict signed overflow | |
1628 semantics permitted for the language: for C and C++ this means that | |
1629 the compiler may assume that signed overflow does not occur. For | |
1630 example, a loop like | |
1631 for (i = 1; i > 0; i *= 2) | |
1632 | |
1633 is presumably intended to continue looping until i overflows. With | |
1634 -fstrict-overflow, the compiler may assume that signed overflow | |
1635 will not occur, and transform this into an infinite loop. | |
1636 -fstrict-overflow is turned on by default at -O2, and may be | |
1637 disabled via -fno-strict-overflow. The -Wstrict-overflow option may | |
1638 be used to warn about cases where the compiler assumes that signed | |
1639 overflow will not occur. It takes five different levels: | |
1640 -Wstrict-overflow=1 to 5. See the [2]documentation for details. | |
1641 -Wstrict-overflow=1 is enabled by -Wall. | |
1642 * The new command-line option -fno-toplevel-reorder directs GCC to | |
1643 emit top-level functions, variables, and asm statements in the same | |
1644 order that they appear in the input file. This is intended to | |
1645 support existing code which relies on a particular ordering (for | |
1646 example, code which uses top-level asm statements to switch | |
1647 sections). For new code, it is generally better to use function and | |
1648 variable attributes. The -fno-toplevel-reorder option may be used | |
1649 for most cases which currently use -fno-unit-at-a-time. The | |
1650 -fno-unit-at-a-time option will be removed in some future version | |
1651 of GCC. If you know of a case which requires -fno-unit-at-a-time | |
1652 which is not fixed by -fno-toplevel-reorder, please [3]open a bug | |
1653 report. | |
1654 | |
1655 C family | |
1656 | |
1657 * The pragma redefine_extname will now macro expand its tokens for | |
1658 compatibility with SunPRO. | |
1659 * In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct | |
1660 GCC to handle inline functions as specified in the C99 standard. In | |
1661 preparation for this, GCC 4.2 will warn about any use of non-static | |
1662 inline functions in gnu99 or c99 mode. This new warning may be | |
1663 disabled with the new gnu_inline function attribute or the new | |
1664 -fgnu89-inline command-line option. Also, GCC 4.2 and later will | |
1665 define one of the preprocessor macros __GNUC_GNU_INLINE__ or | |
1666 __GNUC_STDC_INLINE__ to indicate the semantics of inline functions | |
1667 in the current compilation. | |
1668 * A new command-line option -Waddress has been added to warn about | |
1669 suspicious uses of memory addresses as, for example, using the | |
1670 address of a function in a conditional expression, and comparisons | |
1671 against the memory address of a string literal. This warning is | |
1672 enabled by -Wall. | |
1673 | |
1674 C++ | |
1675 | |
1676 * C++ visibility handling has been overhauled. | |
1677 Restricted visiblity is propagated from classes to members, from | |
1678 functions to local statics, and from templates and template | |
1679 arguments to instantiations, unless the latter has explicitly | |
1680 declared visibility. | |
1681 The visibility attribute for a class must come between the | |
1682 class-key and the name, not after the closing brace. | |
1683 Attributes are now allowed for enums and elaborated-type-specifiers | |
1684 that only declare a type. | |
1685 Members of the anonymous namespace are now local to a particular | |
1686 translation unit, along with any other declarations which use them, | |
1687 though they are still treated as having external linkage for | |
1688 language semantics. | |
1689 * The (undocumented) extension which permitted templates with default | |
1690 arguments to be bound to template template parameters with fewer | |
1691 parameters has been removed. For example: | |
1692 template <template <typename> class C> | |
1693 void f(C<double>) {} | |
1694 | |
1695 template <typename T, typename U = int> | |
1696 struct S {}; | |
1697 | |
1698 template void f(S<double>); | |
1699 | |
1700 is no longer accepted by G++. The reason this code is not accepted | |
1701 is that S is a template with two parameters; therefore, it cannot | |
1702 be bound to C which has only one parameter. | |
1703 * The <?, >?, <?=, and >?= operators, deprecated in previous GCC | |
1704 releases, have been removed. | |
1705 * The command-line option -fconst-strings, deprecated in previous GCC | |
1706 releases, has been removed. | |
1707 * The configure variable enable-__cxa_atexit is now enabled by | |
1708 default for more targets. Enabling this variable is necessary in | |
1709 order for static destructors to be executed in the correct order, | |
1710 but it depends upon the presence of a non-standard C library in the | |
1711 target library in order to work. The variable is now enabled for | |
1712 more targets which are known to have suitable C libraries. | |
1713 * -Wextra will produce warnings for if statements with a semicolon as | |
1714 the only body, to catch code like: | |
1715 if (a); | |
1716 return 1; | |
1717 return 0; | |
1718 | |
1719 To suppress the warning in valid cases, use { } instead. | |
1720 * The C++ frontend now also produces strict aliasing warnings when | |
1721 -fstrict-aliasing -Wstrict-aliasing is in effect. | |
1722 | |
1723 Runtime Library (libstdc++) | |
1724 | |
1725 * Added support for TR1 <random>, <complex>, and C compatibility | |
1726 headers. In addition, a lock-free version of shared_ptr was | |
1727 contributed as part of Phillip Jordan's Google Summer of Code | |
1728 project on lock-free containers. ([4]Implementation status of TR1) | |
1729 * In association with the Summer of Code work on lock-free | |
1730 containers, the interface for atomic builtins was adjusted, | |
1731 creating simpler alternatives for non-threaded code paths. Also, | |
1732 usage was consolidated and all elements were moved from namespace | |
1733 std to namespace__gnu_cxx. Affected interfaces are the functions | |
1734 __exchange_and_add, __atomic_add, and the objects __mutex, | |
1735 __recursive_mutex, and __scoped_lock. | |
1736 * Support for versioning weak symbol names via namespace association | |
1737 was added. However, as this changes the names of exported symbols, | |
1738 this is turned off by default in the current ABI. Intrepid users | |
1739 can enable this feature by using | |
1740 --enable-symvers=gnu-versioned-namespace during configuration. | |
1741 * Revised, simplified, and expanded policy-based associative | |
1742 containers, including data types for tree and trie forms | |
1743 (basic_tree, tree, trie), lists (list_update), and both | |
1744 collision-chaining and probing hash-based containers | |
1745 (basic_hash_table, cc_hash_table, gp_hash_table). More details per | |
1746 the [5]documentation. | |
1747 * The implementation of the debug mode was modified, whereby the | |
1748 debug namespaces were nested inside of namespace std and namespace | |
1749 __gnu_cxx in order to resolve some long standing corner cases | |
1750 involving name lookup. Debug functionality from the policy-based | |
1751 data structures was consolidated and enabled with the single macro, | |
1752 _GLIBCXX_DEBUG. See PR 26142 for more information. | |
1753 * Added extensions for type traits: __conditional_type, | |
1754 __numeric_traits, __add_unsigned, __removed_unsigned, __enable_if. | |
1755 * Added a typelist implementation for compile-time meta-programming. | |
1756 Elements for typelist construction and operation can be found | |
1757 within namespace __gnu_cxx::typelist. | |
1758 * Added a new allocator, __gnu_cxx::throw_allocator, for testing | |
1759 exception-safety. | |
1760 * Enabled library-wide visibility control, allowing -fvisibility to | |
1761 be used. | |
1762 * Consolidated all nested namespaces and the conversion of | |
1763 __gnu_internal implementation-private details to anonymous | |
1764 namespaces whenever possible. | |
1765 * Implemented LWG resolutions DR 431 and DR 538. | |
1766 | |
1767 Fortran | |
1768 | |
1769 * Support for allocatable components has been added (TR 15581 and | |
1770 Fortran 2003). | |
1771 * Support for the Fortran 2003 streaming IO extension has been added. | |
1772 * The GNU Fortran compiler now uses 4-byte record markers by default | |
1773 for unformatted files to be compatible with g77 and most other | |
1774 compilers. The implementation allows for records greater than 2 GB | |
1775 and is compatible with several other compilers. Older versions of | |
1776 gfortran used 8-byte record markers by default (on most systems). | |
1777 In order to change the length of the record markers, e.g. to read | |
1778 unformatted files created by older gfortran versions, the | |
1779 [6]-frecord-marker=8 option can be used. | |
1780 | |
1781 Java (GCJ) | |
1782 | |
1783 * A new command-line option -static-libgcj has been added for targets | |
1784 that use a linker compatible with GNU Binutils. As its name | |
1785 implies, this causes libgcj to be linked statically. In some cases | |
1786 this causes the resulting executable to start faster and use less | |
1787 memory than if the shared version of libgcj were used. However | |
1788 caution should be used as it can also cause essential parts of the | |
1789 library to be omitted. Some of these issues are discussed in: | |
1790 [7]http://gcc.gnu.org/wiki/Statically_linking_libgcj | |
1791 * fastjar is no longer bundled with GCC. To build libgcj, you will | |
1792 need either InfoZIP (both zip and unzip) or an external jar | |
1793 program. In the former case, the GCC build will install a jar shell | |
1794 script that is based on InfoZIP and provides the same functionality | |
1795 as fastjar. | |
1796 | |
1797 New Targets and Target Specific Improvements | |
1798 | |
1799 IA-32/x86-64 | |
1800 | |
1801 * -mtune=generic can now be used to generate code running well on | |
1802 common x86 chips. This includes AMD Athlon, AMD Opteron, Intel | |
1803 Pentium-M, Intel Pentium 4 and Intel Core 2. | |
1804 * -mtune=native and -march=native will produce code optimized for the | |
1805 host architecture as detected using the cpuid instruction. | |
1806 * Added a new command-line option -fstackrealign and and | |
1807 __attribute__ ((force_align_arg_pointer)) to realign the stack at | |
1808 runtime. This allows functions compiled with a vector-aligned stack | |
1809 to be invoked from legacy objects that keep only word-alignment. | |
1810 | |
1811 SPARC | |
1812 | |
1813 * The default CPU setting has been changed from V7 to V9 in 32-bit | |
1814 mode on Solaris 7 and above. This is already the case in 64-bit | |
1815 mode. It can be overridden by specifying --with-cpu at configure | |
1816 time. | |
1817 * Back-end support of built-in functions for atomic memory access has | |
1818 been implemented. | |
1819 * Support for the Sun UltraSPARC T1 (Niagara) processor has been | |
1820 added. | |
1821 | |
1822 M32C | |
1823 | |
1824 * Various bug fixes have made some functions (notably, functions | |
1825 returning structures) incompatible with previous releases. | |
1826 Recompiling all libraries is recommended. Note that code quality | |
1827 has considerably improved since 4.1, making a recompile even more | |
1828 beneficial. | |
1829 | |
1830 MIPS | |
1831 | |
1832 * Added support for the Broadcom SB-1A core. | |
1833 | |
1834 IA-64 | |
1835 | |
1836 * Added support for IA-64 data and control speculation. By default | |
1837 speculation is enabled only during second scheduler pass. A number | |
1838 of machine flags was introduced to control the usage of speculation | |
1839 for both scheduler passes. | |
1840 | |
1841 HPPA | |
1842 | |
1843 * Added Java language support (libffi and libjava) for 32-bit HP-UX | |
1844 11 target. | |
1845 | |
1846 Obsolete Systems | |
1847 | |
1848 Documentation improvements | |
1849 | |
1850 PDF Documentation | |
1851 | |
1852 * A make pdf target has been added to the top-level makefile, | |
1853 enabling automated production of PDF documentation files. | |
1854 (Front-ends external to GCC should modify their Make-lang.in file | |
1855 to add a lang.pdf: target.) | |
1856 | |
1857 Other significant improvements | |
1858 | |
1859 Build system improvements | |
1860 | |
1861 * All the components of the compiler are now bootstrapped by default. | |
1862 This improves the resilience to bugs in the system compiler or | |
1863 binary compatibility problems, as well as providing better testing | |
1864 of GCC 4.2 itself. In addition, if you build the compiler from a | |
1865 combined tree, the assembler, linker, etc. will also be | |
1866 bootstrapped (i.e. built with themselves). | |
1867 You can disable this behavior, and go back to the pre-GCC 4.2 set | |
1868 up, by configuring GCC with --disable-bootstrap. | |
1869 * The rules that configure follows to find target tools resemble more | |
1870 closely the locations that the built compiler will search. In | |
1871 addition, you can use the new configure option --with-target-tools | |
1872 to specify where to find the target tools used during the build, | |
1873 without affecting what the built compiler will use. | |
1874 This can be especially useful when building packages of GCC. For | |
1875 example, you may want to build GCC with GNU as or ld, even if the | |
1876 resulting compiler to work with the native assembler and linker. To | |
1877 do so, you can use --with-target-tools to point to the native | |
1878 tools. | |
1879 | |
1880 Incompatible changes to the build system | |
1881 | |
1882 * Front-ends external to GCC should modify their Make-lang.in file to | |
1883 replace double-colon rules (e.g. dvi::) with normal rules (like | |
1884 lang.dvi:). Front-end makefile hooks do not use double-colon rules | |
1885 anymore. | |
1886 * Up to GCC 4.1, a popular way to specify the target tools used | |
1887 during the build was to create directories named gas, binutils, | |
1888 etc. in the build tree, and create links to the tools from there. | |
1889 This does not work any more when the compiler is bootstrapped. The | |
1890 new configure option --with-target-tools provides a better way to | |
1891 achieve the same effect, and works for all native and cross | |
1892 settings. | |
1893 | |
1894 Please send FSF & GNU inquiries & questions to [8]gnu@gnu.org. There | |
1895 are also [9]other ways to contact the FSF. | |
1896 | |
1897 These pages are maintained by [10]the GCC team. | |
1898 | |
1899 | |
1900 For questions related to the use of GCC, please consult these web | |
1901 pages and the [11]GCC manuals. If that fails, the | |
1902 [12]gcc-help@gcc.gnu.org mailing list might help. | |
1903 Please send comments on these web pages and the development of GCC to | |
1904 our developer mailing list at [13]gcc@gnu.org or [14]gcc@gcc.gnu.org. | |
1905 All of our lists have [15]public archives. | |
1906 | |
1907 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1908 Floor, Boston, MA 02110, USA. | |
1909 | |
1910 Verbatim copying and distribution of this entire article is permitted | |
1911 in any medium, provided this notice is preserved. | |
1912 Last modified 2009-01-25 [16]Valid XHTML 1.0 | |
1913 | |
1914 References | |
1915 | |
1916 1. http://gcc.gnu.org/projects/gomp/ | |
1917 2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html | |
1918 3. http://gcc.gnu.org/bugs.html | |
1919 4. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 | |
1920 5. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html | |
1921 6. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html | |
1922 7. http://gcc.gnu.org/wiki/Statically_linking_libgcj | |
1923 8. mailto:gnu@gnu.org | |
1924 9. http://www.gnu.org/home.html#ContactInfo | |
1925 10. http://gcc.gnu.org/about.html | |
1926 11. http://gcc.gnu.org/onlinedocs/ | |
1927 12. mailto:gcc-help@gcc.gnu.org | |
1928 13. mailto:gcc@gnu.org | |
1929 14. mailto:gcc@gcc.gnu.org | |
1930 15. http://gcc.gnu.org/lists.html | |
1931 16. http://validator.w3.org/check/referer | |
1932 ====================================================================== | |
1933 http://gcc.gnu.org/gcc-4.1/index.html | |
1934 GCC 4.1 Release Series | |
1935 | |
1936 February 13, 2007 | |
1937 | |
1938 The [1]GNU project and the GCC developers are pleased to announce the | |
1939 release of GCC 4.1.2. | |
1940 | |
1941 This release is a bug-fix release, containing fixes for regressions in | |
1942 GCC 4.1.1 relative to previous releases of GCC. | |
1943 | |
1944 Release History | |
1945 | |
1946 GCC 4.1.2 | |
1947 February 13, 2007 ([2]changes) | |
1948 | |
1949 GCC 4.1.1 | |
1950 May 24, 2006 ([3]changes) | |
1951 | |
1952 GCC 4.1.0 | |
1953 February 28, 2006 ([4]changes) | |
1954 | |
1955 References and Acknowledgements | |
1956 | |
1957 GCC used to stand for the GNU C Compiler, but since the compiler | |
1958 supports several other languages aside from C, it now stands for the | |
1959 GNU Compiler Collection. | |
1960 | |
1961 A list of [5]successful builds is updated as new information becomes | |
1962 available. | |
1963 | |
1964 The GCC developers would like to thank the numerous people that have | |
1965 contributed new features, improvements, bug fixes, and other changes as | |
1966 well as test results to GCC. This [6]amazing group of volunteers is | |
1967 what makes GCC successful. | |
1968 | |
1969 For additional information about GCC please refer to the [7]GCC project | |
1970 web site or contact the [8]GCC development mailing list. | |
1971 | |
1972 To obtain GCC please use [9]our mirror sites or [10]our SVN server. | |
1973 | |
1974 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
1975 are also [12]other ways to contact the FSF. | |
1976 | |
1977 These pages are maintained by [13]the GCC team. | |
1978 | |
1979 | |
1980 For questions related to the use of GCC, please consult these web | |
1981 pages and the [14]GCC manuals. If that fails, the | |
1982 [15]gcc-help@gcc.gnu.org mailing list might help. | |
1983 Please send comments on these web pages and the development of GCC to | |
1984 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
1985 All of our lists have [18]public archives. | |
1986 | |
1987 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
1988 Floor, Boston, MA 02110, USA. | |
1989 | |
1990 Verbatim copying and distribution of this entire article is permitted | |
1991 in any medium, provided this notice is preserved. | |
1992 Last modified 2008-10-04 [19]Valid XHTML 1.0 | |
1993 | |
1994 References | |
1995 | |
1996 1. http://www.gnu.org/ | |
1997 2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 | |
1998 3. http://gcc.gnu.org/gcc-4.1/changes.html | |
1999 4. http://gcc.gnu.org/gcc-4.1/changes.html | |
2000 5. http://gcc.gnu.org/gcc-4.1/buildstat.html | |
2001 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
2002 7. http://gcc.gnu.org/index.html | |
2003 8. mailto:gcc@gcc.gnu.org | |
2004 9. http://gcc.gnu.org/mirrors.html | |
2005 10. http://gcc.gnu.org/svn.html | |
2006 11. mailto:gnu@gnu.org | |
2007 12. http://www.gnu.org/home.html#ContactInfo | |
2008 13. http://gcc.gnu.org/about.html | |
2009 14. http://gcc.gnu.org/onlinedocs/ | |
2010 15. mailto:gcc-help@gcc.gnu.org | |
2011 16. mailto:gcc@gnu.org | |
2012 17. mailto:gcc@gcc.gnu.org | |
2013 18. http://gcc.gnu.org/lists.html | |
2014 19. http://validator.w3.org/check/referer | |
2015 ====================================================================== | |
2016 http://gcc.gnu.org/gcc-4.1/changes.html | |
2017 GCC 4.1 Release Series | |
2018 Changes, New Features, and Fixes | |
2019 | |
2020 The latest release in the 4.1 release series is [1]GCC 4.1.2. | |
2021 | |
2022 Caveats | |
2023 | |
2024 General Optimizer Improvements | |
2025 | |
2026 * GCC now has infrastructure for inter-procedural optimizations and | |
2027 the following inter-procedural optimizations are implemented: | |
2028 + Profile guided inlining. When doing profile feedback guided | |
2029 optimization, GCC can now use the profile to make better | |
2030 informed decisions on whether inlining of a function is | |
2031 profitable or not. This means that GCC will no longer inline | |
2032 functions at call sites that are not executed very often, and | |
2033 that functions at hot call sites are more likely to be | |
2034 inlined. | |
2035 A new parameter min-inline-recursive-probability is also now | |
2036 available to throttle recursive inlining of functions with | |
2037 small average recursive depths. | |
2038 + Discovery of pure and const functions, a form of side-effects | |
2039 analysis. While older GCC releases could also discover such | |
2040 special functions, the new IPA-based pass runs earlier so that | |
2041 the results are available to more optimizers. The pass is also | |
2042 simply more powerful than the old one. | |
2043 + Analysis of references to static variables and type escape | |
2044 analysis, also forms of side-effects analysis. The results of | |
2045 these passes allow the compiler to be less conservative about | |
2046 call-clobbered variables and references. This results in more | |
2047 redundant loads being eliminated and in making static | |
2048 variables candidates for register promotion. | |
2049 + Improvement of RTL-based alias analysis. The results of type | |
2050 escape analysis are fed to the RTL type-based alias analyzer, | |
2051 allowing it to disambiguate more memory references. | |
2052 + Interprocedural constant propagation and function versioning. | |
2053 This pass looks for functions that are always called with the | |
2054 same constant value for one or more of the function arguments, | |
2055 and propagates those constants into those functions. | |
2056 + GCC will now eliminate static variables whose usage was | |
2057 optimized out. | |
2058 + -fwhole-program --combine can now be used to make all | |
2059 functions in program static allowing whole program | |
2060 optimization. As an exception, the main function and all | |
2061 functions marked with the new externally_visible attribute are | |
2062 kept global so that programs can link with runtime libraries. | |
2063 * GCC can now do a form of partial dead code elimination (PDCE) that | |
2064 allows code motion of expressions to the paths where the result of | |
2065 the expression is actually needed. This is not always a win, so the | |
2066 pass has been limited to only consider profitable cases. Here is an | |
2067 example: | |
2068 int foo (int *, int *); | |
2069 int | |
2070 bar (int d) | |
2071 { | |
2072 int a, b, c; | |
2073 b = d + 1; | |
2074 c = d + 2; | |
2075 a = b + c; | |
2076 if (d) | |
2077 { | |
2078 foo (&b, &c); | |
2079 a = b + c; | |
2080 } | |
2081 printf ("%d\n", a); | |
2082 } | |
2083 | |
2084 The a = b + c can be sunk to right before the printf. Normal code | |
2085 sinking will not do this, it will sink the first one above into the | |
2086 else-branch of the conditional jump, which still gives you two | |
2087 copies of the code. | |
2088 * GCC now has a value range propagation pass. This allows the | |
2089 compiler to eliminate bounds checks and branches. The results of | |
2090 the pass can also be used to accurately compute branch | |
2091 probabilities. | |
2092 * The pass to convert PHI nodes to straight-line code (a form of | |
2093 if-conversion for GIMPLE) has been improved significantly. The two | |
2094 most significant improvements are an improved algorithm to | |
2095 determine the order in which the PHI nodes are considered, and an | |
2096 improvement that allow the pass to consider if-conversions of basic | |
2097 blocks with more than two predecessors. | |
2098 * Alias analysis improvements. GCC can now differentiate between | |
2099 different fields of structures in Tree-SSA's virtual operands form. | |
2100 This lets stores/loads from non-overlapping structure fields not | |
2101 conflict. A new algorithm to compute points-to sets was contributed | |
2102 that can allows GCC to see now that p->a and p->b, where p is a | |
2103 pointer to a structure, can never point to the same field. | |
2104 * Various enhancements to auto-vectorization: | |
2105 + Incrementally preserve SSA form when vectorizing. | |
2106 + Incrementally preserve loop-closed form when vectorizing. | |
2107 + Improvements to peeling for alignment: generate better code | |
2108 when the misalignment of an access is known at compile time, | |
2109 or when different accesses are known to have the same | |
2110 misalignment, even if the misalignment amount itself is | |
2111 unknown. | |
2112 + Consider dependence distance in the vectorizer. | |
2113 + Externalize generic parts of data reference analysis to make | |
2114 this analysis available to other passes. | |
2115 + Vectorization of conditional code. | |
2116 + Reduction support. | |
2117 * GCC can now partition functions in sections of hot and cold code. | |
2118 This can significantly improve performance due to better | |
2119 instruction cache locality. This feature works best together with | |
2120 profile feedback driven optimization. | |
2121 * A new pass to avoid saving of unneeded arguments to the stack in | |
2122 vararg functions if the compiler can prove that they will not be | |
2123 needed. | |
2124 * Transition of basic block profiling to tree level implementation | |
2125 has been completed. The new implementation should be considerably | |
2126 more reliable (hopefully avoiding profile mismatch errors when | |
2127 using -fprofile-use or -fbranch-probabilities) and can be used to | |
2128 drive higher level optimizations, such as inlining. | |
2129 The -ftree-based-profiling command-line option was removed and | |
2130 -fprofile-use now implies disabling old RTL level loop optimizer | |
2131 (-fno-loop-optimize). Speculative prefetching optimization | |
2132 (originally enabled by -fspeculative-prefetching) was removed. | |
2133 | |
2134 New Languages and Language specific improvements | |
2135 | |
2136 C and Objective-C | |
2137 | |
2138 * The old Bison-based C and Objective-C parser has been replaced by a | |
2139 new, faster hand-written recursive-descent parser. | |
2140 | |
2141 Ada | |
2142 | |
2143 * The build infrastructure for the Ada runtime library and tools has | |
2144 been changed to be better integrated with the rest of the build | |
2145 infrastructure of GCC. This should make doing cross builds of Ada a | |
2146 bit easier. | |
2147 | |
2148 C++ | |
2149 | |
2150 * ARM-style name-injection of friend declarations is no longer the | |
2151 default. For example: | |
2152 struct S { | |
2153 friend void f(); | |
2154 }; | |
2155 | |
2156 void g() { f(); } | |
2157 will not be accepted; instead a declaration of f will need to be | |
2158 present outside of the scope of S. The new -ffriend-injection | |
2159 option will enable the old behavior. | |
2160 * The (undocumented) extension which permitted templates with default | |
2161 arguments to be bound to template template parameters with fewer | |
2162 parameters has been deprecated, and will be removed in the next | |
2163 major release of G++. For example: | |
2164 template <template <typename> class C> | |
2165 void f(C<double>) {} | |
2166 | |
2167 template <typename T, typename U = int> | |
2168 struct S {}; | |
2169 | |
2170 template void f(S<double>); | |
2171 | |
2172 makes use of the deprecated extension. The reason this code is not | |
2173 valid ISO C++ is that S is a template with two parameters; | |
2174 therefore, it cannot be bound to C which has only one parameter. | |
2175 | |
2176 Runtime Library (libstdc++) | |
2177 | |
2178 * Optimization work: | |
2179 + A new implementation of std::search_n is provided, better | |
2180 performing in case of random access iterators. | |
2181 + Added further efficient specializations of istream functions, | |
2182 i.e., character array and string extractors. | |
2183 + Other smaller improvements throughout. | |
2184 * Policy-based associative containers, designed for high-performance, | |
2185 flexibility and semantic safety are delivered in ext/pb_assoc. | |
2186 * A versatile string class, __gnu_cxx::__versa_string, providing | |
2187 facilities conforming to the standard requirements for | |
2188 basic_string, is delivered in <ext/vstring.h>. In particular: | |
2189 + Two base classes are provided: the default one avoids | |
2190 reference counting and is optimized for short strings; the | |
2191 alternate one, still uses it while improving in a few low | |
2192 level areas (e.g., alignment). See vstring_fwd.h for some | |
2193 useful typedefs. | |
2194 + Various algorithms have been rewritten (e.g., replace), the | |
2195 code streamlined and simple optimizations added. | |
2196 + Option 3 of DR 431 is implemented for both available bases, | |
2197 thus improving the support for stateful allocators. | |
2198 * As usual, many bugs have been fixed (e.g., libstdc++/13583, | |
2199 libstdc++/23953) and LWG resolutions put into effect for the first | |
2200 time (e.g., DR 280, DR 464, N1780 recommendations for DR 233, TR1 | |
2201 Issue 6.19). The implementation status of TR1 is now tracked in the | |
2202 docs in tr1.html. | |
2203 | |
2204 Objective-C++ | |
2205 | |
2206 * A new language front end for Objective-C++ has been added. This | |
2207 language allows users to mix the object oriented features of | |
2208 Objective-C with those of C++. | |
2209 | |
2210 Java (GCJ) | |
2211 | |
2212 * Core library (libgcj) updates based on GNU Classpath 0.15 - 0.19 | |
2213 features (plus some 0.20 bug-fixes) | |
2214 + Networking | |
2215 o The java.net.HttpURLConnection implementation no longer | |
2216 buffers the entire response body in memory. This means | |
2217 that response bodies larger than available memory can now | |
2218 be handled. | |
2219 + (N)IO | |
2220 o NIO FileChannel.map implementation, fast bulk put | |
2221 implementation for DirectByteBuffer (speeds up this | |
2222 method 10x). | |
2223 o FileChannel.lock() and FileChannel.force() implemented. | |
2224 + XML | |
2225 o gnu.xml fix for nodes created outside a namespace | |
2226 context. | |
2227 o Add support for output indenting and | |
2228 cdata-section-elements output instruction in | |
2229 xml.transform. | |
2230 o xml.xpath corrections for cases where elements/attributes | |
2231 might have been created in non-namespace-aware mode. | |
2232 Corrections to handling of XSL variables and minor | |
2233 conformance updates. | |
2234 + AWT | |
2235 o GNU JAWT implementation, the AWT Native Interface, which | |
2236 allows direct access to native screen resources from | |
2237 within a Canvas's paint method. GNU Classpath Examples | |
2238 comes with a Demo, see libjava/classpath/examples/README. | |
2239 o awt.datatransfer updated to 1.5 with support for | |
2240 FlavorEvents. The gtk+ awt peers now allow copy/paste of | |
2241 text, images, URIs/files and serialized objects with | |
2242 other applications and tracking clipboard change events | |
2243 with gtk+ 2.6 (for gtk+ 2.4 only text and serialized | |
2244 objects are supported). A GNU Classpath Examples | |
2245 datatransfer Demo was added to show the new | |
2246 functionality. | |
2247 o Split gtk+ awt peers event handling in two threads and | |
2248 improve gdk lock handling (solves several awt lock ups). | |
2249 o Speed up awt Image loading. | |
2250 o Better gtk+ scrollbar peer implementation when using gtk+ | |
2251 >= 2.6. | |
2252 o Handle image loading errors correctly for gdkpixbuf and | |
2253 MediaTracker. | |
2254 o Better handle GDK lock. Properly prefix gtkpeer native | |
2255 functions (cp_gtk). | |
2256 o GdkGraphics2D has been updated to use Cairo 0.5.x or | |
2257 higher. | |
2258 o BufferedImage and GtkImage rewrites. All image drawing | |
2259 operations should now work correctly (flipping requires | |
2260 gtk+ >= 2.6) | |
2261 o Future Graphics2D, image and text work is documented at: | |
2262 [2]http://developer.classpath.org/mediation/ClasspathGrap | |
2263 hicsImagesText | |
2264 o When gtk+ 2.6 or higher is installed the default log | |
2265 handler will produce stack traces whenever a WARNING, | |
2266 CRITICAL or ERROR message is produced. | |
2267 + Free Swing | |
2268 o The RepaintManager has been reworked for more efficient | |
2269 painting, especially for large GUIs. | |
2270 o The layout manager OverlayLayout has been implemented, | |
2271 the BoxLayout has been rewritten to make use of the | |
2272 SizeRequirements utility class and caching for more | |
2273 efficient layout. | |
2274 o Improved accessibility support. | |
2275 o Significant progress has been made in the implementation | |
2276 of the javax.swing.plaf.metal package, with most UI | |
2277 delegates in a working state now. Please test this with | |
2278 your own applications and provide feedback that will help | |
2279 us to improve this package. | |
2280 o The GUI demo (gnu.classpath.examples.swing.Demo) has been | |
2281 extended to highlight various features in our Free Swing | |
2282 implementation. And it includes a look and feel switcher | |
2283 for Metal (default), Ocean and GNU themes. | |
2284 o The javax.swing.plaf.multi package is now implemented. | |
2285 o Editing and several key actions for JTree and JTable were | |
2286 implemented. | |
2287 o Lots of icons and look and feel improvements for Free | |
2288 Swing basic and metal themes were added. Try running the | |
2289 GNU Classpath Swing Demo in examples | |
2290 (gnu.classpath.examples.swing.Demo) with: | |
2291 -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFee | |
2292 l or | |
2293 -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFee | |
2294 l | |
2295 o Start of styled text capabilites for java.swing.text. | |
2296 o DefaultMutableTreeNode pre-order, post-order, depth-first | |
2297 and breadth-first traversal enumerations implemented. | |
2298 o JInternalFrame colors and titlebar draw properly. | |
2299 o JTree is working up to par (icons, selection and keyboard | |
2300 traversal). | |
2301 o JMenus were made more compatible in visual and | |
2302 programmatic behavior. | |
2303 o JTable changeSelection and multiple selections | |
2304 implemented. | |
2305 o JButton and JToggleButton change states work properly | |
2306 now. | |
2307 o JFileChooser fixes. | |
2308 o revalidate() and repaint() fixes which make Free Swing | |
2309 much more responsive. | |
2310 o MetalIconFactory implemented. | |
2311 o Free Swing Top-Level Compatibility. JFrame, JDialog, | |
2312 JApplet, JInternalFrame, and JWindow are now 1.5 | |
2313 compatible in the sense that you can call add() and | |
2314 setLayout() directly on them, which will have the same | |
2315 effect as calling getContentPane().add() and | |
2316 getContentPane().setLayout(). | |
2317 o The JTree interface has been completed. JTrees now | |
2318 recognizes mouse clicks and selections work. | |
2319 o BoxLayout works properly now. | |
2320 o Fixed GrayFilter to actually work. | |
2321 o Metal SplitPane implemented. | |
2322 o Lots of Free Swing text and editor stuff work now. | |
2323 + Free RMI and Corba | |
2324 o Andrew Watson, Vice President and Technical Director of | |
2325 the Object Management Group, has officially assigned us | |
2326 20 bit Vendor Minor Code Id: 0x47430 ("GC") that will | |
2327 mark remote classpath-specific system exceptions. | |
2328 Obtaining the VMCID means that GNU Classpath now is a | |
2329 recogniseable type of node in a highly interoperable | |
2330 CORBA world. | |
2331 o GNU Classpath now includes the first working draft to | |
2332 support the RMI over IIOP protocol. The current | |
2333 implementation is capable of remote invocations, | |
2334 transferring various Serializables and Externalizables | |
2335 via RMI-IIOP protocol. It can flatten graphs and, at | |
2336 least for the simple cases, is interoperable with 1.5 | |
2337 JDKs. | |
2338 o org.omg.PortableInterceptor and related functionality in | |
2339 other packages is now implemented: | |
2340 # The sever and client interceptors work as required | |
2341 since 1.4. | |
2342 # The IOR interceptor works as needed for 1.5. | |
2343 o The org.omg.DynamicAny package is completed and passes | |
2344 the prepared tests. | |
2345 o The Portable Object Adapter should now support the output | |
2346 of the recent IDL to java compilers. These compilers now | |
2347 generate servants and not CORBA objects as before, making | |
2348 the output depend on the existing POA implementation. | |
2349 Completing POA means that such code can already be tried | |
2350 to run on Classpath. Our POA is tested for the following | |
2351 usager scenarios: | |
2352 # POA converts servant to the CORBA object. | |
2353 # Servant provides to the CORBA object. | |
2354 # POA activates new CORBA object with the given Object | |
2355 Id (byte array) that is later accessible for the | |
2356 servant. | |
2357 # During the first call, the ServantActivator provides | |
2358 servant for this and all subsequent calls on the | |
2359 current object. | |
2360 # During each call, the ServantLocator provides | |
2361 servant for this call only. | |
2362 # ServantLocator or ServantActivator forwards call to | |
2363 another server. | |
2364 # POA has a single servant, responsible for all | |
2365 objects. | |
2366 # POA has a default servant, but some objects are | |
2367 explicitly connected to they specific servants. | |
2368 The POA is verified using tests from the former | |
2369 cost.omg.org. | |
2370 o The CORBA implementation is now a working prototype that | |
2371 should support features up to 1.3 inclusive. We invite | |
2372 groups writing CORBA dependent applications to try | |
2373 Classpath implementation, reporting any possible bugs. | |
2374 The CORBA prototype is interoperable with Sun's | |
2375 implementation v 1.4, transferring object references, | |
2376 primitive types, narrow and wide strings, arrays, | |
2377 structures, trees, abstract interfaces and value types | |
2378 (feature of CORBA 2.3) between these two platforms. | |
2379 Remote exceptions are transferred and handled correctly. | |
2380 The stringified object references (IORs) from various | |
2381 sources are parsed as required. The transient (for | |
2382 current session) and permanent (till jre restart) | |
2383 redirections work. Both Little and Big Endian encoded | |
2384 messages are accepted. The implementation is verified | |
2385 using tests from the former cost.omg.org. The current | |
2386 release includes working examples (see the examples | |
2387 directory), demonstrating the client-server | |
2388 communication, using either CORBA Request or IDL-based | |
2389 stub (usually generated by a IDL to java compiler). These | |
2390 examples also show how to use the Classpath CORBA naming | |
2391 service. The IDL to java compiler is not yet written, but | |
2392 as our library must be compatible, it naturally accepts | |
2393 the output of other idlj implementations. | |
2394 + Misc | |
2395 o Updated TimeZone data against Olson tzdata2005l. | |
2396 o Make zip and jar packages UTF-8 clean. | |
2397 o "native" code builds and compiles (warning free) on | |
2398 Darwin and Solaris. | |
2399 o java.util.logging.FileHandler now rotates files. | |
2400 o Start of a generic JDWP framework in gnu/classpath/jdwp. | |
2401 This is unfinished, but feedback (at classpath@gnu.org) | |
2402 from runtime hackers is greatly appreciated. Although | |
2403 most of the work is currently being done around gcj/gij | |
2404 we want this framework to be as VM neutral as possible. | |
2405 Early design is described in: | |
2406 [3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html | |
2407 o QT4 AWT peers, enable by giving configure | |
2408 --enable-qt-peer. Included, but not ready for production | |
2409 yet. They are explicitly disabled and not supported. But | |
2410 if you want to help with the development of these new | |
2411 features we are interested in feedback. You will have to | |
2412 explicitly enable them to try them out (and they will | |
2413 most likely contain bugs). | |
2414 o Documentation fixes all over the place. See | |
2415 [4]http://developer.classpath.org/doc/ | |
2416 | |
2417 New Targets and Target Specific Improvements | |
2418 | |
2419 IA-32/x86-64 | |
2420 | |
2421 * The x86-64 medium model (that allows building applications whose | |
2422 data segment exceeds 4GB) was redesigned to match latest ABI draft. | |
2423 New implementation split large datastructures into separate segment | |
2424 improving performance of accesses to small datastructures and also | |
2425 allows linking of small model libraries into medium model programs | |
2426 as long as the libraries are not accessing the large datastructures | |
2427 directly. Medium model is also supported in position independent | |
2428 code now. | |
2429 The ABI change results in partial incompatibility among medium | |
2430 model objects. Linking medium model libraries (or objects) compiled | |
2431 with new compiler into medium model program compiled with older | |
2432 will likely result in exceeding ranges of relocations. | |
2433 Binutils 2.16.91 or newer are required for compiling medium model | |
2434 now. | |
2435 | |
2436 RS6000 (POWER/PowerPC) | |
2437 | |
2438 * The AltiVec vector primitives in <altivec.h> are now implemented in | |
2439 a way that puts a smaller burden on the preprocessor, instead | |
2440 processing the "overloading" in the front ends. This should benefit | |
2441 compilation speed on AltiVec vector code. | |
2442 * AltiVec initializers now are generated more efficiently. | |
2443 * The popcountb instruction available on POWER5 now is generated. | |
2444 * The floating point round to integer instructions available on | |
2445 POWER5+ now is generated. | |
2446 * Floating point divides can be synthesized using the floating point | |
2447 reciprocal estimate instructions. | |
2448 * Double precision floating point constants are initialized as single | |
2449 precision values if they can be represented exactly. | |
2450 | |
2451 S/390, zSeries and System z9 | |
2452 | |
2453 * Support for the IBM System z9 109 processor has been added. When | |
2454 using the -march=z9-109 option, the compiler will generate code | |
2455 making use of instructions provided by the extended immediate | |
2456 facility. | |
2457 * Support for 128-bit IEEE floating point has been added. When using | |
2458 the -mlong-double-128 option, the compiler will map the long double | |
2459 data type to 128-bit IEEE floating point. Using this option | |
2460 constitutes an ABI change, and requires glibc support. | |
2461 * Various changes to improve performance of generated code have been | |
2462 implemented, including: | |
2463 + In functions that do not require a literal pool, register %r13 | |
2464 (which is traditionally reserved as literal pool pointer), can | |
2465 now be freely used for other purposes by the compiler. | |
2466 + More precise tracking of register use allows the compiler to | |
2467 generate more efficient function prolog and epilog code in | |
2468 certain cases. | |
2469 + The SEARCH STRING, COMPARE LOGICAL STRING, and MOVE STRING | |
2470 instructions are now used to implement C string functions. | |
2471 + The MOVE CHARACTER instruction with single byte overlap is now | |
2472 used to implement the memset function with non-zero fill byte. | |
2473 + The LOAD ZERO instructions are now used where appropriate. | |
2474 + The INSERT CHARACTERS UNDER MASK, STORE CHARACTERS UNDER MASK, | |
2475 and INSERT IMMEDIATE instructions are now used more frequently | |
2476 to optimize bitfield operations. | |
2477 + The BRANCH ON COUNT instruction is now used more frequently. | |
2478 In particular, the fact that a loop contains a subroutine call | |
2479 no longer prevents the compiler from using this instruction. | |
2480 + The compiler is now aware that all shift and rotate | |
2481 instructions implicitly truncate the shift count to six bits. | |
2482 * Back-end support for the following generic features has been | |
2483 implemented: | |
2484 + The full set of [5]built-in functions for atomic memory | |
2485 access. | |
2486 + The -fstack-protector feature. | |
2487 + The optimization pass avoiding unnecessary stores of incoming | |
2488 argument registers in functions with variable argument list. | |
2489 | |
2490 SPARC | |
2491 | |
2492 * The default code model in 64-bit mode has been changed from | |
2493 Medium/Anywhere to Medium/Middle on Solaris. | |
2494 * TLS support is disabled by default on Solaris prior to release 10. | |
2495 It can be enabled on TLS-capable Solaris 9 versions (4/04 release | |
2496 and later) by specifying --enable-tls at configure time. | |
2497 | |
2498 MorphoSys | |
2499 | |
2500 * Support has been added for this new architecture. | |
2501 | |
2502 Obsolete Systems | |
2503 | |
2504 Documentation improvements | |
2505 | |
2506 Other significant improvements | |
2507 | |
2508 * GCC can now emit code for protecting applications from | |
2509 stack-smashing attacks. The protection is realized by buffer | |
2510 overflow detection and reordering of stack variables to avoid | |
2511 pointer corruption. | |
2512 * Some built-in functions have been fortified to protect them against | |
2513 various buffer overflow (and format string) vulnerabilities. | |
2514 Compared to the mudflap bounds checking feature, the safe builtins | |
2515 have far smaller overhead. This means that programs built using | |
2516 safe builtins should not experience any measurable slowdown. | |
2517 | |
2518 GCC 4.1.2 | |
2519 | |
2520 This is the [6]list of problem reports (PRs) from GCC's bug tracking | |
2521 system that are known to be fixed in the 4.1.2 release. This list might | |
2522 not be complete (that is, it is possible that some PRs that have been | |
2523 fixed are not listed here). | |
2524 | |
2525 When generating code for a shared library, GCC now recognizes that | |
2526 global functions may be replaced when the program runs. Therefore, it | |
2527 is now more conservative in deducing information from the bodies of | |
2528 functions. For example, in this example: | |
2529 void f() {} | |
2530 void g() { | |
2531 try { f(); } | |
2532 catch (...) { | |
2533 cout << "Exception"; | |
2534 } | |
2535 } | |
2536 | |
2537 G++ would previously have optimized away the catch clause, since it | |
2538 would have concluded that f cannot throw exceptions. Because users may | |
2539 replace f with another function in the main body of the program, this | |
2540 optimization is unsafe, and is no longer performed. If you wish G++ to | |
2541 continue to optimize as before, you must add a throw() clause to the | |
2542 declaration of f to make clear that it does not throw exceptions. | |
2543 | |
2544 Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There | |
2545 are also [8]other ways to contact the FSF. | |
2546 | |
2547 These pages are maintained by [9]the GCC team. | |
2548 | |
2549 | |
2550 For questions related to the use of GCC, please consult these web | |
2551 pages and the [10]GCC manuals. If that fails, the | |
2552 [11]gcc-help@gcc.gnu.org mailing list might help. | |
2553 Please send comments on these web pages and the development of GCC to | |
2554 our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. | |
2555 All of our lists have [14]public archives. | |
2556 | |
2557 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
2558 Floor, Boston, MA 02110, USA. | |
2559 | |
2560 Verbatim copying and distribution of this entire article is permitted | |
2561 in any medium, provided this notice is preserved. | |
2562 Last modified 2009-01-25 [15]Valid XHTML 1.0 | |
2563 | |
2564 References | |
2565 | |
2566 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 | |
2567 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText | |
2568 3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html | |
2569 4. http://developer.classpath.org/doc/ | |
2570 5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html | |
2571 6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 | |
2572 7. mailto:gnu@gnu.org | |
2573 8. http://www.gnu.org/home.html#ContactInfo | |
2574 9. http://gcc.gnu.org/about.html | |
2575 10. http://gcc.gnu.org/onlinedocs/ | |
2576 11. mailto:gcc-help@gcc.gnu.org | |
2577 12. mailto:gcc@gnu.org | |
2578 13. mailto:gcc@gcc.gnu.org | |
2579 14. http://gcc.gnu.org/lists.html | |
2580 15. http://validator.w3.org/check/referer | |
2581 ====================================================================== | |
2582 http://gcc.gnu.org/gcc-4.0/index.html | |
2583 GCC 4.0 Release Series | |
2584 | |
2585 January 31, 2007 | |
2586 | |
2587 The [1]GNU project and the GCC developers are pleased to announce the | |
2588 release of GCC 4.0.4. | |
2589 | |
2590 This release is a bug-fix release, containing fixes for regressions in | |
2591 GCC 4.0.3 relative to previous releases of GCC. | |
2592 | |
2593 Release History | |
2594 | |
2595 GCC 4.0.4 | |
2596 January 31, 2007 ([2]changes) | |
2597 | |
2598 GCC 4.0.3 | |
2599 March 10, 2006 ([3]changes) | |
2600 | |
2601 GCC 4.0.2 | |
2602 September 28, 2005 ([4]changes) | |
2603 | |
2604 GCC 4.0.1 | |
2605 July 7, 2005 ([5]changes) | |
2606 | |
2607 GCC 4.0.0 | |
2608 April 20, 2005 ([6]changes) | |
2609 | |
2610 References and Acknowledgements | |
2611 | |
2612 GCC used to stand for the GNU C Compiler, but since the compiler | |
2613 supports several other languages aside from C, it now stands for the | |
2614 GNU Compiler Collection. | |
2615 | |
2616 A list of [7]successful builds is updated as new information becomes | |
2617 available. | |
2618 | |
2619 The GCC developers would like to thank the numerous people that have | |
2620 contributed new features, improvements, bug fixes, and other changes as | |
2621 well as test results to GCC. This [8]amazing group of volunteers is | |
2622 what makes GCC successful. | |
2623 | |
2624 For additional information about GCC please refer to the [9]GCC project | |
2625 web site or contact the [10]GCC development mailing list. | |
2626 | |
2627 To obtain GCC please use [11]our mirror sites, or [12]our SVN server. | |
2628 | |
2629 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There | |
2630 are also [14]other ways to contact the FSF. | |
2631 | |
2632 These pages are maintained by [15]the GCC team. | |
2633 | |
2634 | |
2635 For questions related to the use of GCC, please consult these web | |
2636 pages and the [16]GCC manuals. If that fails, the | |
2637 [17]gcc-help@gcc.gnu.org mailing list might help. | |
2638 Please send comments on these web pages and the development of GCC to | |
2639 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. | |
2640 All of our lists have [20]public archives. | |
2641 | |
2642 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
2643 Floor, Boston, MA 02110, USA. | |
2644 | |
2645 Verbatim copying and distribution of this entire article is permitted | |
2646 in any medium, provided this notice is preserved. | |
2647 Last modified 2008-07-26 [21]Valid XHTML 1.0 | |
2648 | |
2649 References | |
2650 | |
2651 1. http://www.gnu.org/ | |
2652 2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 | |
2653 3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3 | |
2654 4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2 | |
2655 5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 | |
2656 6. http://gcc.gnu.org/gcc-4.0/changes.html | |
2657 7. http://gcc.gnu.org/gcc-4.0/buildstat.html | |
2658 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
2659 9. http://gcc.gnu.org/index.html | |
2660 10. mailto:gcc@gcc.gnu.org | |
2661 11. http://gcc.gnu.org/mirrors.html | |
2662 12. http://gcc.gnu.org/svn.html | |
2663 13. mailto:gnu@gnu.org | |
2664 14. http://www.gnu.org/home.html#ContactInfo | |
2665 15. http://gcc.gnu.org/about.html | |
2666 16. http://gcc.gnu.org/onlinedocs/ | |
2667 17. mailto:gcc-help@gcc.gnu.org | |
2668 18. mailto:gcc@gnu.org | |
2669 19. mailto:gcc@gcc.gnu.org | |
2670 20. http://gcc.gnu.org/lists.html | |
2671 21. http://validator.w3.org/check/referer | |
2672 ====================================================================== | |
2673 http://gcc.gnu.org/gcc-4.0/changes.html | |
2674 GCC 4.0 Release Series | |
2675 Changes, New Features, and Fixes | |
2676 | |
2677 The latest release in the 4.0 release series is [1]GCC 4.0.4. | |
2678 | |
2679 Caveats | |
2680 | |
2681 * GCC now generates location lists by default when compiling with | |
2682 debug info and optimization. | |
2683 + GDB 6.0 and older crashes when it sees location lists. GDB 6.1 | |
2684 or later is needed to debug binaries containing location | |
2685 lists. | |
2686 + When you are trying to view a value of a variable in a part of | |
2687 a function where it has no location (for example when the | |
2688 variable is no longer used and thus its location was used for | |
2689 something else) GDB will say that it is not available. | |
2690 You can disable generating location lists by -fno-var-tracking. | |
2691 * GCC no longer accepts the -fwritable-strings option. Use named | |
2692 character arrays when you need a writable string. | |
2693 * The options -freduce-all-givs and -fmove-all-movables have been | |
2694 discontinued. They were used to circumvent a shortcoming in the | |
2695 heuristics of the old loop optimization code with respect to common | |
2696 Fortran constructs. The new (tree) loop optimizer works differently | |
2697 and doesn't need those work-arounds. | |
2698 * The graph-coloring register allocator, formerly enabled by the | |
2699 option -fnew-ra, has been discontinued. | |
2700 * -I- has been deprecated. -iquote is meant to replace the need for | |
2701 this option. | |
2702 * The MIPS -membedded-pic and -mrnames options have been removed. | |
2703 * All MIPS targets now require the GNU assembler. In particular, IRIX | |
2704 configurations can no longer use the MIPSpro assemblers, although | |
2705 they do still support the MIPSpro linkers. | |
2706 * The SPARC option -mflat has been removed. | |
2707 * English-language diagnostic messages will now use Unicode quotation | |
2708 marks in UTF-8 locales. (Non-English messages already used the | |
2709 quotes appropriate for the language in previous releases.) If your | |
2710 terminal does not support UTF-8 but you are using a UTF-8 locale | |
2711 (such locales are the default on many GNU/Linux systems) then you | |
2712 should set LC_CTYPE=C in the environment to disable that locale. | |
2713 Programs that parse diagnostics and expect plain ASCII | |
2714 English-language messages should set LC_ALL=C. See [2]Markus Kuhn's | |
2715 explanation of Unicode quotation marks for more information. | |
2716 * The specs file is no longer installed on most platforms. Most users | |
2717 will be totally unaffected. However, if you are accustomed to | |
2718 editing the specs file yourself, you will now have to use the | |
2719 -dumpspecs option to generate the specs file, and then edit the | |
2720 resulting file. | |
2721 | |
2722 General Optimizer Improvements | |
2723 | |
2724 * The [3]tree ssa branch has been merged. This merge has brought in a | |
2725 completely new optimization framework based on a higher level | |
2726 intermediate representation than the existing RTL representation. | |
2727 Numerous new code transformations based on the new framework are | |
2728 available in GCC 4.0, including: | |
2729 + Scalar replacement of aggregates | |
2730 + Constant propagation | |
2731 + Value range propagation | |
2732 + Partial redundancy elimination | |
2733 + Load and store motion | |
2734 + Strength reduction | |
2735 + Dead store elimination | |
2736 + Dead and unreachable code elimination | |
2737 + [4]Autovectorization | |
2738 + Loop interchange | |
2739 + Tail recursion by accumulation | |
2740 Many of these passes outperform their counterparts from previous | |
2741 GCC releases. | |
2742 * [5]Swing Modulo Scheduling (SMS). An RTL level instruction | |
2743 scheduling optimization intended for loops that perform heavy | |
2744 computations. | |
2745 | |
2746 New Languages and Language specific improvements | |
2747 | |
2748 C family | |
2749 | |
2750 * The sentinel attribute has been added to GCC. This function | |
2751 attribute allows GCC to warn when variadic functions such as execl | |
2752 are not NULL terminated. See the GCC manual for a complete | |
2753 description of its behavior. | |
2754 * Given __attribute__((alias("target"))) it is now an error if target | |
2755 is not a symbol, defined in the same translation unit. This also | |
2756 applies to aliases created by #pragma weak alias=target. This is | |
2757 because it's meaningless to define an alias to an undefined symbol. | |
2758 On Solaris, the native assembler would have caught this error, but | |
2759 GNU as does not. | |
2760 | |
2761 C and Objective-C | |
2762 | |
2763 * The -Wstrict-aliasing=2 option has been added. This warning catches | |
2764 all unsafe cases, but it may also give a warning for some cases | |
2765 that are safe. | |
2766 * The cast-as-lvalue, conditional-expression-as-lvalue and | |
2767 compound-expression-as-lvalue extensions, which were deprecated in | |
2768 3.3.4 and 3.4, have been removed. | |
2769 * The -fwritable-strings option, which was deprecated in 3.4, has | |
2770 been removed. | |
2771 * #pragma pack() semantics have been brought closer to those used by | |
2772 other compilers. This also applies to C++. | |
2773 * Taking the address of a variable with register storage is invalid | |
2774 in C. GCC now issues an error instead of a warning. | |
2775 * Arrays of incomplete element type are invalid in C. GCC now issues | |
2776 an error for such arrays. Declarations such as extern struct s x[]; | |
2777 (where struct s has not been defined) can be moved after the | |
2778 definition of struct s. Function parameters declared as arrays of | |
2779 incomplete type can instead be declared as pointers. | |
2780 | |
2781 C++ | |
2782 | |
2783 * When compiling without optimizations (-O0), the C++ frontend is | |
2784 much faster than in any previous versions of GCC. Independent | |
2785 testers have measured speed-ups up to 25% in real-world production | |
2786 code, compared to the 3.4 family (which was already the fastest | |
2787 version to date). Upgrading from older versions might show even | |
2788 bigger improvements. | |
2789 * ELF visibility attributes can now be applied to a class type, so | |
2790 that it affects every member function of a class at once, without | |
2791 having to specify each individually: | |
2792 class __attribute__ ((visibility("hidden"))) Foo | |
2793 { | |
2794 int foo1(); | |
2795 void foo2(); | |
2796 }; | |
2797 The syntax is deliberately similar to the __declspec() system used | |
2798 by Microsoft Windows based compilers, allowing cross-platform | |
2799 projects to easily reuse their existing macro system for denoting | |
2800 exports and imports. By explicitly marking internal classes never | |
2801 used outside a binary as hidden, one can completely avoid PLT | |
2802 indirection overheads during their usage by the compiler. You can | |
2803 find out more about the advantages of this at | |
2804 [6]http://people.redhat.com/drepper/dsohowto.pdf | |
2805 * The -fvisibility-inlines-hidden option has been added which marks | |
2806 all inlineable functions as having hidden ELF visibility, thus | |
2807 removing their symbol and typeinfo from the exported symbol table | |
2808 of the output ELF binary. Using this option can reduce the exported | |
2809 symbol count of template-heavy code by up to 40% with no code | |
2810 change at all, thus notably improving link and load times for the | |
2811 binary as well as a reduction in size of up to 10%. Also, check the | |
2812 new [7]-fvisibility option. | |
2813 * The compiler now uses the library interface specified by the [8]C++ | |
2814 ABI for thread-safe initialization of function-scope static | |
2815 variables. Most users should leave this alone, but embedded | |
2816 programmers may want to disable this by specifying | |
2817 -fno-threadsafe-statics for a small savings in code size. | |
2818 * Taking the address of an explicit register variable is no longer | |
2819 supported. Note that C++ allows taking the address of variables | |
2820 with register storage so this will continue to compile with a | |
2821 warning. For example, assuming that r0 is a machine register: | |
2822 register int foo asm ("r0"); | |
2823 register int bar; | |
2824 &foo; // error, no longer accepted | |
2825 &bar; // OK, with a warning | |
2826 * G++ has an undocumented extension to virtual function covariancy | |
2827 rules that allowed the overrider to return a type that was | |
2828 implicitly convertable to the overridden function's return type. | |
2829 For instance a function returning void * could be overridden by a | |
2830 function returning T *. This is now deprecated and will be removed | |
2831 in a future release. | |
2832 * The G++ minimum and maximum operators (<? and >?) and their | |
2833 compound forms (<?=) and >?=) have been deprecated and will be | |
2834 removed in a future version. Code using these operators should be | |
2835 modified to use std::min and std::max instead. | |
2836 * Declaration of nested classes of class templates as friends are | |
2837 supported: | |
2838 template <typename T> struct A { | |
2839 class B {}; | |
2840 }; | |
2841 class C { | |
2842 template <typename T> friend class A<T>::B; | |
2843 }; | |
2844 This complements the feature member functions of class templates as | |
2845 friends introduced in GCC 3.4.0. | |
2846 * When declaring a friend class using an unqualified name, classes | |
2847 outside the innermost non-class scope are not searched: | |
2848 class A; | |
2849 namespace N { | |
2850 class B { | |
2851 friend class A; // Refer to N::A which has not been declared yet | |
2852 // because name outside namespace N are not searched | |
2853 friend class ::A; // Refer to ::A | |
2854 }; | |
2855 } | |
2856 Hiding the friend name until declaration is still not implemented. | |
2857 * Friends of classes defined outside their namespace are correctly | |
2858 handled: | |
2859 namespace N { | |
2860 class A; | |
2861 } | |
2862 class N::A { | |
2863 friend class B; // Refer to N::B in GCC 4.0.0 | |
2864 // but ::B in earlier versions of GCC | |
2865 }; | |
2866 | |
2867 Runtime Library (libstdc++) | |
2868 | |
2869 * Optimization work: | |
2870 + Added efficient specializations of istream functions for char | |
2871 and wchar_t. | |
2872 + Further performance tuning of strings, in particular wrt | |
2873 single-char append and getline. | |
2874 + iter_swap - and therefore most of the mutating algorithms - | |
2875 now makes an unqualified call to swap when the value_type of | |
2876 the two iterators is the same. | |
2877 * A large subset of the features in Technical Report 1 (TR1 for | |
2878 short) is experimentally delivered (i.e., no guarantees about the | |
2879 implementation are provided. In particular it is not promised that | |
2880 the library will remain link-compatible when code using TR1 is | |
2881 used): | |
2882 + General utilities such as reference_wrapper and shared_ptr. | |
2883 + Function objects, i.e., result_of, mem_fn, bind, function. | |
2884 + Support for metaprogramming. | |
2885 + New containers such as tuple, array, unordered_set, | |
2886 unordered_map, unordered_multiset, unordered_multimap. | |
2887 * As usual, many bugs have been fixed and LWG resolutions implemented | |
2888 for the first time (e.g., DR 409). | |
2889 | |
2890 Java | |
2891 | |
2892 * In order to prevent naming conflicts with other implementations of | |
2893 these tools, some GCJ binaries have been renamed: | |
2894 + rmic is now grmic, | |
2895 + rmiregistry is now grmiregistry, and | |
2896 + jar is now fastjar. | |
2897 In particular, these names were problematic for the jpackage.org | |
2898 packaging conventions which install symlinks in /usr/bin that point | |
2899 to the preferred versions of these tools. | |
2900 * The -findirect-dispatch argument to the compiler now works and | |
2901 generates code following a new "binary compatibility" ABI. Code | |
2902 compiled this way follows the binary compatibility rules of the | |
2903 Java Language Specification. | |
2904 * libgcj now has support for using GCJ as a JIT, using the | |
2905 gnu.gcj.jit family of system properties. | |
2906 * libgcj can now find a shared library corresponding to the bytecode | |
2907 representation of a class. See the documentation for the new | |
2908 gcj-dbtool program, and the new gnu.gcj.precompiled.db.path system | |
2909 property. | |
2910 * There have been many improvements to the class library. Here are | |
2911 some highlights: | |
2912 + Much more of AWT and Swing exist. | |
2913 + Many new packages and classes were added, including | |
2914 java.util.regex, java.net.URI, javax.crypto, | |
2915 javax.crypto.interfaces, javax.crypto.spec, javax.net, | |
2916 javax.net.ssl, javax.security.auth, | |
2917 javax.security.auth.callback, javax.security.auth.login, | |
2918 javax.security.auth.x500, javax.security.sasl, org.ietf.jgss, | |
2919 javax.imageio, javax.imageio.event, javax.imageio.spi, | |
2920 javax.print, javax.print.attribute, | |
2921 javax.print.attribute.standard, javax.print.event, and | |
2922 javax.xml | |
2923 + Updated SAX and DOM, and imported GNU JAXP | |
2924 | |
2925 Fortran | |
2926 | |
2927 * A new [9]Fortran front end has replaced the aging GNU Fortran 77 | |
2928 front end. The new front end supports Fortran 90 and Fortran 95. It | |
2929 may not yet be as stable as the old Fortran front end. | |
2930 | |
2931 Ada | |
2932 | |
2933 * Ada (with tasking and Zero Cost Exceptions) is now available on | |
2934 many more targets, including but not limited to: alpha-linux, | |
2935 hppa-hpux, hppa-linux, powerpc-darwin, powerpc-linux, s390-linux, | |
2936 s390x-linux, sparc-linux. | |
2937 * Some of the new Ada 2005 features are now implemented like | |
2938 Wide_Wide_Character and Ada.Containers. | |
2939 * Many bugs have been fixed, tools and documentation improved. | |
2940 * To compile Ada from the sources, install an older working Ada | |
2941 compiler and then use --enable-languages=ada at configuration time, | |
2942 since the Ada frontend is not currently activated by default. See | |
2943 the [10]Installing GCC for details. | |
2944 | |
2945 New Targets and Target Specific Improvements | |
2946 | |
2947 H8/300 | |
2948 | |
2949 * The frame layout has changed. In the new layout, the prologue of a | |
2950 function first saves registers and then allocate space for locals, | |
2951 resulting in an 1% improvement on code size. | |
2952 | |
2953 IA-32/x86-64 (AMD64) | |
2954 | |
2955 * The acos, asin, drem, exp10, exp2, expm1, fmod, ilogb, log10, | |
2956 log1p, log2, logb and tan mathematical builtins (and their float | |
2957 and long double variants) are now implemented as inline x87 | |
2958 intrinsics when using -ffast-math. | |
2959 * The ceil, floor, nearbyint, rint and trunc mathematical builtins | |
2960 (and their float and long double variants) are now implemented as | |
2961 inline x87 intrinsics when using -ffast-math. | |
2962 * The x87's fsincos instruction is now used automatically with | |
2963 -ffast-math when calculating both the sin and cos of the same | |
2964 argument. | |
2965 * Instruction selection for multiplication and division by constants | |
2966 has been improved. | |
2967 | |
2968 IA-64 | |
2969 | |
2970 * Floating point division, integer division and sqrt are now inlined, | |
2971 resulting in significant performance improvements on some codes. | |
2972 | |
2973 MIPS | |
2974 | |
2975 * Division by zero checks now use conditional traps if the target | |
2976 processor supports them. This decreases code size by one word per | |
2977 division operation. The old behavior (branch and break) can be | |
2978 obtained either at configure time by passing --with-divide=breaks | |
2979 to configure or at runtime by passing -mdivide-breaks to GCC. | |
2980 * Support for MIPS64 paired-single instructions has been added. It is | |
2981 enabled by -mpaired-single and can be accessed using both the | |
2982 target-independent vector extensions and new MIPS-specific built-in | |
2983 functions. | |
2984 * Support for the MIPS-3D ASE has been added. It is enabled by | |
2985 -mips3d and provides new MIPS-3D-specific built-in functions. | |
2986 * The -mexplicit-relocs option now supports static n64 code (as is | |
2987 used, for example, in 64-bit linux kernels). -mexplicit-relocs | |
2988 should now be feature-complete and is enabled by default when GCC | |
2989 is configured to use a compatible assembler. | |
2990 * Support for the NEC VR4130 series has been added. This support | |
2991 includes the use of VR-specific instructions and a new VR4130 | |
2992 scheduler. Full VR4130 support can be selected with -march=vr4130 | |
2993 while code for any ISA can be tuned for the VR4130 using | |
2994 -mtune=vr4130. There is also a new -mvr4130-align option that | |
2995 produces better schedules at the cost of increased code size. | |
2996 * Support for the Broadcom SB-1 has been extended. There is now an | |
2997 SB-1 scheduler as well as support for the SB-1-specific | |
2998 paired-single instructions. Full SB-1 support can be selected with | |
2999 -march=sb1 while code for any ISA can be optimized for the SB-1 | |
3000 using -mtune=sb1. | |
3001 * The compiler can now work around errata in R4000, R4400, VR4120 and | |
3002 VR4130 processors. These workarounds are enabled by -mfix-r4000, | |
3003 -mfix-r4400, -mfix-vr4120 and -mfix-vr4130 respectively. The VR4120 | |
3004 and VR4130 workarounds need binutils 2.16 or above. | |
3005 * IRIX shared libraries are now installed into the standard library | |
3006 directories: o32 libraries go into lib/, n32 libraries go into | |
3007 lib32/ and n64 libraries go into lib64/. | |
3008 * The compiler supports a new -msym32 option. It can be used to | |
3009 optimize n64 code in which all symbols are known to have 32-bit | |
3010 values. | |
3011 | |
3012 S/390 and zSeries | |
3013 | |
3014 * New command-line options help to generate code intended to run in | |
3015 an environment where stack space is restricted, e.g. Linux kernel | |
3016 code: | |
3017 + -mwarn-framesize and -mwarn-dynamicstack trigger compile-time | |
3018 warnings for single functions that require large or dynamic | |
3019 stack frames. | |
3020 + -mstack-size and -mstack-guard generate code that checks for | |
3021 stack overflow at run time. | |
3022 + -mpacked-stack generates code that reduces the stack frame | |
3023 size of many functions by reusing unneeded parts of the stack | |
3024 bias area. | |
3025 * The -msoft-float option now ensures that generated code never | |
3026 accesses floating point registers. | |
3027 * The s390x-ibm-tpf target now fully supports C++, including | |
3028 exceptions and threads. | |
3029 * Various changes to improve performance of the generated code have | |
3030 been implemented, including: | |
3031 + GCC now uses sibling calls where possible. | |
3032 + Condition code handling has been optimized, allowing GCC to | |
3033 omit redundant comparisons in certain cases. | |
3034 + The cost function guiding many optimizations has been refined | |
3035 to more accurately represent the z900 and z990 processors. | |
3036 + The ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW | |
3037 instructions are now used to avoid conditional branches in | |
3038 certain cases. | |
3039 + The back end now uses the LEGITIMIZE_RELOAD_ADDRESS feature to | |
3040 optimize address arithmetic required to access large stack | |
3041 frames. | |
3042 + GCC now makes more efficient use of memory-to-memory type | |
3043 instructions (MVC, CLC, ...). | |
3044 + More precise tracking of special register use allows better | |
3045 instruction scheduling, in particular of the function prologue | |
3046 and epilogue sequences. | |
3047 + The Java front end now generates inline code to implement | |
3048 integer division, instead of calling library routines. | |
3049 | |
3050 SPARC | |
3051 | |
3052 * The options -mv8, -msparclite, -mcypress, -msupersparc, -mf930 and | |
3053 -mf934 have been removed. They have been replaced with -mcpu=xxx. | |
3054 * The internal model used to estimate the relative cost of each | |
3055 instruction has been updated. It is expected to give better results | |
3056 on recent UltraSPARC processors. | |
3057 * Code generation for function prologues and epilogues has been | |
3058 improved, resulting in better scheduling and allowing multiple exit | |
3059 points in functions. | |
3060 * Support for Sun's Visual Instruction Set (VIS) has been enhanced. | |
3061 It is enabled by -mvis and provides new built-in functions for VIS | |
3062 instructions on UltraSPARC processors. | |
3063 * The option -mapp-regs has been turned on by default on Solaris too. | |
3064 | |
3065 NetWare | |
3066 | |
3067 * Novell NetWare (on ix86, no other hardware platform was ever really | |
3068 supported by this OS) has been re-enabled and the ABI supported by | |
3069 GCC has been brought into sync with that of MetroWerks CodeWarrior | |
3070 (the ABI previously supported was that of some Unix systems, which | |
3071 NetWare never tried to support). | |
3072 | |
3073 Obsolete Systems | |
3074 | |
3075 Support for a number of older systems has been declared obsolete in GCC | |
3076 4.0. Unless there is activity to revive them, the next release of GCC | |
3077 will have their sources permanently removed. | |
3078 | |
3079 All GCC ports for the following processor architectures have been | |
3080 declared obsolete: | |
3081 * Intel i860 | |
3082 * Ubicom IP2022 | |
3083 * National Semiconductor NS32K | |
3084 * Texas Instruments TMS320C[34]x | |
3085 | |
3086 Also, those for some individual systems have been obsoleted: | |
3087 * SPARC family | |
3088 + SPARClite-based systems (sparclite-*-coff, sparclite-*-elf, | |
3089 sparc86x-*-elf) | |
3090 + OpenBSD 32-bit (sparc-*-openbsd*) | |
3091 | |
3092 Documentation improvements | |
3093 | |
3094 Other significant improvements | |
3095 | |
3096 * Location lists are now generated by default when compiling with | |
3097 debug info and optimization. Location lists provide more accurate | |
3098 debug info about locations of variables and they allow debugging | |
3099 code compiled with -fomit-frame-pointer. | |
3100 * The -fvisibility option has been added which allows the default ELF | |
3101 visibility of all symbols to be set per compilation and the new | |
3102 #pragma GCC visibility preprocessor command allows the setting of | |
3103 default ELF visibility for a region of code. Using | |
3104 -fvisibility=hidden especially in combination with the new | |
3105 -fvisibility-inlines-hidden can yield substantial improvements in | |
3106 output binary quality including avoiding PLT indirection overheads, | |
3107 reduction of the exported symbol count by up to 60% (with resultant | |
3108 improvements to link and load times), better scope for the | |
3109 optimizer to improve code and up to a 20% reduction in binary size. | |
3110 Using these options correctly yields a binary with a similar symbol | |
3111 count to a Windows DLL. | |
3112 Perhaps more importantly, this new feature finally allows (with | |
3113 careful planning) complete avoidance of symbol clashes when | |
3114 manually loading shared objects with RTLD_GLOBAL, thus finally | |
3115 solving problems many projects such as python were forced to use | |
3116 RTLD_LOCAL for (with its resulting issues for C++ correctness). You | |
3117 can find more information about using these options at | |
3118 [11]http://gcc.gnu.org/wiki/Visibility. | |
3119 __________________________________________________________________ | |
3120 | |
3121 GCC 4.0.1 | |
3122 | |
3123 This is the [12]list of problem reports (PRs) from GCC's bug tracking | |
3124 system that are known to be fixed in the 4.0.1 release. This list might | |
3125 not be complete (that is, it is possible that some PRs that have been | |
3126 fixed are not listed here). | |
3127 | |
3128 GCC 4.0.2 | |
3129 | |
3130 This is the [13]list of problem reports (PRs) from GCC's bug tracking | |
3131 system that are known to be fixed in the 4.0.2 release. This list might | |
3132 not be complete (that is, it is possible that some PRs that have been | |
3133 fixed are not listed here). | |
3134 | |
3135 Unfortunately, due to a release engineering failure, this release has a | |
3136 regression on Solaris that will affect some C++ programs. We suggest | |
3137 that Solaris users apply a [14]patch that corrects the problem. Users | |
3138 who do not wish to apply the patch should explicitly link C++ programs | |
3139 with the -pthreads option, even if they do not use threads. This | |
3140 problem has been corrected in the current 4.0 branch sources and will | |
3141 not be present in GCC 4.0.3. | |
3142 | |
3143 GCC 4.0.3 | |
3144 | |
3145 Starting with this release, the function getcontext is recognized by | |
3146 the compiler as having the same semantics as the setjmp function. In | |
3147 particular, the compiler will ensure that all registers are dead before | |
3148 calling such a function and will emit a warning about the variables | |
3149 that may be clobbered after the second return from the function. | |
3150 | |
3151 GCC 4.0.4 | |
3152 | |
3153 This is the [15]list of problem reports (PRs) from GCC's bug tracking | |
3154 system that are known to be fixed in the 4.0.4 release. This list might | |
3155 not be complete (that is, it is possible that some PRs that have been | |
3156 fixed are not listed here). | |
3157 | |
3158 The 4.0.4 release is provided for those that require a high degree of | |
3159 binary compatibility with previous 4.0.x releases. For most users, the | |
3160 GCC team recommends that version 4.1.1 or later be used instead." | |
3161 | |
3162 Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There | |
3163 are also [17]other ways to contact the FSF. | |
3164 | |
3165 These pages are maintained by [18]the GCC team. | |
3166 | |
3167 | |
3168 For questions related to the use of GCC, please consult these web | |
3169 pages and the [19]GCC manuals. If that fails, the | |
3170 [20]gcc-help@gcc.gnu.org mailing list might help. | |
3171 Please send comments on these web pages and the development of GCC to | |
3172 our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. | |
3173 All of our lists have [23]public archives. | |
3174 | |
3175 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
3176 Floor, Boston, MA 02110, USA. | |
3177 | |
3178 Verbatim copying and distribution of this entire article is permitted | |
3179 in any medium, provided this notice is preserved. | |
3180 Last modified 2009-01-25 [24]Valid XHTML 1.0 | |
3181 | |
3182 References | |
3183 | |
3184 1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 | |
3185 2. http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html | |
3186 3. http://gcc.gnu.org/projects/tree-ssa/ | |
3187 4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html | |
3188 5. http://gcc.gnu.org/news/sms.html | |
3189 6. http://people.redhat.com/drepper/dsohowto.pdf | |
3190 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility | |
3191 8. http://www.codesourcery.com/public/cxx-abi/ | |
3192 9. http://gcc.gnu.org/fortran/ | |
3193 10. http://gcc.gnu.org/install/ | |
3194 11. http://gcc.gnu.org/wiki/Visibility | |
3195 12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 | |
3196 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2 | |
3197 14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html | |
3198 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4 | |
3199 16. mailto:gnu@gnu.org | |
3200 17. http://www.gnu.org/home.html#ContactInfo | |
3201 18. http://gcc.gnu.org/about.html | |
3202 19. http://gcc.gnu.org/onlinedocs/ | |
3203 20. mailto:gcc-help@gcc.gnu.org | |
3204 21. mailto:gcc@gnu.org | |
3205 22. mailto:gcc@gcc.gnu.org | |
3206 23. http://gcc.gnu.org/lists.html | |
3207 24. http://validator.w3.org/check/referer | |
3208 ====================================================================== | |
3209 http://gcc.gnu.org/gcc-3.4/index.html | |
3210 GCC 3.4 Release Series | |
3211 | |
3212 May 26, 2006 | |
3213 | |
3214 The [1]GNU project and the GCC developers are pleased to announce the | |
3215 release of GCC 3.4.6. | |
3216 | |
3217 This release is a bug-fix release, containing fixes for regressions in | |
3218 GCC 3.4.4 relative to previous releases of GCC. This is the last of the | |
3219 3.4.x series. | |
3220 | |
3221 The GCC 3.4 release series includes numerous [2]new features, | |
3222 improvements, bug fixes, and other changes, thanks to an [3]amazing | |
3223 group of volunteers. | |
3224 | |
3225 Release History | |
3226 | |
3227 GCC 3.4.6 | |
3228 March 6, 2006 ([4]changes) | |
3229 | |
3230 GCC 3.4.5 | |
3231 November 30, 2005 ([5]changes) | |
3232 | |
3233 GCC 3.4.4 | |
3234 May 18, 2005 ([6]changes) | |
3235 | |
3236 GCC 3.4.3 | |
3237 November 4, 2004 ([7]changes) | |
3238 | |
3239 GCC 3.4.2 | |
3240 September 6, 2004 ([8]changes) | |
3241 | |
3242 GCC 3.4.1 | |
3243 July 1, 2004 ([9]changes) | |
3244 | |
3245 GCC 3.4.0 | |
3246 April 18, 2004 ([10]changes) | |
3247 | |
3248 References and Acknowledgements | |
3249 | |
3250 GCC used to stand for the GNU C Compiler, but since the compiler | |
3251 supports several other languages aside from C, it now stands for the | |
3252 GNU Compiler Collection. | |
3253 | |
3254 A list of [11]successful builds is updated as new information becomes | |
3255 available. | |
3256 | |
3257 The GCC developers would like to thank the numerous people that have | |
3258 contributed new features, improvements, bug fixes, and other changes as | |
3259 well as test results to GCC. This [12]amazing group of volunteers is | |
3260 what makes GCC successful. | |
3261 | |
3262 For additional information about GCC please refer to the [13]GCC | |
3263 project web site or contact the [14]GCC development mailing list. | |
3264 | |
3265 To obtain GCC please use [15]our mirror sites, or [16]our SVN server. | |
3266 | |
3267 Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There | |
3268 are also [18]other ways to contact the FSF. | |
3269 | |
3270 These pages are maintained by [19]the GCC team. | |
3271 | |
3272 | |
3273 For questions related to the use of GCC, please consult these web | |
3274 pages and the [20]GCC manuals. If that fails, the | |
3275 [21]gcc-help@gcc.gnu.org mailing list might help. | |
3276 Please send comments on these web pages and the development of GCC to | |
3277 our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. | |
3278 All of our lists have [24]public archives. | |
3279 | |
3280 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
3281 Floor, Boston, MA 02110, USA. | |
3282 | |
3283 Verbatim copying and distribution of this entire article is permitted | |
3284 in any medium, provided this notice is preserved. | |
3285 Last modified 2008-07-26 [25]Valid XHTML 1.0 | |
3286 | |
3287 References | |
3288 | |
3289 1. http://www.gnu.org/ | |
3290 2. http://gcc.gnu.org/gcc-3.4/changes.html | |
3291 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
3292 4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 | |
3293 5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 | |
3294 6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 | |
3295 7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 | |
3296 8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 | |
3297 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 | |
3298 10. http://gcc.gnu.org/gcc-3.4/changes.html | |
3299 11. http://gcc.gnu.org/gcc-3.4/buildstat.html | |
3300 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
3301 13. http://gcc.gnu.org/index.html | |
3302 14. mailto:gcc@gcc.gnu.org | |
3303 15. http://gcc.gnu.org/mirrors.html | |
3304 16. http://gcc.gnu.org/svn.html | |
3305 17. mailto:gnu@gnu.org | |
3306 18. http://www.gnu.org/home.html#ContactInfo | |
3307 19. http://gcc.gnu.org/about.html | |
3308 20. http://gcc.gnu.org/onlinedocs/ | |
3309 21. mailto:gcc-help@gcc.gnu.org | |
3310 22. mailto:gcc@gnu.org | |
3311 23. mailto:gcc@gcc.gnu.org | |
3312 24. http://gcc.gnu.org/lists.html | |
3313 25. http://validator.w3.org/check/referer | |
3314 ====================================================================== | |
3315 http://gcc.gnu.org/gcc-3.4/changes.html | |
3316 GCC 3.4 Release Series | |
3317 Changes, New Features, and Fixes | |
3318 | |
3319 The final release in the 3.4 release series is [1]GCC 3.4.6. The series | |
3320 is now closed. | |
3321 | |
3322 GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting | |
3323 a bug, please make sure it's really GCC, and not your code, that is | |
3324 broken. | |
3325 | |
3326 Caveats | |
3327 | |
3328 * GNU Make is now required to build GCC. | |
3329 * With -nostdinc the preprocessor used to ignore both standard | |
3330 include paths and include paths contained in environment variables. | |
3331 It was neither documented nor intended that environment variable | |
3332 paths be ignored, so this has been corrected. | |
3333 * GCC no longer accepts the options -fvolatile, -fvolatile-global and | |
3334 -fvolatile-static. It is unlikely that they worked correctly in any | |
3335 3.x release. | |
3336 * GCC no longer ships <varargs.h>. Use <stdarg.h> instead. | |
3337 * Support for all the systems [3]obsoleted in GCC 3.3 has been | |
3338 removed from GCC 3.4. See below for a [4]list of systems which are | |
3339 obsoleted in this release. | |
3340 * GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C | |
3341 compilers will not work. | |
3342 * The implementation of the [5]MIPS ABIs has changed. As a result, | |
3343 the code generated for certain MIPS targets will not be binary | |
3344 compatible with earlier releases. | |
3345 * In previous releases, the MIPS port had a fake "hilo" register with | |
3346 the user-visible name accum. This register has been removed. | |
3347 * The implementation of the [6]SPARC ABIs has changed. As a result, | |
3348 the code generated will not be binary compatible with earlier | |
3349 releases in certain cases. | |
3350 * The configure option --enable-threads=pthreads has been removed; | |
3351 use --enable-threads=posix instead, which should have the same | |
3352 effect. | |
3353 * Code size estimates used by inlining heuristics for C, Objective-C, | |
3354 C++ and Java have been redesigned significantly. As a result the | |
3355 parameters of -finline-insns, --param max-inline-insns-single and | |
3356 --param max-inline-insns-auto need to be reconsidered. | |
3357 * --param max-inline-slope and --param min-inline-insns have been | |
3358 removed; they are not needed for the new bottom-up inlining | |
3359 heuristics. | |
3360 * The new unit-at-a-time compilation scheme has several compatibility | |
3361 issues: | |
3362 + The order in which functions, variables, and top-level asm | |
3363 statements are emitted may have changed. Code relying on some | |
3364 particular ordering needs to be updated. The majority of such | |
3365 top-level asm statements can be replaced by section | |
3366 attributes. | |
3367 + Unreferenced static variables and functions are removed. This | |
3368 may result in undefined references when an asm statement | |
3369 refers to the variable/function directly. In that case either | |
3370 the variable/function shall be listed in asm statement operand | |
3371 or in the case of top-level asm statements the attribute used | |
3372 shall be used to force function/variable to be always output | |
3373 and considered as a possibly used by unknown code. | |
3374 For variables the attribute is accepted only by GCC 3.4 and | |
3375 newer, while for earlier versions it is sufficient to use | |
3376 unused to silence warnings about the variables not being | |
3377 referenced. To keep code portable across different GCC | |
3378 versions, you can use appropriate preprocessor conditionals. | |
3379 + Static functions now can use non-standard passing conventions | |
3380 that may break asm statements calling functions directly. | |
3381 Again the attribute used shall be used to prevent this | |
3382 behavior. | |
3383 As a temporary workaround, -fno-unit-at-a-time can be used, but | |
3384 this scheme may not be supported by future releases of GCC. | |
3385 * GCC 3.4 automatically places zero-initialized variables in the .bss | |
3386 section on some operating systems. Versions of GNU Emacs up to (and | |
3387 including) 21.3 will not work correctly when using this | |
3388 optimization; you can use -fno-zero-initialized-in-bss to disable | |
3389 it. | |
3390 * If GCC 3.4 is configured with --enable-threads=posix (the default | |
3391 on most targets that support pthreads) then _REENTRANT will be | |
3392 defined unconditionally by some libstdc++ headers. C++ code which | |
3393 relies on that macro to detect whether multi-threaded code is being | |
3394 compiled might change in meaning, possibly resulting in linker | |
3395 errors for single-threaded programs. Affected users of [7]Boost | |
3396 should compile single-threaded code with -DBOOST_DISABLE_THREADS. | |
3397 See Bugzilla for [8]more information. | |
3398 | |
3399 General Optimizer Improvements | |
3400 | |
3401 * Usability of the profile feedback and coverage testing has been | |
3402 improved. | |
3403 + Performance of profiled programs has been improved by faster | |
3404 profile merging code. | |
3405 + Better use of the profile feedback for optimization (loop | |
3406 unrolling and loop peeling). | |
3407 + File locking support allowing fork() calls and parallel runs | |
3408 of profiled programs. | |
3409 + Coverage file format has been redesigned. | |
3410 + gcov coverage tool has been improved. | |
3411 + make profiledbootstrap available to build a faster compiler. | |
3412 Experiments made on i386 hardware showed an 11% speedup on -O0 | |
3413 and a 7.5% speedup on -O2 compilation of a [9]large C++ | |
3414 testcase. | |
3415 + New value profiling pass enabled via -fprofile-values | |
3416 + New value profile transformations pass enabled via -fvpt aims | |
3417 to optimize some code sequences by exploiting knowledge about | |
3418 value ranges or other properties of the operands. At the | |
3419 moment a conversion of expensive divisions into cheaper | |
3420 operations has been implemented. | |
3421 + New -fprofile-generate and -fprofile-use command-line options | |
3422 to simplify the use of profile feedback. | |
3423 * A new unit-at-a-time compilation scheme for C, Objective-C, C++ and | |
3424 Java which is enabled via -funit-at-a-time (and implied by -O2). In | |
3425 this scheme a whole file is parsed first and optimized later. The | |
3426 following basic inter-procedural optimizations are implemented: | |
3427 + Removal of unreachable functions and variables | |
3428 + Discovery of local functions (functions with static linkage | |
3429 whose address is never taken) | |
3430 + On i386, these local functions use register parameter passing | |
3431 conventions. | |
3432 + Reordering of functions in topological order of the call graph | |
3433 to enable better propagation of optimizing hints (such as the | |
3434 stack alignments needed by functions) in the back end. | |
3435 + Call graph based out-of-order inlining heuristics which allows | |
3436 to limit overall compilation unit growth (--param | |
3437 inline-unit-growth). | |
3438 Overall, the unit-at-a-time scheme produces a 1.3% improvement for | |
3439 the SPECint2000 benchmark on the i386 architecture (AMD Athlon | |
3440 CPU). | |
3441 * More realistic code size estimates used by inlining for C, | |
3442 Objective-C, C++ and Java. The growth of large functions can now be | |
3443 limited via --param large-function-insns and --param | |
3444 large-function-growth. | |
3445 * A new cfg-level loop optimizer pass replaces the old loop unrolling | |
3446 pass and adds two other loop transformations -- loop peeling and | |
3447 loop unswitching -- and also uses the profile feedback to limit | |
3448 code growth. (The three optimizations are enabled by | |
3449 -funroll-loops, -fpeel-loops and -funswitch-loops flags, | |
3450 respectively). | |
3451 The old loop unroller still can be enabled by -fold-unroll-loops | |
3452 and may produce better code in some cases, especially when the | |
3453 webizer optimization pass is not run. | |
3454 * A new web construction pass enabled via -fweb (and implied by -O3) | |
3455 improves the quality of register allocation, CSE, first scheduling | |
3456 pass and some other optimization passes by avoiding re-use of | |
3457 pseudo registers with non-overlapping live ranges. The pass almost | |
3458 always improves code quality but does make debugging difficult and | |
3459 thus is not enabled by default by -O2 | |
3460 The pass is especially effective as cleanup after code duplication | |
3461 passes, such as the loop unroller or the tracer. | |
3462 * Experimental implementations of superblock or trace scheduling in | |
3463 the second scheduling pass can be enabled via | |
3464 -fsched2-use-superblocks and -fsched2-use-traces, respectively. | |
3465 | |
3466 New Languages and Language specific improvements | |
3467 | |
3468 Ada | |
3469 | |
3470 * The Ada front end has been updated to include numerous bug fixes | |
3471 and enhancements. These include: | |
3472 + Improved project file support | |
3473 + Additional set of warnings about potential wrong code | |
3474 + Improved error messages | |
3475 + Improved code generation | |
3476 + Improved cross reference information | |
3477 + Improved inlining | |
3478 + Better run-time check elimination | |
3479 + Better error recovery | |
3480 + More efficient implementation of unbounded strings | |
3481 + Added features in GNAT.Sockets, GNAT.OS_Lib, GNAT.Debug_Pools, | |
3482 ... | |
3483 + New GNAT.xxxx packages (e.g. GNAT.Strings, | |
3484 GNAT.Exception_Action) | |
3485 + New pragmas | |
3486 + New -gnatS switch replacing gnatpsta | |
3487 + Implementation of new Ada features (in particular limited | |
3488 with, limited aggregates) | |
3489 | |
3490 C/Objective-C/C++ | |
3491 | |
3492 * Precompiled headers are now supported. Precompiled headers can | |
3493 dramatically speed up compilation of some projects. There are some | |
3494 known defects in the current precompiled header implementation that | |
3495 will result in compiler crashes in relatively rare situations. | |
3496 Therefore, precompiled headers should be considered a "technology | |
3497 preview" in this release. Read the manual for details about how to | |
3498 use precompiled headers. | |
3499 * File handling in the preprocessor has been rewritten. GCC no longer | |
3500 gets confused by symlinks and hardlinks, and now has a correct | |
3501 implementation of #import and #pragma once. These two directives | |
3502 have therefore been un-deprecated. | |
3503 * The undocumented extension that allowed C programs to have a label | |
3504 at the end of a compound statement, which has been deprecated since | |
3505 GCC 3.0, has been removed. | |
3506 * The cast-as-lvalue extension has been removed for C++ and | |
3507 deprecated for C and Objective-C. In particular, code like this: | |
3508 int i; | |
3509 (char) i = 5; | |
3510 | |
3511 or this: | |
3512 char *p; | |
3513 ((int *) p)++; | |
3514 | |
3515 is no longer accepted for C++ and will not be accepted for C and | |
3516 Objective-C in a future version. | |
3517 * The conditional-expression-as-lvalue extension has been deprecated | |
3518 for C and Objective-C. In particular, code like this: | |
3519 int a, b, c; | |
3520 (a ? b : c) = 2; | |
3521 | |
3522 will not be accepted for C and Objective-C in a future version. | |
3523 * The compound-expression-as-lvalue extension has been deprecated for | |
3524 C and Objective-C. In particular, code like this: | |
3525 int a, b; | |
3526 (a, b) = 2; | |
3527 | |
3528 will not be accepted for C and Objective-C in a future version. A | |
3529 possible non-intrusive workaround is the following: | |
3530 (*(a, &b)) = 2; | |
3531 | |
3532 * Several [10]built-in functions such as __builtin_popcount for | |
3533 counting bits, finding the highest and lowest bit in a word, and | |
3534 parity have been added. | |
3535 * The -fwritable-strings option has been deprecated and will be | |
3536 removed. | |
3537 * Many C math library functions are now recognized as built-ins and | |
3538 optimized. | |
3539 * The C, C++, and Objective-C compilers can now handle source files | |
3540 written in any character encoding supported by the host C library. | |
3541 The default input character set is taken from the current locale, | |
3542 and may be overridden with the -finput-charset command line option. | |
3543 In the future we will add support for inline encoding markers. | |
3544 | |
3545 C++ | |
3546 | |
3547 * G++ is now much closer to full conformance to the ISO/ANSI C++ | |
3548 standard. This means, among other things, that a lot of invalid | |
3549 constructs which used to be accepted in previous versions will now | |
3550 be rejected. It is very likely that existing C++ code will need to | |
3551 be fixed. This document lists some of the most common issues. | |
3552 * A hand-written recursive-descent C++ parser has replaced the | |
3553 YACC-derived C++ parser from previous GCC releases. The new parser | |
3554 contains much improved infrastructure needed for better parsing of | |
3555 C++ source codes, handling of extensions, and clean separation | |
3556 (where possible) between proper semantics analysis and parsing. The | |
3557 new parser fixes many bugs that were found in the old parser. | |
3558 * You must now use the typename and template keywords to disambiguate | |
3559 dependent names, as required by the C++ standard. | |
3560 struct K { | |
3561 typedef int mytype_t; | |
3562 }; | |
3563 | |
3564 template <class T1> struct A { | |
3565 template <class T2> struct B { | |
3566 void callme(void); | |
3567 }; | |
3568 | |
3569 template <int N> void bar(void) | |
3570 { | |
3571 // Use 'typename' to tell the parser that T1::mytype_t names | |
3572 // a type. This is needed because the name is dependent (in | |
3573 // this case, on template parameter T1). | |
3574 typename T1::mytype_t x; | |
3575 x = 0; | |
3576 } | |
3577 }; | |
3578 | |
3579 template <class T> void template_func(void) | |
3580 { | |
3581 // Use 'template' to prefix member templates within | |
3582 // dependent types (a has type A<T>, which depends on | |
3583 // the template parameter T). | |
3584 A<T> a; | |
3585 a.template bar<0>(); | |
3586 | |
3587 // Use 'template' to tell the parser that B is a nested | |
3588 // template class (dependent on template parameter T), and | |
3589 // 'typename' because the whole A<T>::B<int> is | |
3590 // the name of a type (again, dependent). | |
3591 typename A<T>::template B<int> b; | |
3592 b.callme(); | |
3593 } | |
3594 | |
3595 void non_template_func(void) | |
3596 { | |
3597 // Outside of any template class or function, no names can be | |
3598 // dependent, so the use of the keyword 'typename' and 'template' | |
3599 // is not needed (and actually forbidden). | |
3600 A<K> a; | |
3601 a.bar<0>(); | |
3602 A<K>::B<float> b; | |
3603 b.callme(); | |
3604 } | |
3605 * In a template definition, unqualified names will no longer find | |
3606 members of a dependent base (as specified by [temp.dep]/3 in the | |
3607 C++ standard). For example, | |
3608 template <typename T> struct B { | |
3609 int m; | |
3610 int n; | |
3611 int f (); | |
3612 int g (); | |
3613 }; | |
3614 int n; | |
3615 int g (); | |
3616 template <typename T> struct C : B<T> { | |
3617 void h () | |
3618 { | |
3619 m = 0; // error | |
3620 f (); // error | |
3621 n = 0; // ::n is modified | |
3622 g (); // ::g is called | |
3623 } | |
3624 }; | |
3625 You must make the names dependent, e.g. by prefixing them with | |
3626 this->. Here is the corrected definition of C<T>::h, | |
3627 template <typename T> void C<T>::h () | |
3628 { | |
3629 this->m = 0; | |
3630 this->f (); | |
3631 this->n = 0 | |
3632 this->g (); | |
3633 } | |
3634 As an alternative solution (unfortunately not backwards compatible | |
3635 with GCC 3.3), you may use using declarations instead of this->: | |
3636 template <typename T> struct C : B<T> { | |
3637 using B<T>::m; | |
3638 using B<T>::f; | |
3639 using B<T>::n; | |
3640 using B<T>::g; | |
3641 void h () | |
3642 { | |
3643 m = 0; | |
3644 f (); | |
3645 n = 0; | |
3646 g (); | |
3647 } | |
3648 }; | |
3649 * In templates, all non-dependent names are now looked up and bound | |
3650 at definition time (while parsing the code), instead of later when | |
3651 the template is instantiated. For instance: | |
3652 void foo(int); | |
3653 | |
3654 template <int> struct A { | |
3655 static void bar(void){ | |
3656 foo('a'); | |
3657 } | |
3658 }; | |
3659 | |
3660 void foo(char); | |
3661 | |
3662 int main() | |
3663 { | |
3664 A<0>::bar(); // Calls foo(int), used to call foo(char). | |
3665 } | |
3666 | |
3667 * In an explicit instantiation of a class template, you must use | |
3668 class or struct before the template-id: | |
3669 template <int N> | |
3670 class A {}; | |
3671 | |
3672 template A<0>; // error, not accepted anymore | |
3673 template class A<0>; // OK | |
3674 * The "named return value" and "implicit typename" extensions have | |
3675 been removed. | |
3676 * Default arguments in function types have been deprecated and will | |
3677 be removed. | |
3678 * ARM-style name-injection of friend declarations has been deprecated | |
3679 and will be removed. For example: struct S { friend void f(); }; | |
3680 void g() { f(); } will not be accepted by future versions of G++; | |
3681 instead a declaration of "f" will need to be present outside of the | |
3682 scope of "S". | |
3683 * Covariant returns are implemented for all but varadic functions | |
3684 that require an adjustment. | |
3685 * When -pedantic is used, G++ now issues errors about spurious | |
3686 semicolons. For example, | |
3687 namespace N {}; // Invalid semicolon. | |
3688 void f() {}; // Invalid semicolon. | |
3689 * G++ no longer accepts attributes for a declarator after the | |
3690 initializer associated with that declarator. For example, | |
3691 X x(1) __attribute__((...)); | |
3692 is no longer accepted. Instead, use: | |
3693 X x __attribute__((...)) (1); | |
3694 * Inside the scope of a template class, the name of the class itself | |
3695 can be treated as either a class or a template. So GCC used to | |
3696 accept the class name as argument of type template, and template | |
3697 template parameter. However this is not C++ standard compliant. Now | |
3698 the name is not treated as a valid template template argument | |
3699 unless you qualify the name by its scope. For example, the code | |
3700 below no longer compiles. | |
3701 template <template <class> class TT> class X {}; | |
3702 template <class T> class Y { | |
3703 X<Y> x; // Invalid, Y is always a type template parameter. | |
3704 }; | |
3705 The valid code for the above example is | |
3706 X< ::Y> x; // Valid. | |
3707 (Notice the space between < and : to prevent GCC to interpret this | |
3708 as a digraph for [.) | |
3709 * Friend declarations that refer to template specializations are | |
3710 rejected if the template has not already been declared. For | |
3711 example, | |
3712 template <typename T> | |
3713 class C { | |
3714 friend void f<> (C&); | |
3715 }; | |
3716 is rejected. You must first declare f as a template, | |
3717 template <typename T> | |
3718 void f(T); | |
3719 * In case of friend declarations, every name used in the friend | |
3720 declaration must be accessible at the point of that declaration. | |
3721 Previous versions of G++ used to be less strict about this and | |
3722 allowed friend declarations for private class members, for example. | |
3723 See the ISO C++ Standard Committee's [11]defect report #209 for | |
3724 details. | |
3725 * Declaration of member functions of class templates as friends are | |
3726 supported. For example, | |
3727 template <typename T> struct A { | |
3728 void f(); | |
3729 }; | |
3730 class C { | |
3731 template <typename T> friend void A<T>::f(); | |
3732 }; | |
3733 * You must use template <> to introduce template specializations, as | |
3734 required by the standard. For example, | |
3735 template <typename T> | |
3736 struct S; | |
3737 | |
3738 struct S<int> { }; | |
3739 is rejected. You must write, | |
3740 template <> struct S<int> {}; | |
3741 * G++ used to accept code like this, | |
3742 struct S { | |
3743 int h(); | |
3744 void f(int i = g()); | |
3745 int g(int i = h()); | |
3746 }; | |
3747 This behavior is not mandated by the standard. Now G++ issues an | |
3748 error about this code. To avoid the error, you must move the | |
3749 declaration of g before the declaration of f. The default arguments | |
3750 for g must be visible at the point where it is called. | |
3751 * The C++ ABI Section 3.3.3 specifications for the array construction | |
3752 routines __cxa_vec_new2 and __cxa_vec_new3 were changed to return | |
3753 NULL when the allocator argument returns NULL. These changes are | |
3754 incorporated into the libstdc++ runtime library. | |
3755 * Using a name introduced by a typedef in a friend declaration or in | |
3756 an explicit instantiation is now rejected, as specified by the ISO | |
3757 C++ standard. | |
3758 class A; | |
3759 typedef A B; | |
3760 class C { | |
3761 friend class B; // error, no typedef name here | |
3762 friend B; // error, friend always needs class/struct/enum | |
3763 friend class A; // OK | |
3764 }; | |
3765 | |
3766 template <int> class Q {}; | |
3767 typedef Q<0> R; | |
3768 template class R; // error, no typedef name here | |
3769 template class Q<0>; // OK | |
3770 * When allocating an array with a new expression, GCC used to allow | |
3771 parentheses around the type name. This is actually ill-formed and | |
3772 it is now rejected: | |
3773 int* a = new (int)[10]; // error, not accepted anymore | |
3774 int* a = new int[10]; // OK | |
3775 * When binding an rvalue of class type to a reference, the copy | |
3776 constructor of the class must be accessible. For instance, consider | |
3777 the following code: | |
3778 class A | |
3779 { | |
3780 public: | |
3781 A(); | |
3782 | |
3783 private: | |
3784 A(const A&); // private copy ctor | |
3785 }; | |
3786 | |
3787 A makeA(void); | |
3788 void foo(const A&); | |
3789 | |
3790 void bar(void) | |
3791 { | |
3792 foo(A()); // error, copy ctor is not accessible | |
3793 foo(makeA()); // error, copy ctor is not accessible | |
3794 | |
3795 A a1; | |
3796 foo(a1); // OK, a1 is a lvalue | |
3797 } | |
3798 This might be surprising at first sight, especially since most | |
3799 popular compilers do not correctly implement this rule ([12]further | |
3800 details). | |
3801 * When forming a pointer to member or a pointer to member function, | |
3802 access checks for class visibility (public, protected, private) are | |
3803 now performed using the qualifying scope of the name itself. This | |
3804 is better explained with an example: | |
3805 class A | |
3806 { | |
3807 public: | |
3808 void pub_func(); | |
3809 protected: | |
3810 void prot_func(); | |
3811 private: | |
3812 void priv_func(); | |
3813 }; | |
3814 | |
3815 class B : public A | |
3816 { | |
3817 public: | |
3818 void foo() | |
3819 { | |
3820 &A::pub_func; // OK, pub_func is accessible through A | |
3821 &A::prot_func; // error, cannot access prot_func through A | |
3822 &A::priv_func; // error, cannot access priv_func through A | |
3823 | |
3824 &B::pub_func; // OK, pub_func is accessible through B | |
3825 &B::prot_func; // OK, can access prot_func through B (within B) | |
3826 &B::priv_func; // error, cannot access priv_func through B | |
3827 } | |
3828 }; | |
3829 | |
3830 Runtime Library (libstdc++) | |
3831 | |
3832 * Optimization work: | |
3833 + Streamlined streambuf, filebuf, separate synched with C | |
3834 Standard I/O streambuf. | |
3835 + All formatted I/O now uses cached locale information. | |
3836 + STL optimizations (memory/speed for list, red-black trees as | |
3837 used by sets and maps). | |
3838 + More use of GCC builtins. | |
3839 + String optimizations (avoid contention on | |
3840 increment/decrement-and-test of the reference count in the | |
3841 empty-string object, constructor from input_iterators | |
3842 speedup). | |
3843 * Static linkage size reductions. | |
3844 * Large File Support (files larger than 2 GB on 32-bit systems). | |
3845 * Wide character and variable encoding filebuf work (UTF-8, Unicode). | |
3846 * Generic character traits. | |
3847 * Also support wchar_t specializations on Mac OS 10.3.x, FreeBSD 5.x, | |
3848 Solaris 2.7 and above, AIX 5.x, Irix 6.5. | |
3849 * The allocator class is now standard-conformant, and two additional | |
3850 extension allocators have been added, mt_alloc and | |
3851 bitmap_allocator. | |
3852 * PCH support: -include bits/stdc++.h (2x compile speedup). | |
3853 * Rewrote __cxa_demangle with support for C++ style allocators. | |
3854 * New debug modes for STL containers and iterators. | |
3855 * Testsuite rewrite: five times as many tests, plus increasingly | |
3856 sophisticated tests, including I/O, MT, multi-locale, wide and | |
3857 narrow characters. | |
3858 * Use current versions of GNU "autotools" for build/configuration. | |
3859 | |
3860 Objective-C | |
3861 | |
3862 * The Objective-C front end has been updated to include the numerous | |
3863 bug fixes and enhancements previously available only in Apple's | |
3864 version of GCC. These include: | |
3865 + Structured exception (@try... @catch... @finally, @throw) and | |
3866 synchronization (@synchronized) support. These are accessible | |
3867 via the -fobjc-exceptions switch; as of this writing, they may | |
3868 only be used in conjunction with -fnext-runtime on Mac OS X | |
3869 10.3 and later. See [13]Options Controlling Objective-C | |
3870 Dialect for more information. | |
3871 + An overhaul of @encode logic. The C99 _Bool and C++ bool type | |
3872 may now be encoded as 'B'. In addition, the back-end/codegen | |
3873 dependencies have been removed. | |
3874 + An overhaul of message dispatch construction, ensuring that | |
3875 the various receiver types (and casts thereof) are handled | |
3876 properly, and that correct diagnostics are issued. | |
3877 + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue" | |
3878 (-freplace-objc-classes) debugging modes, currently available | |
3879 on Mac OS X 10.3 and later. See [14]Options Controlling | |
3880 Objective-C Dialect for more information. | |
3881 + Access to optimized runtime entry points (-fno-nil-receivers ) | |
3882 on the assumption that message receivers are never nil. This | |
3883 is currently available on Mac OS X 10.3 and later. See | |
3884 [15]Options Controlling Objective-C Dialect for more | |
3885 information. | |
3886 | |
3887 Java | |
3888 | |
3889 * Compiling a .jar file will now cause non-.class entries to be | |
3890 automatically compiled as resources. | |
3891 * libgcj has been ported to Darwin. | |
3892 * Jeff Sturm has adapted Jan Hubicka's call graph optimization code | |
3893 to gcj. | |
3894 * libgcj has a new gcjlib URL type; this lets URLClassLoader load | |
3895 code from shared libraries. | |
3896 * libgcj has been much more completely merged with [16]GNU Classpath. | |
3897 * Class loading is now much more correct; in particular the caller's | |
3898 class loader is now used when that is required. | |
3899 * [17]Eclipse 2.x will run out of the box using gij. | |
3900 * Parts of java.nio have been implemented. Direct and indirect | |
3901 buffers work, as do fundamental file and socket operations. | |
3902 * java.awt has been improved, though it is still not ready for | |
3903 general use. | |
3904 * The HTTP protocol handler now uses HTTP/1.1 and can handle the POST | |
3905 method. | |
3906 * The MinGW port has matured. Enhancements include socket timeout | |
3907 support, thread interruption, improved Runtime.exec() handling and | |
3908 support for accented characters in filenames. | |
3909 | |
3910 Fortran | |
3911 | |
3912 * Fortran improvements are listed in the [18]Fortran documentation. | |
3913 | |
3914 New Targets and Target Specific Improvements | |
3915 | |
3916 Alpha | |
3917 | |
3918 * Several [19]built-in functions have been added such as | |
3919 __builtin_alpha_zap to allow utilizing the more obscure | |
3920 instructions of the CPU. | |
3921 * Parameter passing of complex arguments has changed to match the | |
3922 [20]ABI. This change is incompatible with previous GCC versions, | |
3923 but does fix compatibility with the Tru64 compiler and several | |
3924 corner cases where GCC was incompatible with itself. | |
3925 | |
3926 ARM | |
3927 | |
3928 * Nicolas Pitre has contributed his hand-coded floating-point support | |
3929 code for ARM. It is both significantly smaller and faster than the | |
3930 existing C-based implementation, even when building applications | |
3931 for Thumb. The arm-elf configuration has been converted to use the | |
3932 new code. | |
3933 * Support for the Intel's iWMMXt architecture, a second generation | |
3934 XScale processor, has been added. Enabled at run time with the | |
3935 -mcpu=iwmmxt command line switch. | |
3936 * A new ARM target has been added: arm-wince-pe. This is similar to | |
3937 the arm-pe target, but it defaults to using the APCS32 ABI. | |
3938 * The existing ARM pipeline description has been converted to the use | |
3939 the [21]DFA processor pipeline model. There is not much change in | |
3940 code performance, but the description is now [22]easier to | |
3941 understand. | |
3942 * Support for the Cirrus EP9312 Maverick floating point co-processor | |
3943 added. Enabled at run time with the -mcpu=ep9312 command line | |
3944 switch. Note however that the multilibs to support this chip are | |
3945 currently disabled in gcc/config/arm/t-arm-elf, so if you want to | |
3946 enable their production you will have to uncomment the entries in | |
3947 that file. | |
3948 | |
3949 H8/300 | |
3950 | |
3951 * Support for long long has been added. | |
3952 * Support for saveall attribute has been added. | |
3953 * Pavel Pisa contributed hand-written 32-bit-by-32-bit division code | |
3954 for H8/300H and H8S, which is much faster than the previous | |
3955 implementation. | |
3956 * A lot of small performance improvements. | |
3957 | |
3958 IA-32/AMD64 (x86-64) | |
3959 | |
3960 * Tuning for K8 (AMD Opteron/Athlon64) core is available via | |
3961 -march=k8 and -mcpu=k8. | |
3962 * Scalar SSE code generation carefully avoids reformatting penalties, | |
3963 hidden dependencies and minimizes the number of uops generated on | |
3964 both Intel and AMD CPUs. | |
3965 * Vector MMX and SSE operands are now passed in registers to improve | |
3966 performance and match the argument passing convention used by the | |
3967 Intel C++ Compiler. As a result it is not possible to call | |
3968 functions accepting vector arguments compiled by older GCC version. | |
3969 * Conditional jump elimination is now more aggressive on modern CPUs. | |
3970 * The Athlon ports has been converted to use the DFA processor | |
3971 pipeline description. | |
3972 * Optimization of indirect tail calls is now possible in a similar | |
3973 fashion as direct sibcall optimization. | |
3974 * Further small performance improvements. | |
3975 * -m128bit-long-double is now less buggy. | |
3976 * __float128 support in 64-bit compilation. | |
3977 * Support for data structures exceeding 2GB in 64-bit mode. | |
3978 * -mcpu has been renamed to -mtune. | |
3979 | |
3980 IA-64 | |
3981 | |
3982 * Tuning code for the Itanium 2 processor has been added. The | |
3983 generation of code tuned for Itanium 2 (option -mtune=itanium2) is | |
3984 enabled by default now. To generate code tuned for Itanium 1 the | |
3985 option -mtune=itanium1 should be used. | |
3986 * [23]DFA processor pipeline descriptions for the IA-64 processors | |
3987 have been added. This resulted in about 3% improvement on the | |
3988 SPECInt2000 benchmark for Itanium 2. | |
3989 * Instruction bundling for the IA-64 processors has been rewritten | |
3990 using the DFA pipeline hazard recognizer. It resulted in about 60% | |
3991 compiler speedup on the SPECInt2000 C programs. | |
3992 | |
3993 M32R | |
3994 | |
3995 * Support for the M32R/2 processor has been added by Renesas. | |
3996 * Support for an M32R Linux target and PIC code generation has been | |
3997 added by Renesas. | |
3998 | |
3999 M68000 | |
4000 | |
4001 * Bernardo Innocenti (Develer S.r.l.) has contributed the | |
4002 m68k-uclinux target, based on former work done by Paul Dale | |
4003 (SnapGear Inc.). Code generation for the ColdFire processors family | |
4004 has been enhanced and extended to support the MCF 53xx and MCF 54xx | |
4005 cores, integrating former work done by Peter Barada (Motorola). | |
4006 | |
4007 MIPS | |
4008 | |
4009 Processor-specific changes | |
4010 | |
4011 * Support for the RM7000 and RM9000 processors has been added. It can | |
4012 be selected using the -march compiler option and should work with | |
4013 any MIPS I (mips-*) or MIPS III (mips64-*) configuration. | |
4014 * Support for revision 2 of the MIPS32 ISA has been added. It can be | |
4015 selected with the command-line option -march=mips32r2. | |
4016 * There is a new option, -mfix-sb1, to work around certain SB-1 | |
4017 errata. | |
4018 | |
4019 Configuration | |
4020 | |
4021 * It is possible to customize GCC using the following configure-time | |
4022 options: | |
4023 + --with-arch, which specifies the default value of the -march | |
4024 option. | |
4025 + --with-tune, which specifies the default value of the -mtune | |
4026 option. | |
4027 + --with-abi, which specifies the default ABI. | |
4028 + --with-float=soft, which tells GCC to use software floating | |
4029 point by default. | |
4030 + --with-float=hard, which tells GCC to use hardware floating | |
4031 point by default. | |
4032 * A 64-bit GNU/Linux port has been added. The associated | |
4033 configurations are mips64-linux-gnu and mips64el-linux-gnu. | |
4034 * The 32-bit GNU/Linux port now supports Java. | |
4035 * The IRIX 6 configuration now supports the o32 ABI and will build | |
4036 o32 multilibs by default. This support is compatible with both | |
4037 binutils and the SGI tools, but note that several features, | |
4038 including debugging information and DWARF2 exception handling, are | |
4039 only available when using the GNU assembler. Use of the GNU | |
4040 assembler and linker (version 2.15 or above) is strongly | |
4041 recommended. | |
4042 * The IRIX 6 configuration now supports 128-bit long doubles. | |
4043 * There are two new RTEMS-specific configurations, mips-rtems and | |
4044 mipsel-rtems. | |
4045 * There are two new *-elf configurations, mipsisa32r2-elf and | |
4046 mipsisa32r2el-elf. | |
4047 | |
4048 General | |
4049 | |
4050 * Several [24]ABI bugs have been fixed. Unfortunately, these changes | |
4051 will break binary compatibility with earlier releases. | |
4052 * GCC can now use explicit relocation operators when generating | |
4053 -mabicalls code. This behavior is controlled by -mexplicit-relocs | |
4054 and can have several performance benefits. For example: | |
4055 + It allows for more optimization of GOT accesses, including | |
4056 better scheduling and redundancy elimination. | |
4057 + It allows sibling calls to be implemented as jumps. | |
4058 + n32 and n64 leaf functions can use a call-clobbered global | |
4059 pointer instead of $28. | |
4060 + The code to set up $gp can be removed from functions that | |
4061 don't need it. | |
4062 * A new option, -mxgot, allows the GOT to be bigger than 64k. This | |
4063 option is equivalent to the assembler's -xgot option and should be | |
4064 used instead of -Wa,-xgot. | |
4065 * Frame pointer elimination is now supported when generating 64-bit | |
4066 MIPS16 code. | |
4067 * Inline block moves have been optimized to take more account of | |
4068 alignment information. | |
4069 * Many internal changes have been made to the MIPS port, mostly aimed | |
4070 at reducing the reliance on assembler macros. | |
4071 | |
4072 PowerPC | |
4073 | |
4074 * GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64 | |
4075 [25]ABI incompatibilities regarding the way parameters are passed | |
4076 during functions calls. These changes may result in incompatibility | |
4077 between code compiled with GCC 3.3 and GCC 3.4. | |
4078 | |
4079 PowerPC Darwin | |
4080 | |
4081 * Support for shared/dylib gcc libraries has been added. It is | |
4082 enabled by default on powerpc-apple-darwin7.0.0 and up. | |
4083 * Libgcj is enabled by default. On systems older than | |
4084 powerpc-apple-darwin7.0.0 you need to install dlcompat. | |
4085 * 128-bit IBM extended precision format support added for long | |
4086 double. | |
4087 | |
4088 PowerPC64 GNU/Linux | |
4089 | |
4090 * By default, PowerPC64 GNU/Linux now uses natural alignment of | |
4091 structure elements. The old four byte alignment for double, with | |
4092 special rules for a struct starting with a double, can be chosen | |
4093 with -malign-power. This change may result in incompatibility | |
4094 between code compiled with GCC 3.3 and GCC 3.4. | |
4095 * -mabi=altivec is now the default rather than -mabi=no-altivec. | |
4096 * 128-bit IBM extended precision format support added for long | |
4097 double. | |
4098 | |
4099 S/390 and zSeries | |
4100 | |
4101 * New command-line options allow to specify the intended execution | |
4102 environment for generated code: | |
4103 + -mesa/-mzarch allows to specify whether to generate code | |
4104 running in ESA/390 mode or in z/Architecture mode (this is | |
4105 applicable to 31-bit code only). | |
4106 + -march allows to specify a minimum processor architecture | |
4107 level (g5, g6, z900, or z990). | |
4108 + -mtune allows to specify which processor to tune for. | |
4109 * It is possible to customize GCC using the following configure-time | |
4110 options: | |
4111 + --with-mode, which specifies whether to default to assuming | |
4112 ESA/390 or z/Architecture mode. | |
4113 + --with-arch, which specifies the default value of the -march | |
4114 option. | |
4115 + --with-tune, which specifies the default value of the -mtune | |
4116 option. | |
4117 * Support for the z990 processor has been added, and can be selected | |
4118 using -march=z990 or -mtune=z990. This includes instruction | |
4119 scheduling tuned for the superscalar instruction pipeline of the | |
4120 z990 processor as well as support for all new instructions provided | |
4121 by the long-displacement facility. | |
4122 * Support to generate 31-bit code optimized for zSeries processors | |
4123 (running in ESA/390 or in z/Architecture mode) has been added. This | |
4124 can be selected using -march=z900 and -mzarch respectively. | |
4125 * Instruction scheduling for the z900 and z990 processors now uses | |
4126 the DFA pipeline hazard recognizer. | |
4127 * GCC no longer generates code to maintain a stack backchain, | |
4128 previously used to generate stack backtraces for debugging | |
4129 purposes. As replacement that does not incur runtime overhead, | |
4130 DWARF-2 call frame information is provided by GCC; this is | |
4131 supported by GDB 6.1. The old behavior can be restored using the | |
4132 -mbackchain option. | |
4133 * The stack frame size of functions may now exceed 2 GB in 64-bit | |
4134 code. | |
4135 * A port for the 64-bit IBM TPF operating system has been added; the | |
4136 configuration is s390x-ibm-tpf. This configuration is supported as | |
4137 cross-compilation target only. | |
4138 * Various changes to improve the generated code have been | |
4139 implemented, including: | |
4140 + GCC now uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT | |
4141 instructions to significantly speed up many floating-point | |
4142 applications. | |
4143 + GCC now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL | |
4144 WITH BORROW instructions to speed up long long arithmetic. | |
4145 + GCC now uses the SEARCH STRING instruction to implement | |
4146 strlen(). | |
4147 + In many cases, function call overhead for 31-bit code has been | |
4148 reduced by placing the literal pool after the function code | |
4149 instead of after the function prolog. | |
4150 + Register 14 is no longer reserved in 64-bit code. | |
4151 + Handling of global register variables has been improved. | |
4152 | |
4153 SPARC | |
4154 | |
4155 * The option -mflat is deprecated. | |
4156 * Support for large (> 2GB) frames has been added to the 64-bit port. | |
4157 * Several [26]ABI bugs have been fixed. Unfortunately, these changes | |
4158 will break binary compatibility with earlier releases. | |
4159 * The default debugging format has been switched from STABS to | |
4160 DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already | |
4161 the default debugging format for 64-bit code on Solaris. | |
4162 | |
4163 SuperH | |
4164 | |
4165 * Support for the SH2E processor has been added. Enabled at run time | |
4166 with the -m2e command line switch, or at configure time by | |
4167 specifying sh2e as the machine part of the target triple. | |
4168 | |
4169 V850 | |
4170 | |
4171 * Support for the Mitsubishi V850E1 processor has been added. This is | |
4172 a variant of the V850E processor with some additional debugging | |
4173 instructions. | |
4174 | |
4175 Xtensa | |
4176 | |
4177 * Several ABI bugs have been fixed. Unfortunately, these changes | |
4178 break binary compatibility with earlier releases. | |
4179 + For big-endian processors, the padding of aggregate return | |
4180 values larger than a word has changed. If the size of an | |
4181 aggregate return value is not a multiple of 32 bits, previous | |
4182 versions of GCC inserted padding in the most-significant bytes | |
4183 of the first return value register. Aggregates larger than a | |
4184 word are now padded in the least-significant bytes of the last | |
4185 return value register used. Aggregates smaller than a word are | |
4186 still padded in the most-significant bytes. The return value | |
4187 padding has not changed for little-endian processors. | |
4188 + Function arguments with 16-byte alignment are now properly | |
4189 aligned. | |
4190 + The implementation of the va_list type has changed. A va_list | |
4191 value created by va_start from a previous release cannot be | |
4192 used with va_arg from this release, or vice versa. | |
4193 * More processor configuration options for Xtensa processors are | |
4194 supported: | |
4195 + the ABS instruction is now optional; | |
4196 + the ADDX* and SUBX* instructions are now optional; | |
4197 + an experimental CONST16 instruction can be used to synthesize | |
4198 constants instead of loading them from constant pools. | |
4199 These and other Xtensa processor configuration options can no | |
4200 longer be enabled or disabled by command-line options; the | |
4201 processor configuration must be specified by the xtensa-config.h | |
4202 header file when building GCC. Additionally, the | |
4203 -mno-serialize-volatile option is no longer supported. | |
4204 | |
4205 Obsolete Systems | |
4206 | |
4207 Support for a number of older systems has been declared obsolete in GCC | |
4208 3.4. Unless there is activity to revive them, the next release of GCC | |
4209 will have their sources permanently removed. | |
4210 | |
4211 All configurations of the following processor architectures have been | |
4212 declared obsolete: | |
4213 * Mitsubishi D30V, d30v-* | |
4214 * AT&T DSP1600 and DSP1610, dsp16xx-* | |
4215 * Intel 80960, i960 | |
4216 | |
4217 Also, some individual systems have been obsoleted: | |
4218 * ARM Family | |
4219 + Support for generating code for operation in APCS/26 mode | |
4220 (-mapcs-26). | |
4221 * IBM ESA/390 | |
4222 + "Bigfoot" port, i370-*. (The other port, s390-*, is actively | |
4223 maintained and supported.) | |
4224 * Intel 386 family | |
4225 + MOSS, i?86-moss-msdos and i?86-*-moss* | |
4226 + NCR 3000 running System V r.4, i?86-ncr-sysv4* | |
4227 + FreeBSD with a.out object format, i?86-*-freebsd*aout* and | |
4228 i?86-*-freebsd2* | |
4229 + Linux with a.out object format, i?86-linux*aout* | |
4230 + Linux with libc5, a.k.a. glibc1, i?86-linux*libc1* | |
4231 + Interix versions before Interix 3, i?86-*-interix | |
4232 + Mach microkernel, i?86-mach* | |
4233 + SCO UnixWare with UDK, i?86-*-udk* | |
4234 + Generic System V releases 1, 2, and 3, i?86-*-sysv[123]* | |
4235 + VSTa microkernel, i386-*-vsta | |
4236 * Motorola M68000 family | |
4237 + HPUX, m68k-hp-hpux* and m68000-hp-hpux* | |
4238 + NetBSD with a.out object format (before NetBSD 1.4), | |
4239 m68k-*-*-netbsd* except m68k-*-*-netbsdelf* | |
4240 + Generic System V r.4, m68k-*-sysv4* | |
4241 * VAX | |
4242 + Generic VAX, vax-*-* (This is generic VAX only; we have not | |
4243 obsoleted any VAX triples for specific operating systems.) | |
4244 | |
4245 Documentation improvements | |
4246 | |
4247 Other significant improvements | |
4248 | |
4249 * The build system has undergone several significant cleanups. | |
4250 Subdirectories will only be configured if they are being built, and | |
4251 all subdirectory configures are run from the make command. The top | |
4252 level has been autoconfiscated. | |
4253 * Building GCC no longer writes to its source directory. This should | |
4254 help those wishing to share a read-only source directory over NFS | |
4255 or build from a CD. The exceptions to this feature are if you | |
4256 configure with either --enable-maintainer-mode or | |
4257 --enable-generated-files-in-srcdir. | |
4258 * The -W warning option has been renamed to -Wextra, which is more | |
4259 easily understood. The older spelling will be retained for | |
4260 backwards compatibility. | |
4261 * Substantial improvements in compile time have been made, | |
4262 particularly for non-optimizing compilations. | |
4263 __________________________________________________________________ | |
4264 | |
4265 GCC 3.4.0 | |
4266 | |
4267 Bug Fixes | |
4268 | |
4269 A vast number of bugs have been fixed in 3.4.0, too many to publish a | |
4270 complete list here. [27]Follow this link to query the Bugzilla database | |
4271 for the list of over 900 bugs fixed in 3.4.0. This is the list of all | |
4272 bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4 | |
4273 regressions. | |
4274 __________________________________________________________________ | |
4275 | |
4276 GCC 3.4.1 | |
4277 | |
4278 Bug Fixes | |
4279 | |
4280 This section lists the problem reports (PRs) from GCC's bug tracking | |
4281 system that are known to be fixed in the 3.4.1 release. This list might | |
4282 not be complete (that is, it is possible that some PRs that have been | |
4283 fixed are not listed here). | |
4284 | |
4285 Bootstrap failures | |
4286 | |
4287 * [28]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler | |
4288 emitted - PIC related | |
4289 * [29]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf | |
4290 * [30]14760 A bug in configure.in prevents using both | |
4291 --program-suffix and --program-prefix | |
4292 * [31]14671 [hppa64] bootstrap fails: ICE in | |
4293 save_call_clobbered_regs, in caller_save.c | |
4294 * [32]15093 [alpha][Java] make bootstrap fails to configure libffi on | |
4295 Alpha | |
4296 * [33]15178 Solaris 9/x86 fails linking after stage 3 | |
4297 | |
4298 Multi-platform internal compiler errors (ICEs) | |
4299 | |
4300 * [34]12753 (preprocessor) Memory corruption in preprocessor on bad | |
4301 input | |
4302 * [35]13985 ICE in gcc.c-torture/compile/930621-1.c | |
4303 * [36]14810 (c++) tree check failures with invalid code involving | |
4304 templates | |
4305 * [37]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in | |
4306 cp/parser.c | |
4307 * [38]15044 (c++) ICE on syntax error, template header | |
4308 * [39]15057 (c++) Compiling of conditional value throw constructs | |
4309 cause a segmentation violation | |
4310 * [40]15064 (c++) typeid of template parameter gives ICE | |
4311 * [41]15142 (c++) ICE when passing a string where a char* is expected | |
4312 in a throw statement | |
4313 * [42]15159 ICE in rtl_verify_flow_info_1 | |
4314 * [43]15165 (c++) ICE in instantiate_template | |
4315 * [44]15193 Unary minus using pointer to V4SF vector causes | |
4316 -fforce-mem to exhaust all memory | |
4317 * [45]15209 (c++) Runs out of memory with packed structs | |
4318 * [46]15227 (c++) Trouble with invalid function definition | |
4319 * [47]15285 (c++) instantiate_type ICE when forming pointer to | |
4320 template function | |
4321 * [48]15299 (c++) ICE in resolve_overloaded_unification | |
4322 * [49]15329 (c++) ICE on constructor of member template | |
4323 * [50]15550 ICE in extract_insn, in recog.c | |
4324 * [51]15554 (c++) ICE in tsubst_copy, in cp/pt.c | |
4325 * [52]15640 (c++) ICE on invalid code in arg_assoc, in | |
4326 cp/name-lookup.c | |
4327 * [53]15666 [unit-at-a-time] Gcc abort on valid code | |
4328 * [54]15696 (c++) ICE with bad pointer-to-member code | |
4329 * [55]15701 (c++) ICE with friends and template template parameter | |
4330 * [56]15761 ICE in do_SUBST, in combine.c | |
4331 * [57]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops | |
4332 | |
4333 Ada | |
4334 | |
4335 * [58]14538 All RTEMS targets broken for gnat | |
4336 | |
4337 C front end | |
4338 | |
4339 * [59]12391 missing warning about assigning to an incomplete type | |
4340 * [60]14649 atan(1.0) should not be a constant expression | |
4341 * [61]15004 [unit-at-a-time] no warning for unused paramater in | |
4342 static function | |
4343 * [62]15749 --pedantic-errors behaves differently from --pedantic | |
4344 with C-compiler on GNU/Linux | |
4345 | |
4346 C++ compiler and library | |
4347 | |
4348 * [63]10646 non-const reference is incorrectly matched in a "const T" | |
4349 partial specialization | |
4350 * [64]12077 wcin.rdbuf()->in_avail() return value too high | |
4351 * [65]13598 enc_filebuf doesn't work | |
4352 * [66]14211 const_cast returns lvalue but should be rvalue | |
4353 * [67]14220 num_put::do_put() undesired float/double behavior | |
4354 * [68]14245 problem with user-defined allocators in std::basic_string | |
4355 * [69]14340 libstdc++ Debug mode: failure to convert iterator to | |
4356 const_iterator | |
4357 * [70]14600 __gnu_cxx::stdio_sync_filebuf should expose internal | |
4358 FILE* | |
4359 * [71]14668 no warning anymore for reevaluation of declaration | |
4360 * [72]14775 LFS (large file support) tests missing | |
4361 * [73]14821 Duplicate namespace alias declaration should not conflict | |
4362 * [74]14930 Friend declaration ignored | |
4363 * [75]14932 cannot use offsetof to get offsets of array elements in | |
4364 g++ 3.4.0 | |
4365 * [76]14950 [non unit-at-a-time] always_inline does not mix with | |
4366 templates and -O0 | |
4367 * [77]14962 g++ ignores #pragma redefine_extname | |
4368 * [78]14975 Segfault on low-level write error during imbue | |
4369 * [79]15002 Linewise stream input is unusably slow (std::string slow) | |
4370 * [80]15025 compiler accepts redeclaration of template as | |
4371 non-template | |
4372 * [81]15046 [arm] Math functions misdetected by cross configuration | |
4373 * [82]15069 a bit test on a variable of enum type is miscompiled | |
4374 * [83]15074 g++ -lsupc++ still links against libstdc++ | |
4375 * [84]15083 spurious "statement has no effect" warning | |
4376 * [85]15096 parse error with templates and pointer to const member | |
4377 * [86]15287 combination of operator[] and operator .* fails in | |
4378 templates | |
4379 * [87]15317 __attribute__ unused in first parameter of constructor | |
4380 gives error | |
4381 * [88]15337 sizeof on incomplete type diagnostic | |
4382 * [89]15361 bitset<>::_Find_next fails | |
4383 * [90]15412 _GLIBCXX_ symbols symbols defined and used in different | |
4384 namespaces | |
4385 * [91]15427 valid code results in incomplete type error | |
4386 * [92]15471 Incorrect member pointer offsets in anonymous | |
4387 structs/unions | |
4388 * [93]15503 nested template problem | |
4389 * [94]15507 compiler hangs while laying out union | |
4390 * [95]15542 operator & and template definitions | |
4391 * [96]15565 SLES9: leading + sign for unsigned int with showpos | |
4392 * [97]15625 friend defined inside a template fails to find static | |
4393 function | |
4394 * [98]15629 Function templates, overloads, and friend name injection | |
4395 * [99]15742 'noreturn' attribute ignored in method of template | |
4396 functions. | |
4397 * [100]15775 Allocator::pointer consistently ignored | |
4398 * [101]15821 Duplicate namespace alias within namespace rejected | |
4399 * [102]15862 'enum yn' fails (confict with undeclared builtin) | |
4400 * [103]15875 rejects pointer to member in template | |
4401 * [104]15877 valid code using templates and anonymous enums is | |
4402 rejected | |
4403 * [105]15947 Puzzling error message for wrong destructor declaration | |
4404 in template class | |
4405 * [106]16020 cannot copy __gnu_debug::bitset | |
4406 * [107]16154 input iterator concept too restrictive | |
4407 * [108]16174 deducing top-level consts | |
4408 | |
4409 Java | |
4410 | |
4411 * [109]14315 Java compiler is not parallel make safe | |
4412 | |
4413 Fortran | |
4414 | |
4415 * [110]15151 [g77] incorrect logical i/o in 64-bit mode | |
4416 | |
4417 Objective-C | |
4418 | |
4419 * [111]7993 private variables cannot be shadowed in subclasses | |
4420 | |
4421 Optimization bugs | |
4422 | |
4423 * [112]15228 useless copies of floating point operands | |
4424 * [113]15345 [non-unit-at-a-time] unreferenced nested inline | |
4425 functions not optimized away | |
4426 * [114]15945 Incorrect floating point optimization | |
4427 * [115]15526 ftrapv aborts on 0 * (-1) | |
4428 * [116]14690 Miscompiled POOMA tests | |
4429 * [117]15112 GCC generates code to write to unchanging memory | |
4430 | |
4431 Preprocessor | |
4432 | |
4433 * [118]15067 Minor glitch in the source of cpp | |
4434 | |
4435 Main driver program bugs | |
4436 | |
4437 * [119]1963 collect2 interprets -oldstyle_liblookup as -o | |
4438 ldstyle_liblookup | |
4439 | |
4440 x86-specific (Intel/AMD) | |
4441 | |
4442 * [120]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND* | |
4443 section} | |
4444 | |
4445 HPPA-specific | |
4446 | |
4447 * [121]14782 GCC produces an unaligned data access at -O2 | |
4448 * [122]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2 | |
4449 * [123]15202 ICE in reload_cse_simplify_operands, in postreload.c | |
4450 | |
4451 IA64-specific | |
4452 | |
4453 * [124]14610 __float80 constants incorrectly emitted | |
4454 * [125]14813 init_array sections are initialized in the wrong order | |
4455 * [126]14857 GCC segfault on duplicated asm statement | |
4456 * [127]15598 Gcc 3.4 ICE on valid code | |
4457 * [128]15653 Gcc 3.4 ICE on valid code | |
4458 | |
4459 MIPS-specific | |
4460 | |
4461 * [129]15189 wrong filling of delay slot with -march=mips1 -G0 | |
4462 -mno-split-addresses -mno-explicit-relocs | |
4463 * [130]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as | |
4464 2.14.91 | |
4465 * [131]16144 Bogus reference to __divdf3 when -O1 | |
4466 * [132]16176 Miscompilation of unaligned data in MIPS backend | |
4467 | |
4468 PowerPC-specific | |
4469 | |
4470 * [133]11591 ICE in gcc.dg/altivec-5.c | |
4471 * [134]12028 powerpc-eabispe produces bad sCOND operation | |
4472 * [135]14478 rs6000 geu/ltu patterns generate incorrect code | |
4473 * [136]14567 long double and va_arg complex args | |
4474 * [137]14715 Altivec stack layout may overlap gpr save with stack | |
4475 temps | |
4476 * [138]14902 (libstdc++) Stream checking functions fail when -pthread | |
4477 option is used. | |
4478 * [139]14924 Compiler ICE on valid code | |
4479 * [140]14960 -maltivec affects vector return with -mabi=no-altivec | |
4480 * [141]15106 vector varargs failure passing from altivec to | |
4481 non-altivec code for -m32 | |
4482 * [142]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 & | |
4483 half-word operation | |
4484 * [143]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx | |
4485 and stvx | |
4486 * [144]15662 Segmentation fault when an exception is thrown - even if | |
4487 try and catch are specified | |
4488 | |
4489 s390-specific | |
4490 | |
4491 * [145]15054 Bad code due to overlapping stack temporaries | |
4492 | |
4493 SPARC-specific | |
4494 | |
4495 * [146]15783 ICE with union assignment in 64-bit mode | |
4496 * [147]15626 GCC 3.4 emits "ld: warning: relocation error: | |
4497 R_SPARC_UA32" | |
4498 | |
4499 x86-64-specific | |
4500 | |
4501 * [148]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64 | |
4502 * [149]14723 Backported -march=nocona from mainline | |
4503 * [150]15290 __float128 failed to pass to function properly | |
4504 | |
4505 Cygwin/Mingw32-specific | |
4506 | |
4507 * [151]15250 Option -mms-bitfields support on GCC 3.4 is not | |
4508 conformant to MS layout | |
4509 * [152]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe | |
4510 worker on windows32 targets | |
4511 | |
4512 Bugs specific to embedded processors | |
4513 | |
4514 * [153]8309 [m68k] -m5200 produces erroneous SImode set of short | |
4515 varaible on stack | |
4516 * [154]13250 [SH] Gcc code for rotation clobbers the register, but | |
4517 gcc continues to use the register as if it was not clobbered | |
4518 * [155]13803 [coldfire] movqi operand constraints too restrictivefor | |
4519 TARGET_COLDFIRE | |
4520 * [156]14093 [SH] ICE for code when using -mhitachi option in SH | |
4521 * [157]14457 [m6811hc] ICE with simple c++ source | |
4522 * [158]14542 [m6811hc] ICE on simple source | |
4523 * [159]15100 [SH] cc1plus got hang-up on | |
4524 libstdc++-v3/testsuite/abi_check.cc | |
4525 * [160]15296 [CRIS] Delayed branch scheduling causing invalid code on | |
4526 cris-* | |
4527 * [161]15396 [SH] ICE with -O2 -fPIC | |
4528 * [162]15782 [coldfire] m68k_output_mi_thunk emits wrong code for | |
4529 ColdFire | |
4530 | |
4531 Testsuite problems (compiler not affected) | |
4532 | |
4533 * [163]11610 libstdc++ testcases 27_io/* don't work properly remotely | |
4534 * [164]15488 (libstdc++) possibly insufficient file permissions for | |
4535 executing test suite | |
4536 * [165]15489 (libstdc++) testsuite_files determined incorrectly | |
4537 | |
4538 Documentation bugs | |
4539 | |
4540 * [166]13928 (libstdc++) no whatis info in some man pages generated | |
4541 by doxygen | |
4542 * [167]14150 Ada documentation out of date | |
4543 * [168]14949 (c++) Need to document method visibility changes | |
4544 * [169]15123 libstdc++-doc: Allocators.3 manpage is empty | |
4545 __________________________________________________________________ | |
4546 | |
4547 GCC 3.4.2 | |
4548 | |
4549 Bug Fixes | |
4550 | |
4551 This section lists the problem reports (PRs) from GCC's bug tracking | |
4552 system that are known to be fixed in the 3.4.2 release. This list might | |
4553 not be complete (that is, it is possible that some PRs that have been | |
4554 fixed are not listed here). | |
4555 | |
4556 Bootstrap failures and issues | |
4557 | |
4558 * [170]16469 [mips-sgi-irix5.3] bootstrap fails in | |
4559 libstdc++-v3/testsuite | |
4560 * [171]16344 [hppa-linux-gnu] libstdc++'s PCH built by | |
4561 profiledbootstrap does not work with the built compiler | |
4562 * [172]16842 [Solaris/x86] mkheaders can not find mkheaders.conf | |
4563 | |
4564 Multi-platform internal compiler errors (ICEs) | |
4565 | |
4566 * [173]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in | |
4567 cp_parser_class_specifier, in cp/parser.c | |
4568 * [174]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c | |
4569 * [175]15461 (c++) ICE due to NRV and inlining | |
4570 * [176]15890 (c++) ICE in c_expand_expr, in c-common.c | |
4571 * [177]16180 ICE: segmentation fault in RTL optimization | |
4572 * [178]16224 (c++) ICE in write_unscoped_name (template/namespace) | |
4573 * [179]16408 ICE: in delete_insn, in cfgrtl.c | |
4574 * [180]16529 (c++) ICE for: namespace-alias shall not be declared as | |
4575 the name of any other entity | |
4576 * [181]16698 (c++) ICE with exceptions and declaration of __cxa_throw | |
4577 * [182]16706 (c++) ICE in finish_member_declaration, in | |
4578 cp/semantics.c | |
4579 * [183]16810 (c++) Legal C++ program with cast gives ICE in | |
4580 build_ptrmemfunc | |
4581 * [184]16851 (c++) ICE when throwing a comma expression | |
4582 * [185]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c | |
4583 * [186]16904 (c++) ICE in finish_class_member_access_expr, in | |
4584 cp/typeck.c | |
4585 * [187]16905 (c++) ICE (segfault) with exceptions | |
4586 * [188]16964 (c++) ICE in cp_parser_class_specifier due to | |
4587 redefinition | |
4588 * [189]17068 (c++) ICE: tree check: expected class 'd', have 'x' | |
4589 (identifier_node) in dependent_template_p, in cp/pt.c | |
4590 | |
4591 Preprocessor bugs | |
4592 | |
4593 * [190]16366 Preprocessor option -remap causes memory corruption | |
4594 | |
4595 Optimization | |
4596 | |
4597 * [191]15345 unreferenced nested inline functions not optimized away | |
4598 * [192]16590 Incorrect execution when compiling with -O2 | |
4599 * [193]16693 Bitwise AND is lost when used within a cast to an enum | |
4600 of the same precision | |
4601 * [194]17078 Jump into if(0) substatement fails | |
4602 | |
4603 Problems in generated debug information | |
4604 | |
4605 * [195]13956 incorrect stabs for nested local variables | |
4606 | |
4607 C front end bugs | |
4608 | |
4609 * [196]16684 GCC should not warn about redundant redeclarations of | |
4610 built-ins | |
4611 | |
4612 C++ compiler and library | |
4613 | |
4614 * [197]12658 Thread safety problems in locale::global() and | |
4615 locale::locale() | |
4616 * [198]13092 g++ accepts invalid pointer-to-member conversion | |
4617 * [199]15320 Excessive memory consumption | |
4618 * [200]16246 Incorrect template argument deduction | |
4619 * [201]16273 Memory exhausted when using nested classes and virtual | |
4620 functions | |
4621 * [202]16401 ostringstream in gcc 3.4.x very slow for big data | |
4622 * [203]16411 undefined reference to | |
4623 __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> | |
4624 >::file() | |
4625 * [204]16489 G++ incorrectly rejects use of a null constant integral | |
4626 expression as a null constant pointer | |
4627 * [205]16618 offsetof fails with constant member | |
4628 * [206]16637 syntax error reported for valid input code | |
4629 * [207]16717 __attribute__((constructor)) broken in C++ | |
4630 * [208]16813 compiler error in DEBUG version of range insertion | |
4631 std::map::insert | |
4632 * [209]16853 pointer-to-member initialization from incompatible one | |
4633 accepted | |
4634 * [210]16889 ambiguity is not detected | |
4635 * [211]16959 Segmentation fault in ios_base::sync_with_stdio | |
4636 | |
4637 Java compiler and library | |
4638 | |
4639 * [212]7587 direct threaded interpreter not thread-safe | |
4640 * [213]16473 ServerSocket accept() leaks file descriptors | |
4641 * [214]16478 Hash synchronization deadlock with finalizers | |
4642 | |
4643 Alpha-specific | |
4644 | |
4645 * [215]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c | |
4646 * [216]16974 could not split insn (ice in final_scan_insn, in | |
4647 final.c) | |
4648 | |
4649 x86-specific | |
4650 | |
4651 * [217]16298 ICE in output_operand | |
4652 * [218]17113 ICE with SSE2 intrinsics | |
4653 | |
4654 x86-64 specific | |
4655 | |
4656 * [219]14697 libstdc++ couldn't find 32bit libgcc_s | |
4657 | |
4658 MIPS-specific | |
4659 | |
4660 * [220]15869 [mips64] No NOP after LW (with -mips1 -O0) | |
4661 * [221]16325 [mips64] value profiling clobbers gp on mips | |
4662 * [222]16357 [mipsisa64-elf] ICE copying 7 bytes between extern | |
4663 char[]s | |
4664 * [223]16380 [mips64] Use of uninitialised register after dbra | |
4665 conversion | |
4666 * [224]16407 [mips64] Unaligned access to local variables | |
4667 * [225]16643 [mips64] verify_local_live_at_start ICE after | |
4668 crossjumping & cfgcleanup | |
4669 | |
4670 ARM-specific | |
4671 | |
4672 * [226]15927 THUMB -O2: strength-reduced iteration variable ends up | |
4673 off by 1 | |
4674 * [227]15948 THUMB: ICE with non-commutative cbranch | |
4675 * [228]17019 THUMB: bad switch statement in md code for | |
4676 addsi3_cbranch_scratch | |
4677 | |
4678 IA64-specific | |
4679 | |
4680 * [229]16130 ICE on valid code: in bundling, in config/ia64/ia64.c | |
4681 (-mtune=merced) | |
4682 * [230]16142 ICE on valid code: in bundling, in config/ia64/ia64.c | |
4683 (-mtune=itanium) | |
4684 * [231]16278 Gcc failed to build Linux kernel with -mtune=merced | |
4685 * [232]16414 ICE on valid code: typo in comparison of asm_noperands | |
4686 result | |
4687 * [233]16445 ICE on valid code: don't count ignored insns | |
4688 * [234]16490 ICE (segfault) while compiling with -fprofile-use | |
4689 * [235]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS | |
4690 | |
4691 PowerPC-specific | |
4692 | |
4693 * [236]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x | |
4694 * [237]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions | |
4695 issue) | |
4696 | |
4697 SPARC-specific | |
4698 | |
4699 * [238]16199 ICE while compiling apache 2.0.49 | |
4700 * [239]16416 -m64 doesn't imply -mcpu=v9 anymore | |
4701 * [240]16430 ICE when returning non-C aggregates larger than 16 bytes | |
4702 | |
4703 Bugs specific to embedded processors | |
4704 | |
4705 * [241]16379 [m32r] can't output large model function call of memcpy | |
4706 * [242]17093 [m32r] ICE with -msdata=use -O0 | |
4707 * [243]17119 [m32r] ICE at switch case 0x8000 | |
4708 | |
4709 DJGPP-specific | |
4710 | |
4711 * [244]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp | |
4712 | |
4713 Alpha Tru64-specific | |
4714 | |
4715 * [245]16210 libstdc++ gratuitously omits "long long" I/O | |
4716 | |
4717 Testsuite, documentation issues (compiler is not affected): | |
4718 | |
4719 * [246]15488 (libstdc++) possibly insufficient file permissions for | |
4720 executing test suite | |
4721 * [247]16250 ada/doctools runs makeinfo even in release tarball | |
4722 __________________________________________________________________ | |
4723 | |
4724 GCC 3.4.3 | |
4725 | |
4726 This is the [248]list of problem reports (PRs) from GCC's bug tracking | |
4727 system that are known to be fixed in the 3.4.3 release. This list might | |
4728 not be complete (that is, it is possible that some PRs that have been | |
4729 fixed are not listed here). | |
4730 | |
4731 Bootstrap failures | |
4732 | |
4733 * [249]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1 | |
4734 * [250]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold | |
4735 when undeclared | |
4736 | |
4737 Internal compiler errors (ICEs) affecting multiple platforms | |
4738 | |
4739 * [251]13948 (java) GCJ segmentation fault while compiling GL4Java | |
4740 .class files | |
4741 * [252]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c | |
4742 * [253]16301 (c++) ICE when "strong" attribute is attached to a using | |
4743 directive | |
4744 * [254]16566 ICE with flexible arrays | |
4745 * [255]17023 ICE with nested functions in parameter declaration | |
4746 * [256]17027 ICE with noreturn function in loop at -O2 | |
4747 * [257]17524 ICE in grokdeclarator, in cp/decl.c | |
4748 * [258]17826 (c++) ICE in cp_tree_equal | |
4749 | |
4750 C and optimization bugs | |
4751 | |
4752 * [259]15526 -ftrapv aborts on 0 * (-1) | |
4753 * [260]16999 #ident stopped working | |
4754 * [261]17503 quadratic behaviour in invalid_mode_change_p | |
4755 * [262]17581 Long long arithmetic fails inside a switch/case | |
4756 statement when compiled with -O2 | |
4757 * [263]18129 -fwritable-strings doesn't work | |
4758 | |
4759 C++ compiler and library bugs | |
4760 | |
4761 * [264]10975 incorrect initial ostringstream::tellp() | |
4762 * [265]11722 Unbuffered filebuf::sgetn is slow | |
4763 * [266]14534 Unrecognizing static function as a template parameter | |
4764 when its return value is also templated | |
4765 * [267]15172 Copy constructor optimization in aggregate | |
4766 initialization | |
4767 * [268]15786 Bad error message for frequently occuring error. | |
4768 * [269]16162 Rejects valid member-template-definition | |
4769 * [270]16612 empty basic_strings can't live in shared memory | |
4770 * [271]16715 std::basic_iostream is instantiated when used, even | |
4771 though instantiations are already contained in libstdc++ | |
4772 * [272]16848 code in /ext/demangle.h appears broken | |
4773 * [273]17132 GCC fails to eliminate function template specialization | |
4774 when argument deduction fails | |
4775 * [274]17259 One more _S_leaf incorrectly qualified with _RopeRep:: | |
4776 in ropeimpl.h | |
4777 * [275]17327 use of `enumeral_type' in template type unification | |
4778 * [276]17393 "unused variable '._0'" warning with -Wall | |
4779 * [277]17501 Confusion with member templates | |
4780 * [278]17537 g++ not passing -lstdc++ to linker when all command line | |
4781 arguments are libraries | |
4782 * [279]17585 usage of unqualified name of static member from within | |
4783 class not allowed | |
4784 * [280]17821 Poor diagnostic for using "." instead of "->" | |
4785 * [281]17829 wrong error: call of overloaded function is ambiguous | |
4786 * [282]17851 Misleading diagnostic for invalid function declarations | |
4787 with undeclared types | |
4788 * [283]17976 Destructor is called twice | |
4789 * [284]18020 rejects valid definition of enum value in template | |
4790 * [285]18093 bogus conflict in namespace aliasing | |
4791 * [286]18140 C++ parser bug when using >> in templates | |
4792 | |
4793 Fortran | |
4794 | |
4795 * [287]17541 data statements with double precision constants fail | |
4796 | |
4797 x86-specific | |
4798 | |
4799 * [288]17853 -O2 ICE for MMX testcase | |
4800 | |
4801 SPARC-specific | |
4802 | |
4803 * [289]17245 ICE compiling gsl-1.5 statistics/lag1.c | |
4804 | |
4805 Darwin-specific | |
4806 | |
4807 * [290]17167 FATAL:Symbol L_foo$stub already defined. | |
4808 | |
4809 AIX-specific | |
4810 | |
4811 * [291]17277 could not catch an exception when specified -maix64 | |
4812 | |
4813 Solaris-specific | |
4814 | |
4815 * [292]17505 <cmath> calls acosf(), ceilf(), and other functions | |
4816 missing from system libraries | |
4817 | |
4818 HP/UX specific: | |
4819 | |
4820 * [293]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl | |
4821 | |
4822 ARM-specific | |
4823 | |
4824 * [294]17384 ICE with mode attribute on structures | |
4825 | |
4826 MIPS-specific | |
4827 | |
4828 * [295]17770 No NOP after LWL with -mips1 | |
4829 | |
4830 Other embedded target specific | |
4831 | |
4832 * [296]11476 [arc-elf] gcc ICE on newlib's vfprintf.c | |
4833 * [297]14064 [avr-elf] -fdata-sections triggers ICE | |
4834 * [298]14678 [m68hc11-elf] gcc ICE | |
4835 * [299]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__ | |
4836 * [300]15790 [i686-coff] Alignment error building gcc with i686-coff | |
4837 target | |
4838 * [301]15886 [SH] Miscompilation with -O2 -fPIC | |
4839 * [302]16884 [avr-elf] [fweb related] bug while initializing | |
4840 variables | |
4841 | |
4842 Bugs relating to debugger support | |
4843 | |
4844 * [303]13841 missing debug info for _Complex function arguments | |
4845 * [304]15860 [big-endian targets] No DW_AT_location debug info is | |
4846 emitted for formal arguments to a function that uses "register" | |
4847 qualifiers | |
4848 | |
4849 Testsuite issues (compiler not affected) | |
4850 | |
4851 * [305]17465 Testsuite in libffi overrides LD_LIBRARY_PATH | |
4852 * [306]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH | |
4853 * [307]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit | |
4854 testsuite | |
4855 | |
4856 Documentation | |
4857 | |
4858 * [308]15498 typo in gcc manual: non-existing locale example en_UK, | |
4859 should be en_GB | |
4860 * [309]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: | |
4861 document broken shell | |
4862 * [310]16406 USE_LD_AS_NEEDED undocumented | |
4863 __________________________________________________________________ | |
4864 | |
4865 GCC 3.4.4 | |
4866 | |
4867 This is the [311]list of problem reports (PRs) from GCC's bug tracking | |
4868 system that are known to be fixed in the 3.4.4 release. This list might | |
4869 not be complete (that is, it is possible that some PRs that have been | |
4870 fixed are not listed here). | |
4871 __________________________________________________________________ | |
4872 | |
4873 GCC 3.4.5 | |
4874 | |
4875 This is the [312]list of problem reports (PRs) from GCC's bug tracking | |
4876 system that are known to be fixed in the 3.4.5 release. This list might | |
4877 not be complete (that is, it is possible that some PRs that have been | |
4878 fixed are not listed here). | |
4879 | |
4880 Bootstrap issues | |
4881 | |
4882 * [313]24688 sco_math fixincl breaks math.h | |
4883 | |
4884 C compiler bugs | |
4885 | |
4886 * [314]17188 struct Foo { } redefinition | |
4887 * [315]20187 wrong code for ((unsigned char)(unsigned long | |
4888 long)((a?a:1)&(a*b)))?0:1) | |
4889 * [316]21873 infinite warning loop on bad array initializer | |
4890 * [317]21899 enum definition accepts values to be overriden | |
4891 * [318]22061 ICE in find_function_data, in function.c | |
4892 * [319]22308 Failure to diagnose violation of constraint 6.516p2 | |
4893 * [320]22458 ICE on missing brace | |
4894 * [321]22589 ICE casting to long long | |
4895 * [322]24101 Segfault with preprocessed source | |
4896 | |
4897 C++ compiler and library bugs | |
4898 | |
4899 * [323]10611 operations on vector mode not recognized in C++ | |
4900 * [324]13377 unexpected behavior of namespace usage directive | |
4901 * [325]16002 Strange error message with new parser | |
4902 * [326]17413 local classes as template argument | |
4903 * [327]17609 spurious error message after using keyword | |
4904 * [328]17618 ICE in cp_convert_to_pointer, in cp/cvt.c | |
4905 * [329]18124 ICE with invalid template template parameter | |
4906 * [330]18155 typedef in template declaration not rejected | |
4907 * [331]18177 ICE with const_cast for undeclared variable | |
4908 * [332]18368 C++ error message regression | |
4909 * [333]16378 ICE when returning a copy of a packed member | |
4910 * [334]18466 int ::i; accepted | |
4911 * [335]18512 ICE on invalid usage of template base class | |
4912 * [336]18454 ICE when returning undefined type | |
4913 * [337]18738 typename not allowed with non-dependent qualified name | |
4914 * [338]18803 rejects access to operator() in template | |
4915 * [339]19004 ICE in uses_template_parms, in cp/pt.c | |
4916 * [340]19208 Spurious error about variably modified type | |
4917 * [341]18253 bad error message / ICE for invalid template parameter | |
4918 * [342]19608 ICE after friend function definition in local class | |
4919 * [343]19884 ICE on explicit instantiation of a non-template | |
4920 constructor | |
4921 * [344]20153 ICE when C++ template function contains anonymous union | |
4922 * [345]20563 Infinite loop in diagnostic (and ice after error | |
4923 message) | |
4924 * [346]20789 ICE with incomplete type in template | |
4925 * [347]21336 Internal compiler error when using custom new operators | |
4926 * [348]21768 ICE in error message due to violation of coding | |
4927 conventions | |
4928 * [349]21853 constness of pointer to data member ignored | |
4929 * [350]21903 Default argument of template function causes a | |
4930 compile-time error | |
4931 * [351]21983 multiple diagnostics | |
4932 * [352]21987 New testsuite failure | |
4933 g++.dg/warn/conversion-function-1.C | |
4934 * [353]22153 ICE on invalid template specialization | |
4935 * [354]22172 Internal compiler error, seg fault. | |
4936 * [355]21286 filebuf::xsgetn vs pipes | |
4937 * [356]22233 ICE with wrong number of template parameters | |
4938 * [357]22508 ICE after invalid operator new | |
4939 * [358]22545 ICE with pointer to class member & user defined | |
4940 conversion operator | |
4941 * [359]23528 Wrong default allocator in ext/hash_map | |
4942 * [360]23550 char_traits requirements/1.cc test bad math | |
4943 * [361]23586 Bad diagnostic for invalid namespace-name | |
4944 * [362]23624 ICE in invert_truthvalue, in fold-const.c | |
4945 * [363]23639 Bad error message: not a member of '<declaration error>' | |
4946 * [364]23797 ICE on typename outside template | |
4947 * [365]23965 Bogus error message: no matching function for call to | |
4948 'foo(<type error>)' | |
4949 * [366]24052 &#`label_decl' not supported by dump_expr#<expression | |
4950 error> | |
4951 * [367]24580 virtual base class cause exception not to be caught | |
4952 | |
4953 Problems in generated debug information | |
4954 | |
4955 * [368]24267 Bad DWARF for altivec vectors | |
4956 | |
4957 Optimizations issues | |
4958 | |
4959 * [369]17810 ICE in verify_local_live_at_start | |
4960 * [370]17860 Wrong generated code for loop with varying bound | |
4961 * [371]21709 ICE on compile-time complex NaN | |
4962 * [372]21964 broken tail call at -O2 or more | |
4963 * [373]22167 Strange optimization bug when using -Os | |
4964 * [374]22619 Compilation failure for real_const_1.f and | |
4965 real_const_2.f90 | |
4966 * [375]23241 Invalid code generated for comparison of uchar to 255 | |
4967 * [376]23478 Miscompilation due to reloading of a var that is also | |
4968 used in EH pad | |
4969 * [377]24470 segmentation fault in cc1plus when compiling with -O | |
4970 * [378]24950 ICE in operand_subword_force | |
4971 | |
4972 Precompiled headers problems | |
4973 | |
4974 * [379]14400 Cannot compile qt-x11-free-3.3.0 | |
4975 * [380]14940 PCH largefile test fails on various platforms | |
4976 | |
4977 Preprocessor bugs | |
4978 | |
4979 * [381]20239 ICE on empty preprocessed input | |
4980 * [382]15220 "gcc -E -MM -MG" reports missing system headers in | |
4981 source directory | |
4982 | |
4983 Testsuite issues | |
4984 | |
4985 * [383]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on | |
4986 i686-pc-linux-gnu | |
4987 | |
4988 Alpha specific | |
4989 | |
4990 * [384]21888 bootstrap failure with linker relaxation enabled | |
4991 | |
4992 ARM specific | |
4993 | |
4994 * [385]15342 [arm-linux]: ICE in verify_local_live_at_start | |
4995 * [386]23985 Memory aliasing information incorrect in inlined memcpy | |
4996 | |
4997 ColdFile specific | |
4998 | |
4999 * [387]16719 Illegal move of byte into address register causes | |
5000 compiler to ICE | |
5001 | |
5002 HPPA specific | |
5003 | |
5004 * [388]21723 ICE while building libgfortran | |
5005 * [389]21841 -mhp-ld/-mgnu-ld documentation | |
5006 | |
5007 IA-64 specific | |
5008 | |
5009 * [390]23644 IA-64 hardware models and configuration options | |
5010 documentation error | |
5011 * [391]24718 Shared libgcc not used for linking by default | |
5012 | |
5013 M68000 specific | |
5014 | |
5015 * [392]18421 ICE in reload_cse_simplify_operands, in postreload.c | |
5016 | |
5017 MIPS specific | |
5018 | |
5019 * [393]20621 ICE in change_address_1, in emit-rtl.c | |
5020 | |
5021 PowerPC and PowerPC64 specific | |
5022 | |
5023 * [394]18583 error on valid code: const | |
5024 __attribute__((altivec(vector__))) doesn't work in arrays | |
5025 * [395]20191 ICE in reload_cse_simplify_operands | |
5026 * [396]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined | |
5027 * [397]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set | |
5028 * [398]23404 gij trashes args of functions with more than 8 fp args | |
5029 * [399]23539 C & C++ compiler generating misaligned references | |
5030 regardless of compiler flags | |
5031 * [400]24102 floatdisf2_internal2 broken | |
5032 * [401]24465 -mminimal-toc miscompilation of __thread vars | |
5033 | |
5034 Solaris specific | |
5035 | |
5036 * [402]19933 Problem with define of HUGE_VAL in math_c99 | |
5037 * [403]21889 Native Solaris assembler cannot grok DTP-relative debug | |
5038 symbols | |
5039 | |
5040 SPARC specific | |
5041 | |
5042 * [404]19300 PCH failures on sparc-linux | |
5043 * [405]20301 Assembler labels have a leading "-" | |
5044 * [406]20673 C PCH testsuite assembly comparison failure | |
5045 | |
5046 x86 and x86_64 specific | |
5047 | |
5048 * [407]18582 ICE with arrays of type V2DF | |
5049 * [408]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2 | |
5050 -fsched2-use-traces | |
5051 * [409]21716 ICE in reg-stack.c's swap_rtx_condition | |
5052 * [410]24315 amd64 fails -fpeephole2 | |
5053 __________________________________________________________________ | |
5054 | |
5055 GCC 3.4.6 | |
5056 | |
5057 This is the [411]list of problem reports (PRs) from GCC's bug tracking | |
5058 system that are known to be fixed in the 3.4.6 release. This list might | |
5059 not be complete (that is, it is possible that some PRs that have been | |
5060 fixed are not listed here). | |
5061 | |
5062 Please send FSF & GNU inquiries & questions to [412]gnu@gnu.org. There | |
5063 are also [413]other ways to contact the FSF. | |
5064 | |
5065 These pages are maintained by [414]the GCC team. | |
5066 | |
5067 | |
5068 For questions related to the use of GCC, please consult these web | |
5069 pages and the [415]GCC manuals. If that fails, the | |
5070 [416]gcc-help@gcc.gnu.org mailing list might help. | |
5071 Please send comments on these web pages and the development of GCC to | |
5072 our developer mailing list at [417]gcc@gnu.org or | |
5073 [418]gcc@gcc.gnu.org. All of our lists have [419]public archives. | |
5074 | |
5075 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
5076 Floor, Boston, MA 02110, USA. | |
5077 | |
5078 Verbatim copying and distribution of this entire article is permitted | |
5079 in any medium, provided this notice is preserved. | |
5080 Last modified 2008-05-03 [420]Valid XHTML 1.0 | |
5081 | |
5082 References | |
5083 | |
5084 1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 | |
5085 2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus | |
5086 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems | |
5087 4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems | |
5088 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html | |
5089 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html | |
5090 7. http://www.boost.org/ | |
5091 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953 | |
5092 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361 | |
5093 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins | |
5094 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 | |
5095 12. http://gcc.gnu.org/bugs.html#cxx_rvalbind | |
5096 13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html | |
5097 14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html | |
5098 15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html | |
5099 16. http://www.gnu.org/software/classpath/ | |
5100 17. http://www.eclipse.org/ | |
5101 18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html | |
5102 19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html | |
5103 20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure | |
5104 21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html | |
5105 22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html | |
5106 23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html | |
5107 24. http://gcc.gnu.org/gcc-3.4/mips-abi.html | |
5108 25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html | |
5109 26. http://gcc.gnu.org/gcc-3.4/sparc-abi.html | |
5110 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 | |
5111 28. http://gcc.gnu.org/PR10129 | |
5112 29. http://gcc.gnu.org/PR14576 | |
5113 30. http://gcc.gnu.org/PR14760 | |
5114 31. http://gcc.gnu.org/PR14671 | |
5115 32. http://gcc.gnu.org/PR15093 | |
5116 33. http://gcc.gnu.org/PR15178 | |
5117 34. http://gcc.gnu.org/PR12753 | |
5118 35. http://gcc.gnu.org/PR13985 | |
5119 36. http://gcc.gnu.org/PR14810 | |
5120 37. http://gcc.gnu.org/PR14883 | |
5121 38. http://gcc.gnu.org/PR15044 | |
5122 39. http://gcc.gnu.org/PR15057 | |
5123 40. http://gcc.gnu.org/PR15064 | |
5124 41. http://gcc.gnu.org/PR15142 | |
5125 42. http://gcc.gnu.org/PR15159 | |
5126 43. http://gcc.gnu.org/PR15165 | |
5127 44. http://gcc.gnu.org/PR15193 | |
5128 45. http://gcc.gnu.org/PR15209 | |
5129 46. http://gcc.gnu.org/PR15227 | |
5130 47. http://gcc.gnu.org/PR15285 | |
5131 48. http://gcc.gnu.org/PR15299 | |
5132 49. http://gcc.gnu.org/PR15329 | |
5133 50. http://gcc.gnu.org/PR15550 | |
5134 51. http://gcc.gnu.org/PR15554 | |
5135 52. http://gcc.gnu.org/PR15640 | |
5136 53. http://gcc.gnu.org/PR15666 | |
5137 54. http://gcc.gnu.org/PR15696 | |
5138 55. http://gcc.gnu.org/PR15701 | |
5139 56. http://gcc.gnu.org/PR15761 | |
5140 57. http://gcc.gnu.org/PR15829 | |
5141 58. http://gcc.gnu.org/PR14538 | |
5142 59. http://gcc.gnu.org/PR12391 | |
5143 60. http://gcc.gnu.org/PR14649 | |
5144 61. http://gcc.gnu.org/PR15004 | |
5145 62. http://gcc.gnu.org/PR15749 | |
5146 63. http://gcc.gnu.org/PR10646 | |
5147 64. http://gcc.gnu.org/PR12077 | |
5148 65. http://gcc.gnu.org/PR13598 | |
5149 66. http://gcc.gnu.org/PR14211 | |
5150 67. http://gcc.gnu.org/PR14220 | |
5151 68. http://gcc.gnu.org/PR14245 | |
5152 69. http://gcc.gnu.org/PR14340 | |
5153 70. http://gcc.gnu.org/PR14600 | |
5154 71. http://gcc.gnu.org/PR14668 | |
5155 72. http://gcc.gnu.org/PR14775 | |
5156 73. http://gcc.gnu.org/PR14821 | |
5157 74. http://gcc.gnu.org/PR14930 | |
5158 75. http://gcc.gnu.org/PR14932 | |
5159 76. http://gcc.gnu.org/PR14950 | |
5160 77. http://gcc.gnu.org/PR14962 | |
5161 78. http://gcc.gnu.org/PR14975 | |
5162 79. http://gcc.gnu.org/PR15002 | |
5163 80. http://gcc.gnu.org/PR15025 | |
5164 81. http://gcc.gnu.org/PR15046 | |
5165 82. http://gcc.gnu.org/PR15069 | |
5166 83. http://gcc.gnu.org/PR15074 | |
5167 84. http://gcc.gnu.org/PR15083 | |
5168 85. http://gcc.gnu.org/PR15096 | |
5169 86. http://gcc.gnu.org/PR15287 | |
5170 87. http://gcc.gnu.org/PR15317 | |
5171 88. http://gcc.gnu.org/PR15337 | |
5172 89. http://gcc.gnu.org/PR15361 | |
5173 90. http://gcc.gnu.org/PR15412 | |
5174 91. http://gcc.gnu.org/PR15427 | |
5175 92. http://gcc.gnu.org/PR15471 | |
5176 93. http://gcc.gnu.org/PR15503 | |
5177 94. http://gcc.gnu.org/PR15507 | |
5178 95. http://gcc.gnu.org/PR15542 | |
5179 96. http://gcc.gnu.org/PR15565 | |
5180 97. http://gcc.gnu.org/PR15625 | |
5181 98. http://gcc.gnu.org/PR15629 | |
5182 99. http://gcc.gnu.org/PR15742 | |
5183 100. http://gcc.gnu.org/PR15775 | |
5184 101. http://gcc.gnu.org/PR15821 | |
5185 102. http://gcc.gnu.org/PR15862 | |
5186 103. http://gcc.gnu.org/PR15875 | |
5187 104. http://gcc.gnu.org/PR15877 | |
5188 105. http://gcc.gnu.org/PR15947 | |
5189 106. http://gcc.gnu.org/PR16020 | |
5190 107. http://gcc.gnu.org/PR16154 | |
5191 108. http://gcc.gnu.org/PR16174 | |
5192 109. http://gcc.gnu.org/PR14315 | |
5193 110. http://gcc.gnu.org/PR15151 | |
5194 111. http://gcc.gnu.org/PR7993 | |
5195 112. http://gcc.gnu.org/PR15228 | |
5196 113. http://gcc.gnu.org/PR15345 | |
5197 114. http://gcc.gnu.org/PR15945 | |
5198 115. http://gcc.gnu.org/PR15526 | |
5199 116. http://gcc.gnu.org/PR14690 | |
5200 117. http://gcc.gnu.org/PR15112 | |
5201 118. http://gcc.gnu.org/PR15067 | |
5202 119. http://gcc.gnu.org/PR1963 | |
5203 120. http://gcc.gnu.org/PR15717 | |
5204 121. http://gcc.gnu.org/PR14782 | |
5205 122. http://gcc.gnu.org/PR14828 | |
5206 123. http://gcc.gnu.org/PR15202 | |
5207 124. http://gcc.gnu.org/PR14610 | |
5208 125. http://gcc.gnu.org/PR14813 | |
5209 126. http://gcc.gnu.org/PR14857 | |
5210 127. http://gcc.gnu.org/PR15598 | |
5211 128. http://gcc.gnu.org/PR15653 | |
5212 129. http://gcc.gnu.org/PR15189 | |
5213 130. http://gcc.gnu.org/PR15331 | |
5214 131. http://gcc.gnu.org/PR16144 | |
5215 132. http://gcc.gnu.org/PR16176 | |
5216 133. http://gcc.gnu.org/PR11591 | |
5217 134. http://gcc.gnu.org/PR12028 | |
5218 135. http://gcc.gnu.org/PR14478 | |
5219 136. http://gcc.gnu.org/PR14567 | |
5220 137. http://gcc.gnu.org/PR14715 | |
5221 138. http://gcc.gnu.org/PR14902 | |
5222 139. http://gcc.gnu.org/PR14924 | |
5223 140. http://gcc.gnu.org/PR14960 | |
5224 141. http://gcc.gnu.org/PR15106 | |
5225 142. http://gcc.gnu.org/PR16026 | |
5226 143. http://gcc.gnu.org/PR15191 | |
5227 144. http://gcc.gnu.org/PR15662 | |
5228 145. http://gcc.gnu.org/PR15054 | |
5229 146. http://gcc.gnu.org/PR15783 | |
5230 147. http://gcc.gnu.org/PR15626 | |
5231 148. http://gcc.gnu.org/PR14326 | |
5232 149. http://gcc.gnu.org/PR14723 | |
5233 150. http://gcc.gnu.org/PR15290 | |
5234 151. http://gcc.gnu.org/PR15250 | |
5235 152. http://gcc.gnu.org/PR15551 | |
5236 153. http://gcc.gnu.org/PR8309 | |
5237 154. http://gcc.gnu.org/PR13250 | |
5238 155. http://gcc.gnu.org/PR13803 | |
5239 156. http://gcc.gnu.org/PR14093 | |
5240 157. http://gcc.gnu.org/PR14457 | |
5241 158. http://gcc.gnu.org/PR14542 | |
5242 159. http://gcc.gnu.org/PR15100 | |
5243 160. http://gcc.gnu.org/PR15296 | |
5244 161. http://gcc.gnu.org/PR15396 | |
5245 162. http://gcc.gnu.org/PR15782 | |
5246 163. http://gcc.gnu.org/PR11610 | |
5247 164. http://gcc.gnu.org/PR15488 | |
5248 165. http://gcc.gnu.org/PR15489 | |
5249 166. http://gcc.gnu.org/PR13928 | |
5250 167. http://gcc.gnu.org/PR14150 | |
5251 168. http://gcc.gnu.org/PR14949 | |
5252 169. http://gcc.gnu.org/PR15123 | |
5253 170. http://gcc.gnu.org/PR16469 | |
5254 171. http://gcc.gnu.org/PR16344 | |
5255 172. http://gcc.gnu.org/PR16842 | |
5256 173. http://gcc.gnu.org/PR12608 | |
5257 174. http://gcc.gnu.org/PR14492 | |
5258 175. http://gcc.gnu.org/PR15461 | |
5259 176. http://gcc.gnu.org/PR15890 | |
5260 177. http://gcc.gnu.org/PR16180 | |
5261 178. http://gcc.gnu.org/PR16224 | |
5262 179. http://gcc.gnu.org/PR16408 | |
5263 180. http://gcc.gnu.org/PR16529 | |
5264 181. http://gcc.gnu.org/PR16698 | |
5265 182. http://gcc.gnu.org/PR16706 | |
5266 183. http://gcc.gnu.org/PR16810 | |
5267 184. http://gcc.gnu.org/PR16851 | |
5268 185. http://gcc.gnu.org/PR16870 | |
5269 186. http://gcc.gnu.org/PR16904 | |
5270 187. http://gcc.gnu.org/PR16905 | |
5271 188. http://gcc.gnu.org/PR16964 | |
5272 189. http://gcc.gnu.org/PR17068 | |
5273 190. http://gcc.gnu.org/PR16366 | |
5274 191. http://gcc.gnu.org/PR15345 | |
5275 192. http://gcc.gnu.org/PR16590 | |
5276 193. http://gcc.gnu.org/PR16693 | |
5277 194. http://gcc.gnu.org/PR17078 | |
5278 195. http://gcc.gnu.org/PR13956 | |
5279 196. http://gcc.gnu.org/PR16684 | |
5280 197. http://gcc.gnu.org/PR12658 | |
5281 198. http://gcc.gnu.org/PR13092 | |
5282 199. http://gcc.gnu.org/PR15320 | |
5283 200. http://gcc.gnu.org/PR16246 | |
5284 201. http://gcc.gnu.org/PR16273 | |
5285 202. http://gcc.gnu.org/PR16401 | |
5286 203. http://gcc.gnu.org/PR16411 | |
5287 204. http://gcc.gnu.org/PR16489 | |
5288 205. http://gcc.gnu.org/PR16618 | |
5289 206. http://gcc.gnu.org/PR16637 | |
5290 207. http://gcc.gnu.org/PR16717 | |
5291 208. http://gcc.gnu.org/PR16813 | |
5292 209. http://gcc.gnu.org/PR16853 | |
5293 210. http://gcc.gnu.org/PR16889 | |
5294 211. http://gcc.gnu.org/PR16959 | |
5295 212. http://gcc.gnu.org/PR7587 | |
5296 213. http://gcc.gnu.org/PR16473 | |
5297 214. http://gcc.gnu.org/PR16478 | |
5298 215. http://gcc.gnu.org/PR10695 | |
5299 216. http://gcc.gnu.org/PR16974 | |
5300 217. http://gcc.gnu.org/PR16298 | |
5301 218. http://gcc.gnu.org/PR17113 | |
5302 219. http://gcc.gnu.org/PR14697 | |
5303 220. http://gcc.gnu.org/PR15869 | |
5304 221. http://gcc.gnu.org/PR16325 | |
5305 222. http://gcc.gnu.org/PR16357 | |
5306 223. http://gcc.gnu.org/PR16380 | |
5307 224. http://gcc.gnu.org/PR16407 | |
5308 225. http://gcc.gnu.org/PR16643 | |
5309 226. http://gcc.gnu.org/PR15927 | |
5310 227. http://gcc.gnu.org/PR15948 | |
5311 228. http://gcc.gnu.org/PR17019 | |
5312 229. http://gcc.gnu.org/PR16130 | |
5313 230. http://gcc.gnu.org/PR16142 | |
5314 231. http://gcc.gnu.org/PR16278 | |
5315 232. http://gcc.gnu.org/PR16414 | |
5316 233. http://gcc.gnu.org/PR16445 | |
5317 234. http://gcc.gnu.org/PR16490 | |
5318 235. http://gcc.gnu.org/PR16683 | |
5319 236. http://gcc.gnu.org/PR16195 | |
5320 237. http://gcc.gnu.org/PR16239 | |
5321 238. http://gcc.gnu.org/PR16199 | |
5322 239. http://gcc.gnu.org/PR16416 | |
5323 240. http://gcc.gnu.org/PR16430 | |
5324 241. http://gcc.gnu.org/PR16379 | |
5325 242. http://gcc.gnu.org/PR17093 | |
5326 243. http://gcc.gnu.org/PR17119 | |
5327 244. http://gcc.gnu.org/PR15928 | |
5328 245. http://gcc.gnu.org/PR16210 | |
5329 246. http://gcc.gnu.org/PR15488 | |
5330 247. http://gcc.gnu.org/PR16250 | |
5331 248. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 | |
5332 249. http://gcc.gnu.org/PR17369 | |
5333 250. http://gcc.gnu.org/PR17850 | |
5334 251. http://gcc.gnu.org/PR13948 | |
5335 252. http://gcc.gnu.org/PR14492 | |
5336 253. http://gcc.gnu.org/PR16301 | |
5337 254. http://gcc.gnu.org/PR16566 | |
5338 255. http://gcc.gnu.org/PR17023 | |
5339 256. http://gcc.gnu.org/PR17027 | |
5340 257. http://gcc.gnu.org/PR17524 | |
5341 258. http://gcc.gnu.org/PR17826 | |
5342 259. http://gcc.gnu.org/PR15526 | |
5343 260. http://gcc.gnu.org/PR16999 | |
5344 261. http://gcc.gnu.org/PR17503 | |
5345 262. http://gcc.gnu.org/PR17581 | |
5346 263. http://gcc.gnu.org/PR18129 | |
5347 264. http://gcc.gnu.org/PR10975 | |
5348 265. http://gcc.gnu.org/PR11722 | |
5349 266. http://gcc.gnu.org/PR14534 | |
5350 267. http://gcc.gnu.org/PR15172 | |
5351 268. http://gcc.gnu.org/PR15786 | |
5352 269. http://gcc.gnu.org/PR16162 | |
5353 270. http://gcc.gnu.org/PR16612 | |
5354 271. http://gcc.gnu.org/PR16715 | |
5355 272. http://gcc.gnu.org/PR16848 | |
5356 273. http://gcc.gnu.org/PR17132 | |
5357 274. http://gcc.gnu.org/PR17259 | |
5358 275. http://gcc.gnu.org/PR17327 | |
5359 276. http://gcc.gnu.org/PR17393 | |
5360 277. http://gcc.gnu.org/PR17501 | |
5361 278. http://gcc.gnu.org/PR17537 | |
5362 279. http://gcc.gnu.org/PR17585 | |
5363 280. http://gcc.gnu.org/PR17821 | |
5364 281. http://gcc.gnu.org/PR17829 | |
5365 282. http://gcc.gnu.org/PR17851 | |
5366 283. http://gcc.gnu.org/PR17976 | |
5367 284. http://gcc.gnu.org/PR18020 | |
5368 285. http://gcc.gnu.org/PR18093 | |
5369 286. http://gcc.gnu.org/PR18140 | |
5370 287. http://gcc.gnu.org/PR17541 | |
5371 288. http://gcc.gnu.org/PR17853 | |
5372 289. http://gcc.gnu.org/PR17245 | |
5373 290. http://gcc.gnu.org/PR17167 | |
5374 291. http://gcc.gnu.org/PR17277 | |
5375 292. http://gcc.gnu.org/PR17505 | |
5376 293. http://gcc.gnu.org/PR17684 | |
5377 294. http://gcc.gnu.org/PR17384 | |
5378 295. http://gcc.gnu.org/PR17770 | |
5379 296. http://gcc.gnu.org/PR11476 | |
5380 297. http://gcc.gnu.org/PR14064 | |
5381 298. http://gcc.gnu.org/PR14678 | |
5382 299. http://gcc.gnu.org/PR15583 | |
5383 300. http://gcc.gnu.org/PR15790 | |
5384 301. http://gcc.gnu.org/PR15886 | |
5385 302. http://gcc.gnu.org/PR16884 | |
5386 303. http://gcc.gnu.org/PR13841 | |
5387 304. http://gcc.gnu.org/PR15860 | |
5388 305. http://gcc.gnu.org/PR17465 | |
5389 306. http://gcc.gnu.org/PR17469 | |
5390 307. http://gcc.gnu.org/PR18138 | |
5391 308. http://gcc.gnu.org/PR15498 | |
5392 309. http://gcc.gnu.org/PR15747 | |
5393 310. http://gcc.gnu.org/PR16406 | |
5394 311. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4 | |
5395 312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5 | |
5396 313. http://gcc.gnu.org/PR24688 | |
5397 314. http://gcc.gnu.org/PR17188 | |
5398 315. http://gcc.gnu.org/PR20187 | |
5399 316. http://gcc.gnu.org/PR21873 | |
5400 317. http://gcc.gnu.org/PR21899 | |
5401 318. http://gcc.gnu.org/PR22061 | |
5402 319. http://gcc.gnu.org/PR22208 | |
5403 320. http://gcc.gnu.org/PR22458 | |
5404 321. http://gcc.gnu.org/PR22589 | |
5405 322. http://gcc.gnu.org/PR24101 | |
5406 323. http://gcc.gnu.org/PR10611 | |
5407 324. http://gcc.gnu.org/PR13377 | |
5408 325. http://gcc.gnu.org/PR16002 | |
5409 326. http://gcc.gnu.org/PR17413 | |
5410 327. http://gcc.gnu.org/PR17609 | |
5411 328. http://gcc.gnu.org/PR17618 | |
5412 329. http://gcc.gnu.org/PR18124 | |
5413 330. http://gcc.gnu.org/PR18155 | |
5414 331. http://gcc.gnu.org/PR18177 | |
5415 332. http://gcc.gnu.org/PR18368 | |
5416 333. http://gcc.gnu.org/PR18378 | |
5417 334. http://gcc.gnu.org/PR18466 | |
5418 335. http://gcc.gnu.org/PR18512 | |
5419 336. http://gcc.gnu.org/PR18545 | |
5420 337. http://gcc.gnu.org/PR18738 | |
5421 338. http://gcc.gnu.org/PR18803 | |
5422 339. http://gcc.gnu.org/PR19004 | |
5423 340. http://gcc.gnu.org/PR19208 | |
5424 341. http://gcc.gnu.org/PR19253 | |
5425 342. http://gcc.gnu.org/PR19608 | |
5426 343. http://gcc.gnu.org/PR19884 | |
5427 344. http://gcc.gnu.org/PR20153 | |
5428 345. http://gcc.gnu.org/PR20563 | |
5429 346. http://gcc.gnu.org/PR20789 | |
5430 347. http://gcc.gnu.org/PR21336 | |
5431 348. http://gcc.gnu.org/PR21768 | |
5432 349. http://gcc.gnu.org/PR21853 | |
5433 350. http://gcc.gnu.org/PR21903 | |
5434 351. http://gcc.gnu.org/PR21983 | |
5435 352. http://gcc.gnu.org/PR21987 | |
5436 353. http://gcc.gnu.org/PR22153 | |
5437 354. http://gcc.gnu.org/PR22172 | |
5438 355. http://gcc.gnu.org/PR21286 | |
5439 356. http://gcc.gnu.org/PR22233 | |
5440 357. http://gcc.gnu.org/PR22508 | |
5441 358. http://gcc.gnu.org/PR22545 | |
5442 359. http://gcc.gnu.org/PR23528 | |
5443 360. http://gcc.gnu.org/PR23550 | |
5444 361. http://gcc.gnu.org/PR23586 | |
5445 362. http://gcc.gnu.org/PR23624 | |
5446 363. http://gcc.gnu.org/PR23639 | |
5447 364. http://gcc.gnu.org/PR23797 | |
5448 365. http://gcc.gnu.org/PR23965 | |
5449 366. http://gcc.gnu.org/PR24052 | |
5450 367. http://gcc.gnu.org/PR24580 | |
5451 368. http://gcc.gnu.org/PR24267 | |
5452 369. http://gcc.gnu.org/PR17810 | |
5453 370. http://gcc.gnu.org/PR17860 | |
5454 371. http://gcc/gnu.org/PR21709 | |
5455 372. http://gcc.gnu.org/PR21964 | |
5456 373. http://gcc.gnu.org/PR22167 | |
5457 374. http://gcc.gnu.org/PR22619 | |
5458 375. http://gcc.gnu.org/PR23241 | |
5459 376. http://gcc.gnu.org/PR23478 | |
5460 377. http://gcc.gnu.org/PR24470 | |
5461 378. http://gcc.gnu.org/PR24950 | |
5462 379. http://gcc.gnu.org/PR14400 | |
5463 380. http://gcc.gnu.org/PR14940 | |
5464 381. http://gcc.gnu.org/PR20239 | |
5465 382. http://gcc.gnu.org/PR15220 | |
5466 383. http://gcc.gnu.org/PR19275 | |
5467 384. http://gcc.gnu.org/PR21888 | |
5468 385. http://gcc.gnu.org/PR15342 | |
5469 386. http://gcc.gnu.org/PR23985 | |
5470 387. http://gcc.gnu.org/PR16719 | |
5471 388. http://gcc.gnu.org/PR21723 | |
5472 389. http://gcc.gnu.org/PR21841 | |
5473 390. http://gcc.gnu.org/PR23644 | |
5474 391. http://gcc.gnu.org/PR24718 | |
5475 392. http://gcc.gnu.org/PR18421 | |
5476 393. http://gcc.gnu.org/PR20621 | |
5477 394. http://gcc.gnu.org/PR18583 | |
5478 395. http://gcc.gnu.org/PR20191 | |
5479 396. http://gcc.gnu.org/PR22083 | |
5480 397. http://gcc.gnu.org/PR23070 | |
5481 398. http://gcc.gnu.org/PR23404 | |
5482 399. http://gcc.gnu.org/PR23539 | |
5483 400. http://gcc.gnu.org/PR24102 | |
5484 401. http://gcc.gnu.org/PR24465 | |
5485 402. http://gcc.gnu.org/PR19933 | |
5486 403. http://gcc.gnu.org/PR21889 | |
5487 404. http://gcc.gnu.org/PR19300 | |
5488 405. http://gcc.gnu.org/PR20301 | |
5489 406. http://gcc.gnu.org/PR20673 | |
5490 407. http://gcc.gnu.org/PR18582 | |
5491 408. http://gcc.gnu.org/PR19340 | |
5492 409. http://gcc.gnu.org/PR21716 | |
5493 410. http://gcc.gnu.org/PR24315 | |
5494 411. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6 | |
5495 412. mailto:gnu@gnu.org | |
5496 413. http://www.gnu.org/home.html#ContactInfo | |
5497 414. http://gcc.gnu.org/about.html | |
5498 415. http://gcc.gnu.org/onlinedocs/ | |
5499 416. mailto:gcc-help@gcc.gnu.org | |
5500 417. mailto:gcc@gnu.org | |
5501 418. mailto:gcc@gcc.gnu.org | |
5502 419. http://gcc.gnu.org/lists.html | |
5503 420. http://validator.w3.org/check/referer | |
5504 ====================================================================== | |
5505 http://gcc.gnu.org/gcc-3.3/index.html | |
5506 GCC 3.3 Release Series | |
5507 | |
5508 May 03, 2005 | |
5509 | |
5510 The [1]GNU project and the GCC developers are pleased to announce the | |
5511 release of GCC 3.3.6. | |
5512 | |
5513 This release is a bug-fix release, containing fixes for regressions in | |
5514 GCC 3.3.5 relative to previous releases of GCC. | |
5515 | |
5516 This release is the last of the series 3.3.x. | |
5517 | |
5518 The GCC 3.3 release series includes numerous [2]new features, | |
5519 improvements, bug fixes, and other changes, thanks to an [3]amazing | |
5520 group of volunteers. | |
5521 | |
5522 Release History | |
5523 | |
5524 GCC 3.3.6 | |
5525 May 3, 2005 ([4]changes) | |
5526 | |
5527 GCC 3.3.5 | |
5528 September 30, 2004 ([5]changes) | |
5529 | |
5530 GCC 3.3.4 | |
5531 May 31, 2004 ([6]changes) | |
5532 | |
5533 GCC 3.3.3 | |
5534 February 14, 2004 ([7]changes) | |
5535 | |
5536 GCC 3.3.2 | |
5537 October 16, 2003 ([8]changes) | |
5538 | |
5539 GCC 3.3.1 | |
5540 August 8, 2003 ([9]changes) | |
5541 | |
5542 GCC 3.3 | |
5543 May 14, 2003 ([10]changes) | |
5544 | |
5545 References and Acknowledgements | |
5546 | |
5547 GCC used to stand for the GNU C Compiler, but since the compiler | |
5548 supports several other languages aside from C, it now stands for the | |
5549 GNU Compiler Collection. | |
5550 | |
5551 A list of [11]successful builds is updated as new information becomes | |
5552 available. | |
5553 | |
5554 The GCC developers would like to thank the numerous people that have | |
5555 contributed new features, improvements, bug fixes, and other changes as | |
5556 well as test results to GCC. This [12]amazing group of volunteers is | |
5557 what makes GCC successful. | |
5558 | |
5559 For additional information about GCC please refer to the [13]GCC | |
5560 project web site or contact the [14]GCC development mailing list. | |
5561 | |
5562 To obtain GCC please use [15]our mirror sites, or our CVS server. | |
5563 | |
5564 Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There | |
5565 are also [17]other ways to contact the FSF. | |
5566 | |
5567 These pages are maintained by [18]the GCC team. | |
5568 | |
5569 | |
5570 For questions related to the use of GCC, please consult these web | |
5571 pages and the [19]GCC manuals. If that fails, the | |
5572 [20]gcc-help@gcc.gnu.org mailing list might help. | |
5573 Please send comments on these web pages and the development of GCC to | |
5574 our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. | |
5575 All of our lists have [23]public archives. | |
5576 | |
5577 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
5578 Floor, Boston, MA 02110, USA. | |
5579 | |
5580 Verbatim copying and distribution of this entire article is permitted | |
5581 in any medium, provided this notice is preserved. | |
5582 Last modified 2008-07-26 [24]Valid XHTML 1.0 | |
5583 | |
5584 References | |
5585 | |
5586 1. http://www.gnu.org/ | |
5587 2. http://gcc.gnu.org/gcc-3.3/changes.html | |
5588 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
5589 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 | |
5590 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 | |
5591 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 | |
5592 7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3 | |
5593 8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2 | |
5594 9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 | |
5595 10. http://gcc.gnu.org/gcc-3.3/changes.html | |
5596 11. http://gcc.gnu.org/gcc-3.3/buildstat.html | |
5597 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
5598 13. http://gcc.gnu.org/index.html | |
5599 14. mailto:gcc@gcc.gnu.org | |
5600 15. http://gcc.gnu.org/mirrors.html | |
5601 16. mailto:gnu@gnu.org | |
5602 17. http://www.gnu.org/home.html#ContactInfo | |
5603 18. http://gcc.gnu.org/about.html | |
5604 19. http://gcc.gnu.org/onlinedocs/ | |
5605 20. mailto:gcc-help@gcc.gnu.org | |
5606 21. mailto:gcc@gnu.org | |
5607 22. mailto:gcc@gcc.gnu.org | |
5608 23. http://gcc.gnu.org/lists.html | |
5609 24. http://validator.w3.org/check/referer | |
5610 ====================================================================== | |
5611 http://gcc.gnu.org/gcc-3.3/changes.html | |
5612 GCC 3.3 Release Series | |
5613 Changes, New Features, and Fixes | |
5614 | |
5615 The latest release in the 3.3 release series is [1]GCC 3.3.6. | |
5616 | |
5617 Caveats | |
5618 | |
5619 * The preprocessor no longer accepts multi-line string literals. They | |
5620 were deprecated in 3.0, 3.1, and 3.2. | |
5621 * The preprocessor no longer supports the -A- switch when appearing | |
5622 alone. -A- followed by an assertion is still supported. | |
5623 * Support for all the systems [2]obsoleted in GCC 3.1 has been | |
5624 removed from GCC 3.3. See below for a [3]list of systems which are | |
5625 obsoleted in this release. | |
5626 * Checking for null format arguments has been decoupled from the rest | |
5627 of the format checking mechanism. Programs which use the format | |
5628 attribute may regain this functionality by using the new [4]nonnull | |
5629 function attribute. Note that all functions for which GCC has a | |
5630 built-in format attribute, an appropriate built-in nonnull | |
5631 attribute is also applied. | |
5632 * The DWARF (version 1) debugging format has been deprecated and will | |
5633 be removed in a future version of GCC. Version 2 of the DWARF | |
5634 debugging format will continue to be supported for the foreseeable | |
5635 future. | |
5636 * The C and Objective-C compilers no longer accept the "Naming Types" | |
5637 extension (typedef foo = bar); it was already unavailable in C++. | |
5638 Code which uses it will need to be changed to use the "typeof" | |
5639 extension instead: typedef typeof(bar) foo. (We have removed this | |
5640 extension without a period of deprecation because it has caused the | |
5641 compiler to crash since version 3.0 and no one noticed until very | |
5642 recently. Thus we conclude it is not in widespread use.) | |
5643 * The -traditional C compiler option has been removed. It was | |
5644 deprecated in 3.1 and 3.2. (Traditional preprocessing remains | |
5645 available.) The <varargs.h> header, used for writing variadic | |
5646 functions in traditional C, still exists but will produce an error | |
5647 message if used. | |
5648 * GCC 3.3.1 automatically places zero-initialized variables in the | |
5649 .bss section on some operating systems. Versions of GNU Emacs up to | |
5650 (and including) 21.3 will not work correctly when using this | |
5651 optimization; you can use -fno-zero-initialized-in-bss to disable | |
5652 it. | |
5653 | |
5654 General Optimizer Improvements | |
5655 | |
5656 * A new scheme for accurately describing processor pipelines, the | |
5657 [5]DFA scheduler, has been added. | |
5658 * Pavel Nejedly, Charles University Prague, has contributed new file | |
5659 format used by the edge coverage profiler (-fprofile-arcs). | |
5660 The new format is robust and diagnoses common mistakes where | |
5661 profiles from different versions (or compilations) of the program | |
5662 are combined resulting in nonsensical profiles and slow code to | |
5663 produced with profile feedback. Additionally this format allows | |
5664 extra data to be gathered. Currently, overall statistics are | |
5665 produced helping optimizers to identify hot spots of a program | |
5666 globally replacing the old intra-procedural scheme and resulting in | |
5667 better code. Note that the gcov tool from older GCC versions will | |
5668 not be able to parse the profiles generated by GCC 3.3 and vice | |
5669 versa. | |
5670 * Jan Hubicka, SuSE Labs, has contributed a new superblock formation | |
5671 pass enabled using -ftracer. This pass simplifies the control flow | |
5672 of functions allowing other optimizations to do better job. | |
5673 He also contributed the function reordering pass | |
5674 (-freorder-functions) to optimize function placement using profile | |
5675 feedback. | |
5676 | |
5677 New Languages and Language specific improvements | |
5678 | |
5679 C/ObjC/C++ | |
5680 | |
5681 * The preprocessor now accepts directives within macro arguments. It | |
5682 processes them just as if they had not been within macro arguments. | |
5683 * The separate ISO and traditional preprocessors have been completely | |
5684 removed. The front end handles either type of preprocessed output | |
5685 if necessary. | |
5686 * In C99 mode preprocessor arithmetic is done in the precision of the | |
5687 target's intmax_t, as required by that standard. | |
5688 * The preprocessor can now copy comments inside macros to the output | |
5689 file when the macro is expanded. This feature, enabled using the | |
5690 -CC option, is intended for use by applications which place | |
5691 metadata or directives inside comments, such as lint. | |
5692 * The method of constructing the list of directories to be searched | |
5693 for header files has been revised. If a directory named by a -I | |
5694 option is a standard system include directory, the option is | |
5695 ignored to ensure that the default search order for system | |
5696 directories and the special treatment of system header files are | |
5697 not defeated. | |
5698 * A few more [6]ISO C99 features now work correctly. | |
5699 * A new function attribute, nonnull, has been added which allows | |
5700 pointer arguments to functions to be specified as requiring a | |
5701 non-null value. The compiler currently uses this information to | |
5702 issue a warning when it detects a null value passed in such an | |
5703 argument slot. | |
5704 * A new type attribute, may_alias, has been added. Accesses to | |
5705 objects with types with this attribute are not subjected to | |
5706 type-based alias analysis, but are instead assumed to be able to | |
5707 alias any other type of objects, just like the char type. | |
5708 | |
5709 C++ | |
5710 | |
5711 * Type based alias analysis has been implemented for C++ aggregate | |
5712 types. | |
5713 | |
5714 Objective-C | |
5715 | |
5716 * Generate an error if Objective-C objects are passed by value in | |
5717 function and method calls. | |
5718 * When -Wselector is used, check the whole list of selectors at the | |
5719 end of compilation, and emit a warning if a @selector() is not | |
5720 known. | |
5721 * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime. | |
5722 * No longer need to include objc/objc-class.h to compile self calls | |
5723 in class methods (NeXT runtime only). | |
5724 * New -Wundeclared-selector option. | |
5725 * Removed selector bloating which was causing object files to be 10% | |
5726 bigger on average (GNU runtime only). | |
5727 * Using at run time @protocol() objects has been fixed in certain | |
5728 situations (GNU runtime only). | |
5729 * Type checking has been fixed and improved in many situations | |
5730 involving protocols. | |
5731 | |
5732 Java | |
5733 | |
5734 * The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK | |
5735 1.4) API. | |
5736 * The JDK 1.4 assert facility has been implemented. | |
5737 * The bytecode interpreter is now direct threaded and thus faster. | |
5738 | |
5739 Fortran | |
5740 | |
5741 * Fortran improvements are listed in [7]the Fortran documentation. | |
5742 | |
5743 Ada | |
5744 | |
5745 * Ada tasking now works with glibc 2.3.x threading libraries. | |
5746 | |
5747 New Targets and Target Specific Improvements | |
5748 | |
5749 * The following changes have been made to the HP-PA port: | |
5750 + The port now defaults to scheduling for the PA8000 series of | |
5751 processors. | |
5752 + Scheduling support for the PA7300 processor has been added. | |
5753 + The 32-bit port now supports weak symbols under HP-UX 11. | |
5754 + The handling of initializers and finalizers has been improved | |
5755 under HP-UX 11. The 64-bit port no longer uses collect2. | |
5756 + Dwarf2 EH support has been added to the 32-bit linux port. | |
5757 + ABI fixes to correct the passing of small structures by value. | |
5758 * The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to | |
5759 use the DFA processor pipeline description. | |
5760 * The following NetBSD configurations for the SuperH processor family | |
5761 have been added: | |
5762 + SH3, big-endian, sh-*-netbsdelf* | |
5763 + SH3, little-endian, shle-*-netbsdelf* | |
5764 + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd* | |
5765 + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd* | |
5766 + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd* | |
5767 + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd* | |
5768 * The following changes have been made to the IA-32/x86-64 port: | |
5769 + SSE2 and 3dNOW! intrinsics are now supported. | |
5770 + Support for thread local storage has been added to the IA-32 | |
5771 and x86-64 ports. | |
5772 + The x86-64 port has been significantly improved. | |
5773 * The following changes have been made to the MIPS port: | |
5774 + All configurations now accept the -mabi switch. Note that you | |
5775 will need appropriate multilibs for this option to work | |
5776 properly. | |
5777 + ELF configurations will always pass an ABI flag to the | |
5778 assembler, except when the MIPS EABI is selected. | |
5779 + -mabi=64 no longer selects MIPS IV code. | |
5780 + The -mcpu option, which was deprecated in 3.1 and 3.2, has | |
5781 been removed from this release. | |
5782 + -march now changes the core ISA level. In previous releases, | |
5783 it would change the use of processor-specific extensions, but | |
5784 would leave the core ISA unchanged. For example, mips64-elf | |
5785 -march=r8000 will now generate MIPS IV code. | |
5786 + Under most configurations, -mipsN now acts as a synonym for | |
5787 -march. | |
5788 + There are some new preprocessor macros to describe the -march | |
5789 and -mtune settings. See the documentation of those options | |
5790 for details. | |
5791 + Support for the NEC VR-Series processors has been added. This | |
5792 includes the 54xx, 5500, and 41xx series. | |
5793 + Support for the Sandcraft sr71k processor has been added. | |
5794 * The following changes have been made to the S/390 port: | |
5795 + Support to build the Java runtime libraries has been added. | |
5796 Java is now enabled by default on s390-*-linux* and | |
5797 s390x-*-linux* targets. | |
5798 + Multilib support for the s390x-*-linux* target has been added; | |
5799 this allows to build 31-bit binaries using the -m31 option. | |
5800 + Support for thread local storage has been added. | |
5801 + Inline assembler code may now use the 'Q' constraint to | |
5802 specify memory operands without index register. | |
5803 + Various platform-specific performance improvements have been | |
5804 implemented; in particular, the compiler now uses the BRANCH | |
5805 ON COUNT family of instructions and makes more frequent use of | |
5806 the TEST UNDER MASK family of instructions. | |
5807 * The following changes have been made to the PowerPC port: | |
5808 + Support for IBM Power4 processor added. | |
5809 + Support for Motorola e500 SPE added. | |
5810 + Support for AIX 5.2 added. | |
5811 + Function and Data sections now supported on AIX. | |
5812 + Sibcall optimizations added. | |
5813 * The support for H8 Tiny is added to the H8/300 port with -mn. | |
5814 | |
5815 Obsolete Systems | |
5816 | |
5817 Support for a number of older systems has been declared obsolete in GCC | |
5818 3.3. Unless there is activity to revive them, the next release of GCC | |
5819 will have their sources permanently removed. | |
5820 | |
5821 All configurations of the following processor architectures have been | |
5822 declared obsolete: | |
5823 * Matsushita MN10200, mn10200-*-* | |
5824 * Motorola 88000, m88k-*-* | |
5825 * IBM ROMP, romp-*-* | |
5826 | |
5827 Also, some individual systems have been obsoleted: | |
5828 * Alpha | |
5829 + Interix, alpha*-*-interix* | |
5830 + Linux libc1, alpha*-*-linux*libc1* | |
5831 + Linux ECOFF, alpha*-*-linux*ecoff* | |
5832 * ARM | |
5833 + Generic a.out, arm*-*-aout* | |
5834 + Conix, arm*-*-conix* | |
5835 + "Old ABI," arm*-*-oabi | |
5836 + StrongARM/COFF, strongarm-*-coff* | |
5837 * HPPA (PA-RISC) | |
5838 + Generic OSF, hppa1.0-*-osf* | |
5839 + Generic BSD, hppa1.0-*-bsd* | |
5840 + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]* | |
5841 + HiUX, hppa*-*-hiux* | |
5842 + Mach Lites, hppa*-*-lites* | |
5843 * Intel 386 family | |
5844 + Windows NT 3.x, i?86-*-win32 | |
5845 * MC68000 family | |
5846 + HP systems, m68000-hp-bsd* and m68k-hp-bsd* | |
5847 + Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and | |
5848 m68k-sun-mach* | |
5849 + AT&T systems, m68000-att-sysv* | |
5850 + Atari systems, m68k-atari-sysv* | |
5851 + Motorola systems, m68k-motorola-sysv* | |
5852 + NCR systems, m68k-ncr-sysv* | |
5853 + Plexus systems, m68k-plexus-sysv* | |
5854 + Commodore systems, m68k-cbm-sysv* | |
5855 + Citicorp TTI, m68k-tti-* | |
5856 + Unos, m68k-crds-unos* | |
5857 + Concurrent RTU, m68k-ccur-rtu* | |
5858 + Linux a.out, m68k-*-linux*aout* | |
5859 + Linux libc1, m68k-*-linux*libc1* | |
5860 + pSOS, m68k-*-psos* | |
5861 * MIPS | |
5862 + Generic ECOFF, mips*-*-ecoff* | |
5863 + SINIX, mips-sni-sysv4 | |
5864 + Orion RTEMS, mips64orion-*-rtems* | |
5865 * National Semiconductor 32000 | |
5866 + OpenBSD, ns32k-*-openbsd* | |
5867 * POWER (aka RS/6000) and PowerPC | |
5868 + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]* | |
5869 + Bull BOSX, rs6000-bull-bosx | |
5870 + Generic Mach, rs6000-*-mach* | |
5871 + Generic SysV, powerpc*-*-sysv* | |
5872 + Linux libc1, powerpc*-*-linux*libc1* | |
5873 * Sun SPARC | |
5874 + Generic a.out, sparc-*-aout*, sparclet-*-aout*, | |
5875 sparclite-*-aout*, and sparc86x-*-aout* | |
5876 + NetBSD a.out, sparc-*-netbsd*aout* | |
5877 + Generic BSD, sparc-*-bsd* | |
5878 + ChorusOS, sparc-*-chorusos* | |
5879 + Linux a.out, sparc-*-linux*aout* | |
5880 + Linux libc1, sparc-*-linux*libc1* | |
5881 + LynxOS, sparc-*-lynxos* | |
5882 + Solaris on HAL hardware, sparc-hal-solaris2* | |
5883 + SunOS versions 3 and 4, sparc-*-sunos[34]* | |
5884 * NEC V850 | |
5885 + RTEMS, v850-*-rtems* | |
5886 * VAX | |
5887 + VMS, vax-*-vms* | |
5888 | |
5889 Documentation improvements | |
5890 | |
5891 Other significant improvements | |
5892 | |
5893 * Almost all front-end dependencies in the compiler have been | |
5894 separated out into a set of language hooks. This should make adding | |
5895 a new front end clearer and easier. | |
5896 * One effect of removing the separate preprocessor is a small | |
5897 increase in the robustness of the compiler in general, and the | |
5898 maintainability of target descriptions. Previously target-specific | |
5899 built-in macros and others, such as __FAST_MATH__, had to be | |
5900 handled with so-called specs that were hard to maintain. Often they | |
5901 would fail to behave properly when conflicting options were | |
5902 supplied on the command line, and define macros in the user's | |
5903 namespace even when strict ISO compliance was requested. | |
5904 Integrating the preprocessor has cleanly solved these issues. | |
5905 * The Makefile suite now supports redirection of make install by | |
5906 means of the variable DESTDIR. | |
5907 __________________________________________________________________ | |
5908 | |
5909 GCC 3.3 | |
5910 | |
5911 Detailed release notes for the GCC 3.3 release follow. | |
5912 | |
5913 Bug Fixes | |
5914 | |
5915 bootstrap failures | |
5916 | |
5917 * [8]10140 cross compiler build failures: missing __mempcpy (DUP: | |
5918 [9]10198,[10]10338) | |
5919 | |
5920 Internal compiler errors (multi-platform) | |
5921 | |
5922 * [11]3581 large string causes segmentation fault in cc1 | |
5923 * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler | |
5924 * [13]5533 (c++) ICE when processing std::accumulate(begin, end, | |
5925 init, invalid_op) | |
5926 * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out | |
5927 * [15]6412 (c++) ICE in retrieve_specialization | |
5928 * [16]6620 (c++) partial template specialization causes an ICE | |
5929 (segmentation fault) | |
5930 * [17]6663 (c++) ICE with attribute aligned | |
5931 * [18]7068 ICE with incomplete types | |
5932 * [19]7083 (c++) ICE using -gstabs with dodgy class derivation | |
5933 * [20]7647 (c++) ICE when data member has the name of the enclosing | |
5934 class | |
5935 * [21]7675 ICE in fixup_var_refs_1 | |
5936 * [22]7718 'complex' template instantiation causes ICE | |
5937 * [23]8116 (c++) ICE in member template function | |
5938 * [24]8358 (ada) Ada compiler accesses freed memory, crashes | |
5939 * [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation | |
5940 fault | |
5941 * [26]8564 (c++) ICE in find_function_data, in function.c | |
5942 * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c | |
5943 * [28]8766 (c++) ICE after failed initialization of static template | |
5944 variable | |
5945 * [29]8803 ICE in instantiate_virtual_regs_1, in function.c | |
5946 * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set | |
5947 * [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class | |
5948 definition | |
5949 * [32]9216 (c++) ICE on missing template parameter | |
5950 * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c | |
5951 * [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO | |
5952 loop | |
5953 * [35]9429 (c++) ICE in template instantiation with a pointered new | |
5954 operator | |
5955 * [36]9516 Internal error when using a big array | |
5956 * [37]9600 (c++) ICE with typedefs in template class | |
5957 * [38]9629 (c++) virtual inheritance segfault | |
5958 * [39]9672 (c++) ICE: Error reporting routines re-entered | |
5959 * [40]9749 (c++) ICE in write_expression on invalid function | |
5960 prototype | |
5961 * [41]9794 (fortran) ICE: floating point exception during constant | |
5962 folding | |
5963 * [42]9829 (c++) Missing colon in nested namespace usage causes ICE | |
5964 * [43]9916 (c++) ICE with noreturn function in ?: statement | |
5965 * [44]9936 ICE with local function and variable-length 2d array | |
5966 * [45]10262 (c++) cc1plus crashes with large generated code | |
5967 * [46]10278 (c++) ICE in parser for invalid code | |
5968 * [47]10446 (c++) ICE on definition of nonexistent member function of | |
5969 nested class in a class template | |
5970 * [48]10451 (c++) ICE in grokdeclarator on spurious mutable | |
5971 declaration | |
5972 * [49]10506 (c++) ICE in build_new at cp/init.c with | |
5973 -fkeep-inline-functions and multiple inheritance | |
5974 * [50]10549 (c++) ICE in store_bit_field on bitfields that exceed the | |
5975 precision of the declared type | |
5976 | |
5977 Optimization bugs | |
5978 | |
5979 * [51]2001 Inordinately long compile times in reload CSE regs | |
5980 * [52]2391 Exponential compilation time explosion in combine | |
5981 * [53]2960 Duplicate loop conditions even with -Os | |
5982 * [54]4046 redundant conditional branch | |
5983 * [55]6405 Loop-unrolling related performance regressions | |
5984 * [56]6798 very long compile time with large case-statement | |
5985 * [57]6871 const objects shouldn't be moved to .bss | |
5986 * [58]6909 problem w/ -Os on modified loop-2c.c test case | |
5987 * [59]7189 gcc -O2 -Wall does not print ``control reaches end of | |
5988 non-void function'' warning | |
5989 * [60]7642 optimization problem with signbit() | |
5990 * [61]8634 incorrect code for inlining of memcpy under -O2 | |
5991 * [62]8750 Cygwin prolog generation erroneously emitting __alloca as | |
5992 regular function call | |
5993 | |
5994 C front end | |
5995 | |
5996 * [63]2161 long if-else cascade overflows parser stack | |
5997 * [64]4319 short accepted on typedef'd char | |
5998 * [65]8602 incorrect line numbers in warning messages when using | |
5999 inline functions | |
6000 * [66]9177 -fdump-translation-unit: C front end deletes function_decl | |
6001 AST nodes and breaks debugging dumps | |
6002 * [67]9853 miscompilation of non-constant structure initializer | |
6003 | |
6004 c++ compiler and library | |
6005 | |
6006 * [68]45 legal template specialization code is rejected (DUP: | |
6007 [69]3784) | |
6008 * [70]764 lookup failure: friend operator and dereferencing a pointer | |
6009 and templates (DUP: [71]5116) | |
6010 * [72]2862 gcc accepts invalid explicit instantiation syntax (DUP: | |
6011 2863) | |
6012 * [73]3663 G++ doesn't check access control during template | |
6013 instantiation | |
6014 * [74]3797 gcc fails to emit explicit specialization of a template | |
6015 member | |
6016 * [75]3948 Two destructors are called when no copy destructor is | |
6017 defined (ABI change) | |
6018 * [76]4137 Conversion operator within template is not accepted | |
6019 * [77]4361 bogus ambiguity taking the address of a member template | |
6020 * [78]4802 g++ accepts illegal template code (access to private | |
6021 member; DUP: [79]5837) | |
6022 * [80]4803 inline function is used but never defined, and g++ does | |
6023 not object | |
6024 * [81]5094 Partial specialization cannot be friend? | |
6025 * [82]5730 complex<double>::norm() -- huge slowdown from egcs-2.91.66 | |
6026 * [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run | |
6027 time | |
6028 * [84]7015 certain __asm__ constructs rejected | |
6029 * [85]7086 compile time regression (quadratic behavior in | |
6030 fixup_var_refs) | |
6031 * [86]7099 G++ doesn't set the noreturn attribute on std::exit and | |
6032 std::abort | |
6033 * [87]7247 copy constructor missing when inlining enabled (invalid | |
6034 optimization?) | |
6035 * [88]7441 string array initialization compilation time regression | |
6036 from seconds to minutes | |
6037 * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong | |
6038 * [90]7804 bad printing of floating point constant in warning message | |
6039 * [91]8099 Friend classes and template specializations | |
6040 * [92]8117 member function pointers and multiple inheritance | |
6041 * [93]8205 using declaration and multiple inheritance | |
6042 * [94]8645 unnecessary non-zero checks in stl_tree.h | |
6043 * [95]8724 explicit destructor call for incomplete class allowed | |
6044 * [96]8805 compile time regression with many member variables | |
6045 * [97]8691 -O3 and -fno-implicit-templates are incompatible | |
6046 * [98]8700 unhelpful error message for binding temp to reference | |
6047 * [99]8724 explicit destructor call for incomplete class allowed | |
6048 * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems | |
6049 * [101]9016 Failure to consistently constant fold "constant" C++ | |
6050 objects | |
6051 * [102]9053 g++ confused about ambiguity of overloaded function | |
6052 templates | |
6053 * [103]9152 undefined virtual thunks | |
6054 * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out | |
6055 * [105]9297 data corruption due to codegen bug (when copying.) | |
6056 * [106]9318 i/ostream::operator>>/<<(streambuf*) broken | |
6057 * [107]9320 Incorrect usage of traits_type::int_type in stdio_filebuf | |
6058 * [108]9400 bogus -Wshadow warning: shadowed declaration of this in | |
6059 local classes | |
6060 * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters | |
6061 * [110]9425 filebuf::pbackfail broken (DUP: [111]9439) | |
6062 * [112]9474 GCC freezes in compiling a weird code mixing <iostream> | |
6063 and <iostream.h> | |
6064 * [113]9548 Incorrect results from setf(ios::fixed) and precision(-1) | |
6065 [114][DR 231] | |
6066 * [115]9555 ostream inserters fail to set badbit on exception | |
6067 * [116]9561 ostream inserters rethrow exception of wrong type | |
6068 * [117]9563 ostream::sentry returns true after a failed preparation | |
6069 * [118]9582 one-definition rule violation in std::allocator | |
6070 * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors | |
6071 * [120]9683 bug in initialization chains for static const variables | |
6072 from template classes | |
6073 * [121]9791 -Woverloaded-virtual reports hiding of destructor | |
6074 * [122]9817 collate::compare doesn't handle nul characters | |
6075 * [123]9825 filebuf::sputbackc breaks sbumpc | |
6076 * [124]9826 operator>>(basic_istream, basic_string) fails to compile | |
6077 with custom traits | |
6078 * [125]9924 Multiple using statements for builtin functions not | |
6079 allowed | |
6080 * [126]9946 destructor is not called for temporary object | |
6081 * [127]9964 filebuf::close() sometimes fails to close file | |
6082 * [128]9988 filebuf::overflow writes EOF to file | |
6083 * [129]10033 optimization breaks polymorphic references w/ typeid | |
6084 operator | |
6085 * [130]10097 filebuf::underflow drops characters | |
6086 * [131]10132 filebuf destructor can throw exceptions | |
6087 * [132]10180 gcc fails to warn about non-inlined function | |
6088 * [133]10199 method parametrized by template does not work everywhere | |
6089 * [134]10300 use of array-new (nothrow) in segfaults on NULL return | |
6090 * [135]10427 Stack corruption with variable-length automatic arrays | |
6091 and virtual destructors | |
6092 * [136]10503 Compilation never stops in fixed_type_or_null | |
6093 | |
6094 Objective-C | |
6095 | |
6096 * [137]5956 selectors aren't matched properly when added to the | |
6097 selector table | |
6098 | |
6099 Fortran compiler and library | |
6100 | |
6101 * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't | |
6102 detect | |
6103 * [139]3924 g77 generates code that is rejected by GAS if COFF debug | |
6104 info requested | |
6105 * [140]5634 doc: explain that configure --prefix=~/... does not work | |
6106 * [141]6367 multiple repeat counts confuse namelist read into array | |
6107 * [142]6491 Logical operations error on logicals when using | |
6108 -fugly-logint | |
6109 * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C" | |
6110 * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os | |
6111 on irix6.5 | |
6112 * [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should | |
6113 assume a direct access file | |
6114 * [146]7278 g77 "bug"; the executable misbehaves (with -O2 | |
6115 -fno-automatic) | |
6116 * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows | |
6117 * [148]7388 Incorrect output with 0-based array of characters | |
6118 * [149]8587 Double complex zero ** double precision number -> NaN | |
6119 instead of zero | |
6120 * [150]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning: | |
6121 unknown register name line-length-none | |
6122 * [151]10197 Direct access files not unformatted by default | |
6123 | |
6124 Java compiler and library | |
6125 | |
6126 * [152]6005 gcj fails to build rhug on alpha | |
6127 * [153]6389 System.getProperty("") should always throw an | |
6128 IllegalArgumentException | |
6129 * [154]6576 java.util.ResourceBundle.getResource ignores locale | |
6130 * [155]6652 new java.io.File("").getCanonicalFile() throws exception | |
6131 * [156]7060 getMethod() doesn't search super interface | |
6132 * [157]7073 bytecode interpreter gives wrong answer for interface | |
6133 getSuperclass() | |
6134 * [158]7180 possible bug in | |
6135 javax.naming.spi.NamingManager.getPlusPath() | |
6136 * [159]7416 java.security startup refs "GNU libgcj.security" | |
6137 * [160]7570 Runtime.exec with null envp: child doesn't inherit parent | |
6138 env (DUP: [161]7578) | |
6139 * [162]7611 Internal error while compiling libjava with -O | |
6140 * [163]7709 NullPointerException in _Jv_ResolvePoolEntry | |
6141 * [164]7766 ZipInputStream.available returns 0 immediately after | |
6142 construction | |
6143 * [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be public | |
6144 * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented | |
6145 * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens' | |
6146 * [168]8234 ZipInputStream chokes when InputStream.read() returns | |
6147 small chunks | |
6148 * [169]8415 reflection bug: exception info for Method | |
6149 * [170]8481 java.Random.nextInt(int) may return negative | |
6150 * [171]8593 Error reading GZIPped files with BufferedReader | |
6151 * [172]8759 java.beans.Introspector has no flushCaches() or | |
6152 flushFromCaches() methods | |
6153 * [173]8997 spin() calls Thread.sleep | |
6154 * [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd | |
6155 instead of the root content of C: | |
6156 * [175]9254 java::lang::Object::wait(), threads-win32.cc returns | |
6157 wrong return codes | |
6158 * [176]9271 Severe bias in java.security.SecureRandom | |
6159 | |
6160 Ada compiler and library | |
6161 | |
6162 * [177]6767 make gnatlib-shared fails on -laddr2line | |
6163 * [178]9911 gnatmake fails to link when GCC configured with | |
6164 --with-sjlj-exceptions=yes | |
6165 * [179]10020 Can't bootstrap gcc on AIX with Ada enabled | |
6166 * [180]10546 Ada tasking not working on Red Hat 9 | |
6167 | |
6168 preprocessor | |
6169 | |
6170 * [181]7029 preprocessor should ignore #warning with -M | |
6171 | |
6172 ARM-specific | |
6173 | |
6174 * [182]2903 [arm] Optimization bug with long long arithmetic | |
6175 * [183]7873 arm-linux-gcc fails when assigning address to a bit field | |
6176 | |
6177 FreeBSD-specific | |
6178 | |
6179 * [184]7680 float functions undefined in math.h/cmath with #define | |
6180 _XOPEN_SOURCE | |
6181 | |
6182 HP-UX or HP-PA-specific | |
6183 | |
6184 * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c | |
6185 * [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to | |
6186 fputc_unlocked | |
6187 * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen | |
6188 | |
6189 m68hc11-specific | |
6190 | |
6191 * [188]6744 Bad assembler code generated: reference to pseudo | |
6192 register z | |
6193 * [189]7361 Internal compiler error in reload_cse_simplify_operands, | |
6194 in reload1.c | |
6195 | |
6196 MIPS-specific | |
6197 | |
6198 * [190]9496 [mips-linux] bug in optimizer? | |
6199 | |
6200 PowerPC-specific | |
6201 | |
6202 * [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of | |
6203 space | |
6204 * [192]8480 reload ICEs for LAPACK code on powerpc64-linux | |
6205 * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg | |
6206 * [194]10315 [powerpc] ICE: in extract_insn, in recog.c | |
6207 | |
6208 SPARC-specific | |
6209 | |
6210 * [195]10267 (documentation) Wrong build instructions for | |
6211 *-*-solaris2* | |
6212 | |
6213 x86-specific (Intel/AMD) | |
6214 | |
6215 * [196]7916 ICE in instantiate_virtual_register_1 | |
6216 * [197]7926 (c++) i486 instructions in header files make c++ programs | |
6217 crash on i386 | |
6218 * [198]8555 ICE in gen_split_1231 | |
6219 * [199]8994 ICE with -O -march=pentium4 | |
6220 * [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs | |
6221 * [201]9806 ICE in inline assembly with -fPIC flag | |
6222 * [202]10077 gcc -msse2 generates movd to move dwords between xmm | |
6223 regs | |
6224 * [203]10233 64-bit comparison only comparing bottom 32-bits | |
6225 * [204]10286 type-punning doesn't work with __m64 and -O | |
6226 * [205]10308 [x86] ICE with -O -fgcse or -O2 | |
6227 __________________________________________________________________ | |
6228 | |
6229 GCC 3.3.1 | |
6230 | |
6231 Bug Fixes | |
6232 | |
6233 This section lists the problem reports (PRs) from GCC's bug tracking | |
6234 system that are known to be fixed in the 3.3.1 release. This list might | |
6235 not be complete (that is, it is possible that some PRs that have been | |
6236 fixed are not listed here). | |
6237 | |
6238 Bootstrap failures | |
6239 | |
6240 * [206]11272 [Solaris] make bootstrap fails while building libstdc++ | |
6241 | |
6242 Internal compiler errors (multi-platform) | |
6243 | |
6244 * [207]5754 ICE on invalid nested template class | |
6245 * [208]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64 | |
6246 and --enable-checking | |
6247 * [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c | |
6248 * [210]7053 (c++) ICE when declaring a function already defined as a | |
6249 friend method of a template class | |
6250 * [211]8164 (c++) ICE when using different const expressions as | |
6251 template parameter | |
6252 * [212]8384 (c++) ICE in is_base_type, in dwarf2out.c | |
6253 * [213]9559 (c++) ICE with invalid initialization of a static const | |
6254 * [214]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c | |
6255 when redeclaring a static member variable | |
6256 * [215]9864 (fortran) ICE in add_abstract_origin_attribute, in | |
6257 dwarfout.c with -g -O -finline-functions | |
6258 * [216]10432 (c++) ICE in poplevel, in cp/decl.c | |
6259 * [217]10475 ICE in subreg_highpart_offset for code with long long | |
6260 * [218]10635 (c++) ICE when dereferencing an incomplete type casted | |
6261 from a void pointer | |
6262 * [219]10661 (c++) ICE in instantiate_decl, in cp/pt.c while | |
6263 instantiating static member variables | |
6264 * [220]10700 ICE in copy_to_mode_reg on 64-bit targets | |
6265 * [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c | |
6266 * [222]10796 (c++) ICE when defining an enum with two values: -1 and | |
6267 MAX_INT_64BIT | |
6268 * [223]10890 ICE in merge_assigned_reloads building Linux 2.4.2x | |
6269 sched.c | |
6270 * [224]10939 (c++) ICE with template code | |
6271 * [225]10956 (c++) ICE when specializing a template member function | |
6272 of a template class, in tsubst, in cp/pt.c | |
6273 * [226]11041 (c++) ICE: const myclass &x = *x; (when operator*() | |
6274 defined) | |
6275 * [227]11059 (c++) ICE with empty union | |
6276 * [228]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with | |
6277 -O2 -fnon-call-exceptions | |
6278 * [229]11105 (c++) ICE in mangle_conv_op_name_for_type | |
6279 * [230]11149 (c++) ICE on error when instantiation with call function | |
6280 of a base type | |
6281 * [231]11228 (c++) ICE on new-expression using array operator new and | |
6282 default-initialization | |
6283 * [232]11282 (c++) Infinite memory usage after syntax error | |
6284 * [233]11301 (fortran) ICE with -fno-globals | |
6285 * [234]11308 (c++) ICE when using an enum type name as if it were a | |
6286 class or namespace | |
6287 * [235]11473 (c++) ICE with -gstabs when empty struct inherits from | |
6288 an empty struct | |
6289 * [236]11503 (c++) ICE when instantiating template with ADDR_EXPR | |
6290 * [237]11513 (c++) ICE in push_template_decl_real, in cp/pt.c: | |
6291 template member functions | |
6292 | |
6293 Optimization bugs | |
6294 | |
6295 * [238]11198 -O2 -frename-registers generates wrong code (aliasing | |
6296 problem) | |
6297 * [239]11304 Wrong code production with -fomit-frame-pointer | |
6298 * [240]11381 volatile memory access optimized away | |
6299 * [241]11536 [strength-reduce] -O2 optimization produces wrong code | |
6300 * [242]11557 constant folding bug generates wrong code | |
6301 | |
6302 C front end | |
6303 | |
6304 * [243]5897 No warning for statement after return | |
6305 * [244]11279 DWARF-2 output mishandles large enums | |
6306 | |
6307 Preprocessor bugs | |
6308 | |
6309 * [245]11022 no warning for non-compatible macro redefinition | |
6310 | |
6311 C++ compiler and library | |
6312 | |
6313 * [246]2330 static_cast<>() to a private base is allowed | |
6314 * [247]5388 Incorrect message "operands to ?: have different types" | |
6315 * [248]5390 Libiberty fails to demangle multi-digit template | |
6316 parameters | |
6317 * [249]7877 Incorrect parameter passing to specializations of member | |
6318 function templates | |
6319 * [250]9393 Anonymous namespaces and compiling the same file twice | |
6320 * [251]10032 -pedantic converts some errors to warnings | |
6321 * [252]10468 const typeof(x) is non-const, but only in templates | |
6322 * [253]10527 confused error message with "new int()" parameter | |
6323 initializer | |
6324 * [254]10679 parameter MIN_INLINE_INSNS is not honored | |
6325 * [255]10682 gcc chokes on a typedef for an enum inside a class | |
6326 template | |
6327 * [256]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of | |
6328 0. | |
6329 * [257]10845 template member function (with nested template as | |
6330 parameter) cannot be called anymore if another unrelated template | |
6331 member function is defined | |
6332 * [258]10849 Cannot define an out-of-class specialization of a | |
6333 private nested template class | |
6334 * [259]10888 Suppress -Winline warnings for system headers | |
6335 * [260]10929 -Winline warns about functions for which no definition | |
6336 is visible | |
6337 * [261]10931 valid conversion static_cast<const unsigned | |
6338 int&>(lvalue-of-type-int) is rejected | |
6339 * [262]10940 Bad code with explicit specialization | |
6340 * [263]10968 If member function implicitly instantiated, explicit | |
6341 instantiation of class fails to instantiate it | |
6342 * [264]10990 Cannot convert with dynamic_cast<> to a private base | |
6343 class from within a member function | |
6344 * [265]11039 Bad interaction between implicit typename deprecation | |
6345 and friendship | |
6346 * [266]11062 (libstdc++) avoid __attribute__ ((unused)); say | |
6347 "__unused__" instead | |
6348 * [267]11095 C++ iostream manipulator causes segfault when called | |
6349 with negative argument | |
6350 * [268]11098 g++ doesn't emit complete debugging information for | |
6351 local variables in destructors | |
6352 * [269]11137 Linux shared library constructors not called unless | |
6353 there's one global object | |
6354 * [270]11154 spurious ambiguity report for template class | |
6355 specialization | |
6356 * [271]11329 Compiler cannot find user defined implicit typecast | |
6357 * [272]11332 Spurious error with casts in ?: expression | |
6358 * [273]11431 static_cast behavior with subclasses when default | |
6359 constructor available | |
6360 * [274]11528 money_get facet does not accept "$.00" as valid | |
6361 * [275]11546 Type lookup problems in out-of-line definition of a | |
6362 class doubly nested from a template class | |
6363 * [276]11567 C++ code containing templated member function with same | |
6364 name as pure virtual member function results in linking failure | |
6365 * [277]11645 Failure to deal with using and private inheritance | |
6366 | |
6367 Java compiler and library | |
6368 | |
6369 * [278]5179 Qualified static field access doesn't initialize its | |
6370 class | |
6371 * [279]8204 gcj -O2 to native reorders certain instructions | |
6372 improperly | |
6373 * [280]10838 java.io.ObjectInputStream syntax error | |
6374 * [281]10886 The RMI registry that comes with GCJ does not work | |
6375 correctly | |
6376 * [282]11349 JNDI URL context factories not located correctly | |
6377 | |
6378 x86-specific (Intel/AMD) | |
6379 | |
6380 * [283]4823 ICE on inline assembly code | |
6381 * [284]8878 miscompilation with -O and SSE | |
6382 * [285]9815 (c++ library) atomicity.h - fails to compile with -O3 | |
6383 -masm=intel | |
6384 * [286]10402 (inline assembly) [x86] ICE in merge_assigned_reloads, | |
6385 in reload1.c | |
6386 * [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2 | |
6387 * [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source | |
6388 * [289]11044 [x86] out of range loop instructions for FP code on K6 | |
6389 * [290]11089 ICE: instantiate_virtual_regs_lossage while using SSE | |
6390 built-ins | |
6391 * [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC" | |
6392 is used | |
6393 | |
6394 SPARC- or Solaris- specific | |
6395 | |
6396 * [292]9362 solaris 'as' dies when fed .s and "-gstabs" | |
6397 * [293]10142 [SPARC64] gcc produces wrong code when passing | |
6398 structures by value | |
6399 * [294]10663 New configure check aborts with Sun tools. | |
6400 * [295]10835 combinatorial explosion in scheduler on HyperSPARC | |
6401 * [296]10876 ICE in calculate_giv_inc when building KDE | |
6402 * [297]10955 wrong code at -O3 for structure argument in context of | |
6403 structure return | |
6404 * [298]11018 -mcpu=ultrasparc busts tar-1.13.25 | |
6405 * [299]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x | |
6406 Linux kernel | |
6407 | |
6408 ia64 specific | |
6409 | |
6410 * [300]10907 gcc violates the ia64 ABI (GP must be preserved) | |
6411 * [301]11320 scheduler bug (in machine depended reorganization pass) | |
6412 * [302]11599 bug with conditional and __builtin_prefetch | |
6413 | |
6414 PowerPC specific | |
6415 | |
6416 * [303]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem | |
6417 during loop) | |
6418 * [304]10871 error in rs6000_stack_info save_size computation | |
6419 * [305]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse | |
6420 cures it | |
6421 | |
6422 m68k-specific | |
6423 | |
6424 * [306]7594 [m68k] ICE on legal code associated with simplify-rtx | |
6425 * [307]10557 [m68k] ICE in subreg_offset_representable_p | |
6426 * [308]11054 [m68k] ICE in reg_overlap_mentioned_p | |
6427 | |
6428 ARM-specific | |
6429 | |
6430 * [309]10834 [arm] GCC 3.3 still generates incorrect instructions for | |
6431 functions with __attribute__ ((interrupt ("IRQ"))) | |
6432 * [310]10842 [arm] Clobbered link register is copied to pc under | |
6433 certain circumstances | |
6434 * [311]11052 [arm] noce_process_if_block() can lose REG_INC notes | |
6435 * [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno | |
6436 (3.4) | |
6437 | |
6438 MIPS-specific | |
6439 | |
6440 * [313]11084 ICE in propagate_one_insn, in flow.c | |
6441 | |
6442 SH-specific | |
6443 | |
6444 * [314]10331 can't compile c++ part of gcc cross compiler for sh-elf | |
6445 * [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c | |
6446 * [316]11096 i686-linux to sh-linux cross compiler fails to compile | |
6447 C++ files | |
6448 | |
6449 GNU/Linux (or Hurd?) specific | |
6450 | |
6451 * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3 | |
6452 | |
6453 UnixWare specific | |
6454 | |
6455 * [318]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare | |
6456 7.1.1 | |
6457 | |
6458 Cygwin (or mingw) specific | |
6459 | |
6460 * [319]5287 ICE with dllimport attribute | |
6461 * [320]10148 [MingW/CygWin] Compiler dumps core | |
6462 | |
6463 DJGPP specific | |
6464 | |
6465 * [321]8787 GCC fails to emit .intel_syntax when invoked with | |
6466 -masm=intel on DJGPP | |
6467 | |
6468 Darwin (and MacOS X) specific | |
6469 | |
6470 * [322]10900 trampolines crash | |
6471 | |
6472 Documentation | |
6473 | |
6474 * [323]1607 (c++) Format attributes on methods undocumented | |
6475 * [324]4252 Invalid option `-fdump-translation-unit' | |
6476 * [325]4490 Clarify restrictions on -m96bit-long-double, | |
6477 -m128bit-long-double | |
6478 * [326]10355 document an issue with regparm attribute on some systems | |
6479 (e.g. Solaris) | |
6480 * [327]10726 (fortran) Documentation for function "IDate Intrinsic | |
6481 (Unix)" is wrong | |
6482 * [328]10805 document bug in old version of Sun assembler | |
6483 * [329]10815 warn against GNU binutils on AIX | |
6484 * [330]10877 document need for newer binutils on i?86-*-linux-gnu | |
6485 * [331]11280 Manual incorrect with respect to -freorder-blocks | |
6486 * [332]11466 Document -mlittle-endian and its restrictions for the | |
6487 sparc64 port | |
6488 | |
6489 Testsuite bugs (compiler itself is not affected) | |
6490 | |
6491 * [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly | |
6492 report failure | |
6493 * [334]10810 gcc-3.3 fails make check: buffer overrun in | |
6494 test_demangle.c | |
6495 __________________________________________________________________ | |
6496 | |
6497 GCC 3.3.2 | |
6498 | |
6499 Bug Fixes | |
6500 | |
6501 This section lists the problem reports (PRs) from [335]GCC's bug | |
6502 tracking system that are known to be fixed in the 3.3.2 release. This | |
6503 list might not be complete (that is, it is possible that some PRs that | |
6504 have been fixed are not listed here). | |
6505 | |
6506 Bootstrap failures and problems | |
6507 | |
6508 * [336]8336 [SCO5] bootstrap config still tries to use COFF options | |
6509 * [337]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with | |
6510 --enable-threads=posix | |
6511 * [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap | |
6512 * [339]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare | |
6513 7.1.1) | |
6514 * [340]11687 xstormy16-elf build fails in libf2c | |
6515 * [341]12263 [SGI IRIX] bootstrap fails during compile of | |
6516 libf2c/libI77/backspace.c | |
6517 * [342]12490 buffer overflow in scan-decls.c (during Solaris 9 | |
6518 fix-header processing) | |
6519 | |
6520 Internal compiler errors (multi-platform) | |
6521 | |
6522 * [343]7277 Casting integers to vector types causes ICE | |
6523 * [344]7939 (c++) ICE on invalid function template specialization | |
6524 * [345]11063 (c++) ICE on parsing initialization list of const array | |
6525 member | |
6526 * [346]11207 ICE with negative index in array element designator | |
6527 * [347]11522 (fortran) g77 dwarf-2 ICE in | |
6528 add_abstract_origin_attribute | |
6529 * [348]11595 (c++) ICE on duplicate label definition | |
6530 * [349]11646 (c++) ICE in commit_one_edge_insertion with | |
6531 -fnon-call-exceptions -fgcse -O | |
6532 * [350]11665 ICE in struct initializer when taking address | |
6533 * [351]11852 (c++) ICE with bad struct initializer. | |
6534 * [352]11878 (c++) ICE in cp_expr_size | |
6535 * [353]11883 ICE with any -O on mercury-generated C code | |
6536 * [354]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in | |
6537 cp/typeck2.c when applying typeid operator to template template | |
6538 parameter | |
6539 * [355]12146 ICE in lookup_template_function, in cp/pt.c | |
6540 * [356]12215 ICE in make_label_edge with -fnon-call-exceptions | |
6541 -fno-gcse -O2 | |
6542 * [357]12369 (c++) ICE with templates and friends | |
6543 * [358]12446 ICE in emit_move_insn on complicated array reference | |
6544 * [359]12510 ICE in final_scan_insn | |
6545 * [360]12544 ICE with large parameters used in nested functions | |
6546 | |
6547 C and optimization bugs | |
6548 | |
6549 * [361]9862 spurious warnings with -W -finline-functions | |
6550 * [362]10962 lookup_field is a linear search on a linked list (can be | |
6551 slow if large struct) | |
6552 * [363]11370 -Wunreachable-code gives false complaints | |
6553 * [364]11637 invalid assembly with -fnon-call-exceptions | |
6554 * [365]11885 Problem with bitfields in packed structs | |
6555 * [366]12082 Inappropriate unreachable code warnings | |
6556 * [367]12180 Inline optimization fails for variadic function | |
6557 * [368]12340 loop unroller + gcse produces wrong code | |
6558 | |
6559 C++ compiler and library | |
6560 | |
6561 * [369]3907 nested template parameter collides with member name | |
6562 * [370]5293 confusing message when binding a temporary to a reference | |
6563 * [371]5296 [DR115] Pointers to functions and to template functions | |
6564 behave differently in deduction | |
6565 * [372]7939 ICE on function template specialization | |
6566 * [373]8656 Unable to assign function with __attribute__ and pointer | |
6567 return type to an appropriate variable | |
6568 * [374]10147 Confusing error message for invalid template function | |
6569 argument | |
6570 * [375]11400 std::search_n() makes assumptions about Size parameter | |
6571 * [376]11409 issues with using declarations, overloading, and | |
6572 built-in functions | |
6573 * [377]11740 ctype<wchar_t>::do_is(mask, wchar_t) doesn't handle | |
6574 multiple bits in mask | |
6575 * [378]11786 operator() call on variable in other namespace not | |
6576 recognized | |
6577 * [379]11867 static_cast ignores ambiguity | |
6578 * [380]11928 bug with conversion operators that are typedefs | |
6579 * [381]12114 Uninitialized memory accessed in dtor | |
6580 * [382]12163 static_cast + explicit constructor regression | |
6581 * [383]12181 Wrong code with comma operator and c++ | |
6582 * [384]12236 regparm and fastcall messes up parameters | |
6583 * [385]12266 incorrect instantiation of unneeded template during | |
6584 overload resolution | |
6585 * [386]12296 istream::peek() doesn't set eofbit | |
6586 * [387]12298 [sjlj exceptions] Stack unwind destroys | |
6587 not-yet-constructed object | |
6588 * [388]12369 ICE with templates and friends | |
6589 * [389]12337 apparently infinite loop in g++ | |
6590 * [390]12344 stdcall attribute ignored if function returns a pointer | |
6591 * [391]12451 missing(late) class forward declaration in cxxabi.h | |
6592 * [392]12486 g++ accepts invalid use of a qualified name | |
6593 | |
6594 x86 specific (Intel/AMD) | |
6595 | |
6596 * [393]8869 [x86 MMX] ICE with const variable optimization and MMX | |
6597 builtins | |
6598 * [394]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions | |
6599 -O2 | |
6600 * [395]11689 g++3.3 emits un-assembleable code for k6 architecture | |
6601 * [396]12116 [k6] Invalid assembly output values with X-MAME code | |
6602 * [397]12070 ICE converting between double and long double with | |
6603 -msoft-float | |
6604 | |
6605 ia64-specific | |
6606 | |
6607 * [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc | |
6608 * [399]11535 __builtin_return_address may not work on ia64 | |
6609 * [400]11693 [ia64] ICE in gen_nop_type | |
6610 * [401]12224 [ia64] Thread-local storage doesn't work | |
6611 | |
6612 PowerPC-specific | |
6613 | |
6614 * [402]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux | |
6615 kernel | |
6616 * [403]11319 loop miscompiled on ppc32 | |
6617 * [404]11949 ICE Compiler segfault with ffmpeg -maltivec code | |
6618 | |
6619 SPARC-specific | |
6620 | |
6621 * [405]11662 wrong code for expr. with cast to long long and | |
6622 exclusive or | |
6623 * [406]11965 invalid assembler code for a shift < 32 operation | |
6624 * [407]12301 (c++) stack corruption when a returned expression throws | |
6625 an exception | |
6626 | |
6627 Alpha-specific | |
6628 | |
6629 * [408]11717 [alpha-linux] unrecognizable insn compiling for.c of | |
6630 kernel 2.4.22-pre8 | |
6631 | |
6632 HPUX-specific | |
6633 | |
6634 * [409]11313 problem with #pragma weak and static inline functions | |
6635 * [410]11712 __STDC_EXT__ not defined for C++ by default anymore? | |
6636 | |
6637 Solaris specific | |
6638 | |
6639 * [411]12166 Profiled programs crash if PROFDIR is set | |
6640 | |
6641 Solaris-x86 specific | |
6642 | |
6643 * [412]12101 i386 Solaris no longer works with GNU as? | |
6644 | |
6645 Miscellaneous embedded target-specific bugs | |
6646 | |
6647 * [413]10988 [m32r-elf] wrong blockmove code with -O3 | |
6648 * [414]11805 [h8300-unknown-coff] [H8300] ICE for simple code with | |
6649 -O2 | |
6650 * [415]11902 [sh4] spec file improperly inserts rpath even when none | |
6651 needed | |
6652 * [416]11903 [sh4] -pthread fails to link due to error in spec file | |
6653 on sh4 | |
6654 __________________________________________________________________ | |
6655 | |
6656 GCC 3.3.3 | |
6657 | |
6658 Minor features | |
6659 | |
6660 In addition to the bug fixes documented below, this release contains | |
6661 few minor features such as: | |
6662 * Support for --with-sysroot | |
6663 * Support for automatic detection of executable stacks | |
6664 * Support for SSE3 instructions | |
6665 * Support for thread local storage debugging under GDB on S390 | |
6666 | |
6667 Bug Fixes | |
6668 | |
6669 This section lists the problem reports (PRs) from [417]GCC's bug | |
6670 tracking system that are known to be fixed in the 3.3.3 release. This | |
6671 list might not be complete (that is, it is possible that some PRs that | |
6672 have been fixed are not listed here). | |
6673 | |
6674 Bootstrap failures and issues | |
6675 | |
6676 * [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails | |
6677 * [419]12399 boehm-gc fails (when building a cross compiler): libtool | |
6678 unable to infer tagged configuration | |
6679 * [420]13068 mklibgcc.in doesn't handle multi-level multilib | |
6680 subdirectories properly | |
6681 | |
6682 Internal compiler errors (multi-platform) | |
6683 | |
6684 * [421]10060 ICE (stack overflow) on huge file (300k lines) due to | |
6685 recursive behaviour of copy_rtx_if_shared, in emit_rtl.c | |
6686 * [422]10555 (c++) ICE on undefined template argument | |
6687 * [423]10706 (c++) ICE in mangle_class_name_for_template | |
6688 * [424]11496 (fortran) error in flow_loops_find when -funroll-loops | |
6689 active | |
6690 * [425]11741 ICE in pre_insert_copy_insn, in gcse.c | |
6691 * [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0 | |
6692 * [427]12632 (fortran) -fbounds-check ICE | |
6693 * [428]12712 (c++) ICE on short legit C++ code fragment with gcc | |
6694 3.3.2 | |
6695 * [429]12726 (c++) ICE (segfault) on trivial code | |
6696 * [430]12890 (c++) ICE on compilation of class with throwing method | |
6697 * [431]12900 (c++) ICE in rtl_verify_flow_info_1 | |
6698 * [432]13060 (fortran) ICE in fixup_var_refs_1, in function.c on | |
6699 correct code with -O2 -fno-force-mem | |
6700 * [433]13289 (c++) ICE in regenerate_decl_from_template on recursive | |
6701 template | |
6702 * [434]13318 ICE: floating point exception in the loop optimizer | |
6703 * [435]13392 (c++) ICE in convert_from_eh_region_ranges_1, in | |
6704 except.c | |
6705 * [436]13574 (c++) invalid array default initializer in class lets | |
6706 gcc consume all memory and die | |
6707 * [437]13475 ICE on SIMD variables with partial value initialization | |
6708 * [438]13797 (c++) ICE on invalid template parameter | |
6709 * [439]13824 (java) gcj SEGV with simple .java program | |
6710 | |
6711 C and optimization bugs | |
6712 | |
6713 * [440]8776 loop invariants are not removed (most likely) | |
6714 * [441]10339 [sparc,ppc,ppc64] Invalid optimization: replacing | |
6715 strncmp by memcmp | |
6716 * [442]11350 undefined labels with -Os -fPIC | |
6717 * [443]12826 Optimizer removes reference through volatile pointer | |
6718 * [444]12500 stabs debug info: void no longer a predefined / builtin | |
6719 type | |
6720 * [445]12941 builtin-bitops-1.c miscompilation (latent bug) | |
6721 * [446]12953 tree inliner bug (in inline_forbidden_p) and fix | |
6722 * [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled | |
6723 * [448]13507 spurious printf format warning | |
6724 * [449]13382 Type information for const pointer disappears during | |
6725 optimization. | |
6726 * [450]13394 noreturn attribute ignored on recursive invokation | |
6727 * [451]13400 Compiled code crashes storing to read-only location | |
6728 * [452]13521 Endless loop in calculate_global_regs_live | |
6729 | |
6730 C++ compiler and library | |
6731 | |
6732 Some of the bug fixes in this list were made to implement decisions | |
6733 that the ISO C++ standards committee has made concerning several defect | |
6734 reports (DRs). Links in the list below point to detailed discussion of | |
6735 the relevant defect report. | |
6736 * [453]2094 unimplemented: use of `ptrmem_cst' in template type | |
6737 unification | |
6738 * [454]2294 using declaration confusion | |
6739 * [455]5050 template instantiation depth exceeds limit: recursion | |
6740 problem? | |
6741 * [456]9371 Bad exception handling in | |
6742 i/ostream::operator>>/<<(streambuf*) | |
6743 * [457]9546 bad exception handling in ostream members | |
6744 * [458]10081 basic_ios::_M_cache_locale leaves NULL members in the | |
6745 face of unknown locales | |
6746 * [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work | |
6747 * [461]10095 istream::operator>>(int&) sets ios::badbit when | |
6748 ios::failbit is set. | |
6749 * [462]11554 Warning about reordering of initializers doesn't mention | |
6750 location of constructor | |
6751 * [463]12297 istream::sentry::sentry() handles eof() incorrectly. | |
6752 * [464]12352 Exception safety problems in src/localename.cc | |
6753 * [465]12438 Memory leak in locale::combine() | |
6754 * [466]12540 Memory leak in locale::locale(const char*) | |
6755 * [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented | |
6756 * [470]12657 Resolution of [471]DR 292 (WP) still unimplemented | |
6757 * [472]12696 memory eating infinite loop in diagnostics (error | |
6758 recovery problem) | |
6759 * [473]12815 Code compiled with optimization behaves unexpectedly | |
6760 * [474]12862 Conflicts between typedefs/enums and namespace member | |
6761 declarations | |
6762 * [475]12926 Wrong value after assignment in initialize list using | |
6763 bit-fields | |
6764 * [476]12967 Resolution of [477]DR 300 [WP] still unimplemented | |
6765 * [478]12971 Resolution of [479]DR 328 [WP] still unimplemented | |
6766 * [480]13007 basic_streambuf::pubimbue, imbue wrong | |
6767 * [481]13009 Implicitly-defined assignment operator writes to wrong | |
6768 memory | |
6769 * [482]13057 regparm attribute not applied to destructor | |
6770 * [483]13070 -Wformat option ignored in g++ | |
6771 * [484]13081 forward template declarations in <complex> let inlining | |
6772 fail | |
6773 * [485]13239 Assertion does not seem to work correctly anymore | |
6774 * [486]13262 "xxx is private within this context" when initializing a | |
6775 self-contained template class | |
6776 * [487]13290 simple typo in concept checking for std::generate_n | |
6777 * [488]13323 Template code does not compile in presence of typedef | |
6778 * [489]13369 __verify_grouping (and __add_grouping?) not correct | |
6779 * [490]13371 infinite loop with packed struct and inlining | |
6780 * [491]13445 Template argument replacement "dereferences" a typedef | |
6781 * [492]13461 Fails to access protected-ctor from public constant | |
6782 * [493]13462 Non-standard-conforming type set::pointer | |
6783 * [494]13478 gcc uses wrong constructor to initialize a const | |
6784 reference | |
6785 * [495]13544 "conflicting types" for enums in different scopes | |
6786 * [496]13650 string::compare should not (always) use | |
6787 traits_type::length() | |
6788 * [497]13683 bogus warning about passing non-PODs through ellipsis | |
6789 * [498]13688 Derived class is denied access to protected base class | |
6790 member class | |
6791 * [499]13774 Member variable cleared in virtual multiple inheritance | |
6792 class | |
6793 * [500]13884 Protect sstream.tcc from extern template use | |
6794 | |
6795 Java compiler and library | |
6796 | |
6797 * [501]10746 [win32] garbage collection crash in GCJ | |
6798 | |
6799 Objective-C compiler and library | |
6800 | |
6801 * [502]11433 Crash due to dereferencing null pointer when querying | |
6802 protocol | |
6803 | |
6804 Fortran compiler and library | |
6805 | |
6806 * [503]12633 logical expression gives incorrect result with | |
6807 -fugly-logint option | |
6808 * [504]13037 [gcse-lm] g77 generates incorrect code | |
6809 * [505]13213 Hex constant problem when compiling with -fugly-logint | |
6810 and -ftypeless-boz | |
6811 | |
6812 x86-specific (Intel/AMD) | |
6813 | |
6814 * [506]4490 ICE with -m128bit-long-double | |
6815 * [507]12292 [x86_64] ICE: RTL check: expected code `const_int', have | |
6816 `reg' in make_field_assignment, in combine.c | |
6817 * [508]12441 ICE: can't find a register to spill | |
6818 * [509]12943 array static-init failure under -fpic, -fPIC | |
6819 * [510]13608 Incorrect code with -O3 -ffast-math | |
6820 | |
6821 PowerPC-specific | |
6822 | |
6823 * [511]11598 testcase gcc.dg/20020118-1.c fails runtime check of | |
6824 __attribute__((aligned(16))) | |
6825 * [512]11793 ICE in extract_insn, in recog.c (const_vector's) | |
6826 * [513]12467 vmsumubm emitted when vmsummbm appropriate (typo in | |
6827 altivec.md) | |
6828 * [514]12537 g++ generates writeable text sections | |
6829 | |
6830 SPARC-specific | |
6831 | |
6832 * [515]12496 wrong result for __atomic_add(&value, -1) when using -O0 | |
6833 -m64 | |
6834 * [516]12865 mprotect call to make trampoline executable may fail | |
6835 * [517]13354 ICE in sparc_emit_set_const32 | |
6836 | |
6837 ARM-specific | |
6838 | |
6839 * [518]10467 [arm] ICE in pre_insert_copy_insn, | |
6840 | |
6841 ia64-specific | |
6842 | |
6843 * [519]11226 ICE passing struct arg with two floats | |
6844 * [520]11227 ICE for _Complex float, _Complex long double args | |
6845 * [521]12644 GCC 3.3.2 fails to compile glibc on ia64 | |
6846 * [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn | |
6847 * Various fixes for libunwind | |
6848 | |
6849 Alpha-specific | |
6850 | |
6851 * [523]12654 Incorrect comparison code generated for Alpha | |
6852 * [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2 | |
6853 * [525]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2 | |
6854 | |
6855 HPPA-specific | |
6856 | |
6857 * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c | |
6858 * [527]12158 [hppa] compilation does not terminate at -O1 | |
6859 | |
6860 S390-specific | |
6861 | |
6862 * [528]11992 Wrong built-in code for memcmp with length 1<<24: only | |
6863 (1<<24)-1 possible for CLCL-Instruction | |
6864 | |
6865 SH-specific | |
6866 | |
6867 * [529]9365 segfault in gen_far_branch (config/sh/sh.c) | |
6868 * [530]10392 optimizer generates faulty array indexing | |
6869 * [531]11322 SH profiler outputs multiple definitions of symbol | |
6870 * [532]13069 gcc/config/sh/rtems.h broken | |
6871 * [533]13302 Putting a va_list in a struct causes seg fault | |
6872 * [534]13585 Incorrect optimization of call to sfunc | |
6873 * Fix inappropriately exported libgcc functions from the shared | |
6874 library | |
6875 | |
6876 Other embedded target specific | |
6877 | |
6878 * [535]8916 [mcore] unsigned char assign gets hosed. | |
6879 * [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c | |
6880 * [537]13122 [h8300] local variable gets corrupted by function call | |
6881 when -fomit-frame-pointer is given | |
6882 * [538]13256 [cris] strict_low_part mistreated in delay slots | |
6883 * [539]13373 [mcore] optimization with -frerun-cse-after-loop | |
6884 -fexpensive-optimizations produces wrong code on mcore | |
6885 | |
6886 GNU HURD-specific | |
6887 | |
6888 * [540]12561 gcc/config/t-gnu needs updating to work with | |
6889 --with-sysroot | |
6890 | |
6891 Tru64 Unix specific | |
6892 | |
6893 * [541]6243 testsuite fails almost all tests due to no libintl in | |
6894 LD_LIBRARY_PATH during test. | |
6895 * [542]11397 weak aliases broken on Tru64 UNIX | |
6896 | |
6897 AIX-specific | |
6898 | |
6899 * [543]12505 build failure due to defines of uchar in cpphash.h and | |
6900 sys/types.h | |
6901 * [544]13150 WEAK symbols not exported by collect2 | |
6902 | |
6903 IRIX-specific | |
6904 | |
6905 * [545]12666 fixincludes problem on IRIX 6.5.19m | |
6906 | |
6907 Solaris-specific | |
6908 | |
6909 * [546]12969 Including sys/byteorder.h breaks configure checks | |
6910 | |
6911 Testsuite problems (compiler is not affected) | |
6912 | |
6913 * [547]10819 testsuite creates CR+LF on compiler version lines in | |
6914 test summary files | |
6915 * [548]11612 abi_check not finding correct libgcc_s.so.1 | |
6916 | |
6917 Miscellaneous | |
6918 | |
6919 * [549]13211 using -###, incorrect warnings about unused linker file | |
6920 are produced | |
6921 __________________________________________________________________ | |
6922 | |
6923 GCC 3.3.4 | |
6924 | |
6925 This is the [550]list of problem reports (PRs) from GCC's bug tracking | |
6926 system that are known to be fixed in the 3.3.4 release. This list might | |
6927 not be complete (that is, it is possible that some PRs that have been | |
6928 fixed are not listed here). | |
6929 __________________________________________________________________ | |
6930 | |
6931 GCC 3.3.5 | |
6932 | |
6933 This is the [551]list of problem reports (PRs) from GCC's bug tracking | |
6934 system that are known to be fixed in the 3.3.5 release. This list might | |
6935 not be complete (that is, it is possible that some PRs that have been | |
6936 fixed are not listed here). | |
6937 __________________________________________________________________ | |
6938 | |
6939 GCC 3.3.6 | |
6940 | |
6941 This is the [552]list of problem reports (PRs) from GCC's bug tracking | |
6942 system that are known to be fixed in the 3.3.6 release. This list might | |
6943 not be complete (that is, it is possible that some PRs that have been | |
6944 fixed are not listed here). | |
6945 | |
6946 Please send FSF & GNU inquiries & questions to [553]gnu@gnu.org. There | |
6947 are also [554]other ways to contact the FSF. | |
6948 | |
6949 These pages are maintained by [555]the GCC team. | |
6950 | |
6951 | |
6952 For questions related to the use of GCC, please consult these web | |
6953 pages and the [556]GCC manuals. If that fails, the | |
6954 [557]gcc-help@gcc.gnu.org mailing list might help. | |
6955 Please send comments on these web pages and the development of GCC to | |
6956 our developer mailing list at [558]gcc@gnu.org or | |
6957 [559]gcc@gcc.gnu.org. All of our lists have [560]public archives. | |
6958 | |
6959 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
6960 Floor, Boston, MA 02110, USA. | |
6961 | |
6962 Verbatim copying and distribution of this entire article is permitted | |
6963 in any medium, provided this notice is preserved. | |
6964 Last modified 2007-08-20 [561]Valid XHTML 1.0 | |
6965 | |
6966 References | |
6967 | |
6968 1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 | |
6969 2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems | |
6970 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems | |
6971 4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute | |
6972 5. http://gcc.gnu.org/news/dfa.html | |
6973 6. http://gcc.gnu.org/gcc-3.3/c99status.html | |
6974 7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html | |
6975 8. http://gcc.gnu.org/PR10140 | |
6976 9. http://gcc.gnu.org/PR10198 | |
6977 10. http://gcc.gnu.org/PR10338 | |
6978 11. http://gcc.gnu.org/PR3581 | |
6979 12. http://gcc.gnu.org/PR4382 | |
6980 13. http://gcc.gnu.org/PR5533 | |
6981 14. http://gcc.gnu.org/PR6387 | |
6982 15. http://gcc.gnu.org/PR6412 | |
6983 16. http://gcc.gnu.org/PR6620 | |
6984 17. http://gcc.gnu.org/PR6663 | |
6985 18. http://gcc.gnu.org/PR7068 | |
6986 19. http://gcc.gnu.org/PR7083 | |
6987 20. http://gcc.gnu.org/PR7647 | |
6988 21. http://gcc.gnu.org/PR7675 | |
6989 22. http://gcc.gnu.org/PR7718 | |
6990 23. http://gcc.gnu.org/PR8116 | |
6991 24. http://gcc.gnu.org/PR8358 | |
6992 25. http://gcc.gnu.org/PR8511 | |
6993 26. http://gcc.gnu.org/PR8564 | |
6994 27. http://gcc.gnu.org/PR8660 | |
6995 28. http://gcc.gnu.org/PR8766 | |
6996 29. http://gcc.gnu.org/PR8803 | |
6997 30. http://gcc.gnu.org/PR8846 | |
6998 31. http://gcc.gnu.org/PR8906 | |
6999 32. http://gcc.gnu.org/PR9216 | |
7000 33. http://gcc.gnu.org/PR9261 | |
7001 34. http://gcc.gnu.org/PR9263 | |
7002 35. http://gcc.gnu.org/PR9429 | |
7003 36. http://gcc.gnu.org/PR9516 | |
7004 37. http://gcc.gnu.org/PR9600 | |
7005 38. http://gcc.gnu.org/PR9629 | |
7006 39. http://gcc.gnu.org/PR9672 | |
7007 40. http://gcc.gnu.org/PR9749 | |
7008 41. http://gcc.gnu.org/PR9794 | |
7009 42. http://gcc.gnu.org/PR9829 | |
7010 43. http://gcc.gnu.org/PR9916 | |
7011 44. http://gcc.gnu.org/PR9936 | |
7012 45. http://gcc.gnu.org/PR10262 | |
7013 46. http://gcc.gnu.org/PR10278 | |
7014 47. http://gcc.gnu.org/PR10446 | |
7015 48. http://gcc.gnu.org/PR10451 | |
7016 49. http://gcc.gnu.org/PR10506 | |
7017 50. http://gcc.gnu.org/PR10549 | |
7018 51. http://gcc.gnu.org/PR2001 | |
7019 52. http://gcc.gnu.org/PR2391 | |
7020 53. http://gcc.gnu.org/PR2960 | |
7021 54. http://gcc.gnu.org/PR4046 | |
7022 55. http://gcc.gnu.org/PR6405 | |
7023 56. http://gcc.gnu.org/PR6798 | |
7024 57. http://gcc.gnu.org/PR6871 | |
7025 58. http://gcc.gnu.org/PR6909 | |
7026 59. http://gcc.gnu.org/PR7189 | |
7027 60. http://gcc.gnu.org/PR7642 | |
7028 61. http://gcc.gnu.org/PR8634 | |
7029 62. http://gcc.gnu.org/PR8750 | |
7030 63. http://gcc.gnu.org/PR2161 | |
7031 64. http://gcc.gnu.org/PR4319 | |
7032 65. http://gcc.gnu.org/PR8602 | |
7033 66. http://gcc.gnu.org/PR9177 | |
7034 67. http://gcc.gnu.org/PR9853 | |
7035 68. http://gcc.gnu.org/PR45 | |
7036 69. http://gcc.gnu.org/PR3784 | |
7037 70. http://gcc.gnu.org/PR764 | |
7038 71. http://gcc.gnu.org/PR5116 | |
7039 72. http://gcc.gnu.org/PR2862 | |
7040 73. http://gcc.gnu.org/PR3663 | |
7041 74. http://gcc.gnu.org/PR3797 | |
7042 75. http://gcc.gnu.org/PR3948 | |
7043 76. http://gcc.gnu.org/PR4137 | |
7044 77. http://gcc.gnu.org/PR4361 | |
7045 78. http://gcc.gnu.org/PR4802 | |
7046 79. http://gcc.gnu.org/PR5837 | |
7047 80. http://gcc.gnu.org/PR4803 | |
7048 81. http://gcc.gnu.org/PR5094 | |
7049 82. http://gcc.gnu.org/PR5730 | |
7050 83. http://gcc.gnu.org/PR6713 | |
7051 84. http://gcc.gnu.org/PR7015 | |
7052 85. http://gcc.gnu.org/PR7086 | |
7053 86. http://gcc.gnu.org/PR7099 | |
7054 87. http://gcc.gnu.org/PR7247 | |
7055 88. http://gcc.gnu.org/PR7441 | |
7056 89. http://gcc.gnu.org/PR7768 | |
7057 90. http://gcc.gnu.org/PR7804 | |
7058 91. http://gcc.gnu.org/PR8099 | |
7059 92. http://gcc.gnu.org/PR8117 | |
7060 93. http://gcc.gnu.org/PR8205 | |
7061 94. http://gcc.gnu.org/PR8645 | |
7062 95. http://gcc.gnu.org/PR8724 | |
7063 96. http://gcc.gnu.org/PR8805 | |
7064 97. http://gcc.gnu.org/PR8691 | |
7065 98. http://gcc.gnu.org/PR8700 | |
7066 99. http://gcc.gnu.org/PR8724 | |
7067 100. http://gcc.gnu.org/PR8949 | |
7068 101. http://gcc.gnu.org/PR9016 | |
7069 102. http://gcc.gnu.org/PR9053 | |
7070 103. http://gcc.gnu.org/PR9152 | |
7071 104. http://gcc.gnu.org/PR9182 | |
7072 105. http://gcc.gnu.org/PR9297 | |
7073 106. http://gcc.gnu.org/PR9318 | |
7074 107. http://gcc.gnu.org/PR9320 | |
7075 108. http://gcc.gnu.org/PR9400 | |
7076 109. http://gcc.gnu.org/PR9424 | |
7077 110. http://gcc.gnu.org/PR9425 | |
7078 111. http://gcc.gnu.org/PR9439 | |
7079 112. http://gcc.gnu.org/PR9474 | |
7080 113. http://gcc.gnu.org/PR9548 | |
7081 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 | |
7082 115. http://gcc.gnu.org/PR9555 | |
7083 116. http://gcc.gnu.org/PR9561 | |
7084 117. http://gcc.gnu.org/PR9563 | |
7085 118. http://gcc.gnu.org/PR9582 | |
7086 119. http://gcc.gnu.org/PR9622 | |
7087 120. http://gcc.gnu.org/PR9683 | |
7088 121. http://gcc.gnu.org/PR9791 | |
7089 122. http://gcc.gnu.org/PR9817 | |
7090 123. http://gcc.gnu.org/PR9825 | |
7091 124. http://gcc.gnu.org/PR9826 | |
7092 125. http://gcc.gnu.org/PR9924 | |
7093 126. http://gcc.gnu.org/PR9946 | |
7094 127. http://gcc.gnu.org/PR9964 | |
7095 128. http://gcc.gnu.org/PR9988 | |
7096 129. http://gcc.gnu.org/PR10033 | |
7097 130. http://gcc.gnu.org/PR10097 | |
7098 131. http://gcc.gnu.org/PR10132 | |
7099 132. http://gcc.gnu.org/PR10180 | |
7100 133. http://gcc.gnu.org/PR10199 | |
7101 134. http://gcc.gnu.org/PR10300 | |
7102 135. http://gcc.gnu.org/PR10427 | |
7103 136. http://gcc.gnu.org/PR10503 | |
7104 137. http://gcc.gnu.org/PR5956 | |
7105 138. http://gcc.gnu.org/PR1832 | |
7106 139. http://gcc.gnu.org/PR3924 | |
7107 140. http://gcc.gnu.org/PR5634 | |
7108 141. http://gcc.gnu.org/PR6367 | |
7109 142. http://gcc.gnu.org/PR6491 | |
7110 143. http://gcc.gnu.org/PR6742 | |
7111 144. http://gcc.gnu.org/PR7113 | |
7112 145. http://gcc.gnu.org/PR7236 | |
7113 146. http://gcc.gnu.org/PR7278 | |
7114 147. http://gcc.gnu.org/PR7384 | |
7115 148. http://gcc.gnu.org/PR7388 | |
7116 149. http://gcc.gnu.org/PR8587 | |
7117 150. http://gcc.gnu.org/PR9038 | |
7118 151. http://gcc.gnu.org/PR10197 | |
7119 152. http://gcc.gnu.org/PR6005 | |
7120 153. http://gcc.gnu.org/PR6389 | |
7121 154. http://gcc.gnu.org/PR6576 | |
7122 155. http://gcc.gnu.org/PR6652 | |
7123 156. http://gcc.gnu.org/PR7060 | |
7124 157. http://gcc.gnu.org/PR7073 | |
7125 158. http://gcc.gnu.org/PR7180 | |
7126 159. http://gcc.gnu.org/PR7416 | |
7127 160. http://gcc.gnu.org/PR7570 | |
7128 161. http://gcc.gnu.org/PR7578 | |
7129 162. http://gcc.gnu.org/PR7611 | |
7130 163. http://gcc.gnu.org/PR7709 | |
7131 164. http://gcc.gnu.org/PR7766 | |
7132 165. http://gcc.gnu.org/PR7785 | |
7133 166. http://gcc.gnu.org/PR7786 | |
7134 167. http://gcc.gnu.org/PR8142 | |
7135 168. http://gcc.gnu.org/PR8234 | |
7136 169. http://gcc.gnu.org/PR8415 | |
7137 170. http://gcc.gnu.org/PR8481 | |
7138 171. http://gcc.gnu.org/PR8593 | |
7139 172. http://gcc.gnu.org/PR8759 | |
7140 173. http://gcc.gnu.org/PR8997 | |
7141 174. http://gcc.gnu.org/PR9253 | |
7142 175. http://gcc.gnu.org/PR9254 | |
7143 176. http://gcc.gnu.org/PR9271 | |
7144 177. http://gcc.gnu.org/PR6767 | |
7145 178. http://gcc.gnu.org/PR9911 | |
7146 179. http://gcc.gnu.org/PR10020 | |
7147 180. http://gcc.gnu.org/PR10546 | |
7148 181. http://gcc.gnu.org/PR7029 | |
7149 182. http://gcc.gnu.org/PR2903 | |
7150 183. http://gcc.gnu.org/PR7873 | |
7151 184. http://gcc.gnu.org/PR7680 | |
7152 185. http://gcc.gnu.org/PR8705 | |
7153 186. http://gcc.gnu.org/PR9986 | |
7154 187. http://gcc.gnu.org/PR10056 | |
7155 188. http://gcc.gnu.org/PR6744 | |
7156 189. http://gcc.gnu.org/PR7361 | |
7157 190. http://gcc.gnu.org/PR9496 | |
7158 191. http://gcc.gnu.org/PR7067 | |
7159 192. http://gcc.gnu.org/PR8480 | |
7160 193. http://gcc.gnu.org/PR8784 | |
7161 194. http://gcc.gnu.org/PR10315 | |
7162 195. http://gcc.gnu.org/PR10267 | |
7163 196. http://gcc.gnu.org/PR7916 | |
7164 197. http://gcc.gnu.org/PR7926 | |
7165 198. http://gcc.gnu.org/PR8555 | |
7166 199. http://gcc.gnu.org/PR8994 | |
7167 200. http://gcc.gnu.org/PR9426 | |
7168 201. http://gcc.gnu.org/PR9806 | |
7169 202. http://gcc.gnu.org/PR10077 | |
7170 203. http://gcc.gnu.org/PR10233 | |
7171 204. http://gcc.gnu.org/PR10286 | |
7172 205. http://gcc.gnu.org/PR10308 | |
7173 206. http://gcc.gnu.org/PR11272 | |
7174 207. http://gcc.gnu.org/PR5754 | |
7175 208. http://gcc.gnu.org/PR6597 | |
7176 209. http://gcc.gnu.org/PR6949 | |
7177 210. http://gcc.gnu.org/PR7053 | |
7178 211. http://gcc.gnu.org/PR8164 | |
7179 212. http://gcc.gnu.org/PR8384 | |
7180 213. http://gcc.gnu.org/PR9559 | |
7181 214. http://gcc.gnu.org/PR9649 | |
7182 215. http://gcc.gnu.org/PR9864 | |
7183 216. http://gcc.gnu.org/PR10432 | |
7184 217. http://gcc.gnu.org/PR10475 | |
7185 218. http://gcc.gnu.org/PR10635 | |
7186 219. http://gcc.gnu.org/PR10661 | |
7187 220. http://gcc.gnu.org/PR10700 | |
7188 221. http://gcc.gnu.org/PR10712 | |
7189 222. http://gcc.gnu.org/PR10796 | |
7190 223. http://gcc.gnu.org/PR10890 | |
7191 224. http://gcc.gnu.org/PR10939 | |
7192 225. http://gcc.gnu.org/PR10956 | |
7193 226. http://gcc.gnu.org/PR11041 | |
7194 227. http://gcc.gnu.org/PR11059 | |
7195 228. http://gcc.gnu.org/PR11083 | |
7196 229. http://gcc.gnu.org/PR11105 | |
7197 230. http://gcc.gnu.org/PR11149 | |
7198 231. http://gcc.gnu.org/PR11228 | |
7199 232. http://gcc.gnu.org/PR11282 | |
7200 233. http://gcc.gnu.org/PR11301 | |
7201 234. http://gcc.gnu.org/PR11308 | |
7202 235. http://gcc.gnu.org/PR11473 | |
7203 236. http://gcc.gnu.org/PR11503 | |
7204 237. http://gcc.gnu.org/PR11513 | |
7205 238. http://gcc.gnu.org/PR11198 | |
7206 239. http://gcc.gnu.org/PR11304 | |
7207 240. http://gcc.gnu.org/PR11381 | |
7208 241. http://gcc.gnu.org/PR11536 | |
7209 242. http://gcc.gnu.org/PR11557 | |
7210 243. http://gcc.gnu.org/PR5897 | |
7211 244. http://gcc.gnu.org/PR11279 | |
7212 245. http://gcc.gnu.org/PR11022 | |
7213 246. http://gcc.gnu.org/PR2330 | |
7214 247. http://gcc.gnu.org/PR5388 | |
7215 248. http://gcc.gnu.org/PR5390 | |
7216 249. http://gcc.gnu.org/PR7877 | |
7217 250. http://gcc.gnu.org/PR9393 | |
7218 251. http://gcc.gnu.org/PR10032 | |
7219 252. http://gcc.gnu.org/PR10468 | |
7220 253. http://gcc.gnu.org/PR10527 | |
7221 254. http://gcc.gnu.org/PR10679 | |
7222 255. http://gcc.gnu.org/PR10682 | |
7223 256. http://gcc.gnu.org/PR10689 | |
7224 257. http://gcc.gnu.org/PR10845 | |
7225 258. http://gcc.gnu.org/PR10849 | |
7226 259. http://gcc.gnu.org/PR10888 | |
7227 260. http://gcc.gnu.org/PR10929 | |
7228 261. http://gcc.gnu.org/PR10931 | |
7229 262. http://gcc.gnu.org/PR10940 | |
7230 263. http://gcc.gnu.org/PR10968 | |
7231 264. http://gcc.gnu.org/PR10990 | |
7232 265. http://gcc.gnu.org/PR11039 | |
7233 266. http://gcc.gnu.org/PR11062 | |
7234 267. http://gcc.gnu.org/PR11095 | |
7235 268. http://gcc.gnu.org/PR11098 | |
7236 269. http://gcc.gnu.org/PR11137 | |
7237 270. http://gcc.gnu.org/PR11154 | |
7238 271. http://gcc.gnu.org/PR11329 | |
7239 272. http://gcc.gnu.org/PR11332 | |
7240 273. http://gcc.gnu.org/PR11431 | |
7241 274. http://gcc.gnu.org/PR11528 | |
7242 275. http://gcc.gnu.org/PR11546 | |
7243 276. http://gcc.gnu.org/PR11567 | |
7244 277. http://gcc.gnu.org/PR11645 | |
7245 278. http://gcc.gnu.org/PR5179 | |
7246 279. http://gcc.gnu.org/PR8204 | |
7247 280. http://gcc.gnu.org/PR10838 | |
7248 281. http://gcc.gnu.org/PR10886 | |
7249 282. http://gcc.gnu.org/PR11349 | |
7250 283. http://gcc.gnu.org/PR4823 | |
7251 284. http://gcc.gnu.org/PR8878 | |
7252 285. http://gcc.gnu.org/PR9815 | |
7253 286. http://gcc.gnu.org/PR10402 | |
7254 287. http://gcc.gnu.org/PR10504 | |
7255 288. http://gcc.gnu.org/PR10673 | |
7256 289. http://gcc.gnu.org/PR11044 | |
7257 290. http://gcc.gnu.org/PR11089 | |
7258 291. http://gcc.gnu.org/PR11420 | |
7259 292. http://gcc.gnu.org/PR9362 | |
7260 293. http://gcc.gnu.org/PR10142 | |
7261 294. http://gcc.gnu.org/PR10663 | |
7262 295. http://gcc.gnu.org/PR10835 | |
7263 296. http://gcc.gnu.org/PR10876 | |
7264 297. http://gcc.gnu.org/PR10955 | |
7265 298. http://gcc.gnu.org/PR11018 | |
7266 299. http://gcc.gnu.org/PR11556 | |
7267 300. http://gcc.gnu.org/PR10907 | |
7268 301. http://gcc.gnu.org/PR11320 | |
7269 302. http://gcc.gnu.org/PR11599 | |
7270 303. http://gcc.gnu.org/PR9745 | |
7271 304. http://gcc.gnu.org/PR10871 | |
7272 305. http://gcc.gnu.org/PR11440 | |
7273 306. http://gcc.gnu.org/PR7594 | |
7274 307. http://gcc.gnu.org/PR10557 | |
7275 308. http://gcc.gnu.org/PR11054 | |
7276 309. http://gcc.gnu.org/PR10834 | |
7277 310. http://gcc.gnu.org/PR10842 | |
7278 311. http://gcc.gnu.org/PR11052 | |
7279 312. http://gcc.gnu.org/PR11183 | |
7280 313. http://gcc.gnu.org/PR11084 | |
7281 314. http://gcc.gnu.org/PR10331 | |
7282 315. http://gcc.gnu.org/PR10413 | |
7283 316. http://gcc.gnu.org/PR11096 | |
7284 317. http://gcc.gnu.org/PR2873 | |
7285 318. http://gcc.gnu.org/PR3163 | |
7286 319. http://gcc.gnu.org/PR5287 | |
7287 320. http://gcc.gnu.org/PR10148 | |
7288 321. http://gcc.gnu.org/PR8787 | |
7289 322. http://gcc.gnu.org/PR10900 | |
7290 323. http://gcc.gnu.org/PR1607 | |
7291 324. http://gcc.gnu.org/PR4252 | |
7292 325. http://gcc.gnu.org/PR4490 | |
7293 326. http://gcc.gnu.org/PR10355 | |
7294 327. http://gcc.gnu.org/PR10726 | |
7295 328. http://gcc.gnu.org/PR10805 | |
7296 329. http://gcc.gnu.org/PR10815 | |
7297 330. http://gcc.gnu.org/PR10877 | |
7298 331. http://gcc.gnu.org/PR11280 | |
7299 332. http://gcc.gnu.org/PR11466 | |
7300 333. http://gcc.gnu.org/PR10737 | |
7301 334. http://gcc.gnu.org/PR10810 | |
7302 335. http://gcc.gnu.org/bugzilla/ | |
7303 336. http://gcc.gnu.org/PR8336 | |
7304 337. http://gcc.gnu.org/PR9330 | |
7305 338. http://gcc.gnu.org/PR9631 | |
7306 339. http://gcc.gnu.org/PR9877 | |
7307 340. http://gcc.gnu.org/PR11687 | |
7308 341. http://gcc.gnu.org/PR12263 | |
7309 342. http://gcc.gnu.org/PR12490 | |
7310 343. http://gcc.gnu.org/PR7277 | |
7311 344. http://gcc.gnu.org/PR7939 | |
7312 345. http://gcc.gnu.org/PR11063 | |
7313 346. http://gcc.gnu.org/PR11207 | |
7314 347. http://gcc.gnu.org/PR11522 | |
7315 348. http://gcc.gnu.org/PR11595 | |
7316 349. http://gcc.gnu.org/PR11646 | |
7317 350. http://gcc.gnu.org/PR11665 | |
7318 351. http://gcc.gnu.org/PR11852 | |
7319 352. http://gcc.gnu.org/PR11878 | |
7320 353. http://gcc.gnu.org/PR11883 | |
7321 354. http://gcc.gnu.org/PR11991 | |
7322 355. http://gcc.gnu.org/PR12146 | |
7323 356. http://gcc.gnu.org/PR12215 | |
7324 357. http://gcc.gnu.org/PR12369 | |
7325 358. http://gcc.gnu.org/PR12446 | |
7326 359. http://gcc.gnu.org/PR12510 | |
7327 360. http://gcc.gnu.org/PR12544 | |
7328 361. http://gcc.gnu.org/PR9862 | |
7329 362. http://gcc.gnu.org/PR10962 | |
7330 363. http://gcc.gnu.org/PR11370 | |
7331 364. http://gcc.gnu.org/PR11637 | |
7332 365. http://gcc.gnu.org/PR11885 | |
7333 366. http://gcc.gnu.org/PR12082 | |
7334 367. http://gcc.gnu.org/PR12180 | |
7335 368. http://gcc.gnu.org/PR12340 | |
7336 369. http://gcc.gnu.org/PR3907 | |
7337 370. http://gcc.gnu.org/PR5293 | |
7338 371. http://gcc.gnu.org/PR5296 | |
7339 372. http://gcc.gnu.org/PR7939 | |
7340 373. http://gcc.gnu.org/PR8656 | |
7341 374. http://gcc.gnu.org/PR10147 | |
7342 375. http://gcc.gnu.org/PR11400 | |
7343 376. http://gcc.gnu.org/PR11409 | |
7344 377. http://gcc.gnu.org/PR11740 | |
7345 378. http://gcc.gnu.org/PR11786 | |
7346 379. http://gcc.gnu.org/PR11867 | |
7347 380. http://gcc.gnu.org/PR11928 | |
7348 381. http://gcc.gnu.org/PR12114 | |
7349 382. http://gcc.gnu.org/PR12163 | |
7350 383. http://gcc.gnu.org/PR12181 | |
7351 384. http://gcc.gnu.org/PR12236 | |
7352 385. http://gcc.gnu.org/PR12266 | |
7353 386. http://gcc.gnu.org/PR12296 | |
7354 387. http://gcc.gnu.org/PR12298 | |
7355 388. http://gcc.gnu.org/PR12369 | |
7356 389. http://gcc.gnu.org/PR12337 | |
7357 390. http://gcc.gnu.org/PR12344 | |
7358 391. http://gcc.gnu.org/PR12451 | |
7359 392. http://gcc.gnu.org/PR12486 | |
7360 393. http://gcc.gnu.org/PR8869 | |
7361 394. http://gcc.gnu.org/PR9786 | |
7362 395. http://gcc.gnu.org/PR11689 | |
7363 396. http://gcc.gnu.org/PR12116 | |
7364 397. http://gcc.gnu.org/PR12070 | |
7365 398. http://gcc.gnu.org/PR11184 | |
7366 399. http://gcc.gnu.org/PR11535 | |
7367 400. http://gcc.gnu.org/PR11693 | |
7368 401. http://gcc.gnu.org/PR12224 | |
7369 402. http://gcc.gnu.org/PR11087 | |
7370 403. http://gcc.gnu.org/PR11319 | |
7371 404. http://gcc.gnu.org/PR11949 | |
7372 405. http://gcc.gnu.org/PR11662 | |
7373 406. http://gcc.gnu.org/PR11965 | |
7374 407. http://gcc.gnu.org/PR12301 | |
7375 408. http://gcc.gnu.org/PR11717 | |
7376 409. http://gcc.gnu.org/PR11313 | |
7377 410. http://gcc.gnu.org/PR11712 | |
7378 411. http://gcc.gnu.org/PR12166 | |
7379 412. http://gcc.gnu.org/PR12101 | |
7380 413. http://gcc.gnu.org/PR10988 | |
7381 414. http://gcc.gnu.org/PR11805 | |
7382 415. http://gcc.gnu.org/PR11902 | |
7383 416. http://gcc.gnu.org/PR11903 | |
7384 417. http://gcc.gnu.org/bugzilla/ | |
7385 418. http://gcc.gnu.org/PR11890 | |
7386 419. http://gcc.gnu.org/PR12399 | |
7387 420. http://gcc.gnu.org/PR13068 | |
7388 421. http://gcc.gnu.org/PR10060 | |
7389 422. http://gcc.gnu.org/PR10555 | |
7390 423. http://gcc.gnu.org/PR10706 | |
7391 424. http://gcc.gnu.org/PR11496 | |
7392 425. http://gcc.gnu.org/PR11741 | |
7393 426. http://gcc.gnu.org/PR12440 | |
7394 427. http://gcc.gnu.org/PR12632 | |
7395 428. http://gcc.gnu.org/PR12712 | |
7396 429. http://gcc.gnu.org/PR12726 | |
7397 430. http://gcc.gnu.org/PR12890 | |
7398 431. http://gcc.gnu.org/PR12900 | |
7399 432. http://gcc.gnu.org/PR13060 | |
7400 433. http://gcc.gnu.org/PR13289 | |
7401 434. http://gcc.gnu.org/PR13318 | |
7402 435. http://gcc.gnu.org/PR13392 | |
7403 436. http://gcc.gnu.org/PR13574 | |
7404 437. http://gcc.gnu.org/PR13475 | |
7405 438. http://gcc.gnu.org/PR13797 | |
7406 439. http://gcc.gnu.org/PR13824 | |
7407 440. http://gcc.gnu.org/PR8776 | |
7408 441. http://gcc.gnu.org/PR10339 | |
7409 442. http://gcc.gnu.org/PR11350 | |
7410 443. http://gcc.gnu.org/PR12826 | |
7411 444. http://gcc.gnu.org/PR12500 | |
7412 445. http://gcc.gnu.org/PR12941 | |
7413 446. http://gcc.gnu.org/PR12953 | |
7414 447. http://gcc.gnu.org/PR13041 | |
7415 448. http://gcc.gnu.org/PR13507 | |
7416 449. http://gcc.gnu.org/PR13382 | |
7417 450. http://gcc.gnu.org/PR13394 | |
7418 451. http://gcc.gnu.org/PR13400 | |
7419 452. http://gcc.gnu.org/PR13521 | |
7420 453. http://gcc.gnu.org/PR2094 | |
7421 454. http://gcc.gnu.org/PR2294 | |
7422 455. http://gcc.gnu.org/PR5050 | |
7423 456. http://gcc.gnu.org/PR9371 | |
7424 457. http://gcc.gnu.org/PR9546 | |
7425 458. http://gcc.gnu.org/PR10081 | |
7426 459. http://gcc.gnu.org/PR10093 | |
7427 460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 | |
7428 461. http://gcc.gnu.org/PR10095 | |
7429 462. http://gcc.gnu.org/PR11554 | |
7430 463. http://gcc.gnu.org/PR12297 | |
7431 464. http://gcc.gnu.org/PR12352 | |
7432 465. http://gcc.gnu.org/PR12438 | |
7433 466. http://gcc.gnu.org/PR12540 | |
7434 467. http://gcc.gnu.org/PR12594 | |
7435 468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 | |
7436 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 | |
7437 470. http://gcc.gnu.org/PR12657 | |
7438 471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 | |
7439 472. http://gcc.gnu.org/PR12696 | |
7440 473. http://gcc.gnu.org/PR12815 | |
7441 474. http://gcc.gnu.org/PR12862 | |
7442 475. http://gcc.gnu.org/PR12926 | |
7443 476. http://gcc.gnu.org/PR12967 | |
7444 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html | |
7445 478. http://gcc.gnu.org/PR12971 | |
7446 479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 | |
7447 480. http://gcc.gnu.org/PR13007 | |
7448 481. http://gcc.gnu.org/PR13009 | |
7449 482. http://gcc.gnu.org/PR13057 | |
7450 483. http://gcc.gnu.org/PR13070 | |
7451 484. http://gcc.gnu.org/PR13081 | |
7452 485. http://gcc.gnu.org/PR13239 | |
7453 486. http://gcc.gnu.org/PR13262 | |
7454 487. http://gcc.gnu.org/PR13290 | |
7455 488. http://gcc.gnu.org/PR13323 | |
7456 489. http://gcc.gnu.org/PR13369 | |
7457 490. http://gcc.gnu.org/PR13371 | |
7458 491. http://gcc.gnu.org/PR13445 | |
7459 492. http://gcc.gnu.org/PR13461 | |
7460 493. http://gcc.gnu.org/PR13462 | |
7461 494. http://gcc.gnu.org/PR13478 | |
7462 495. http://gcc.gnu.org/PR13544 | |
7463 496. http://gcc.gnu.org/PR13650 | |
7464 497. http://gcc.gnu.org/PR13683 | |
7465 498. http://gcc.gnu.org/PR13688 | |
7466 499. http://gcc.gnu.org/PR13774 | |
7467 500. http://gcc.gnu.org/PR13884 | |
7468 501. http://gcc.gnu.org/PR10746 | |
7469 502. http://gcc.gnu.org/PR11433 | |
7470 503. http://gcc.gnu.org/PR12633 | |
7471 504. http://gcc.gnu.org/PR13037 | |
7472 505. http://gcc.gnu.org/PR13213 | |
7473 506. http://gcc.gnu.org/PR4490 | |
7474 507. http://gcc.gnu.org/PR12292 | |
7475 508. http://gcc.gnu.org/PR12441 | |
7476 509. http://gcc.gnu.org/PR12943 | |
7477 510. http://gcc.gnu.org/PR13608 | |
7478 511. http://gcc.gnu.org/PR11598 | |
7479 512. http://gcc.gnu.org/PR11793 | |
7480 513. http://gcc.gnu.org/PR12467 | |
7481 514. http://gcc.gnu.org/PR12537 | |
7482 515. http://gcc.gnu.org/PR12496 | |
7483 516. http://gcc.gnu.org/PR12865 | |
7484 517. http://gcc.gnu.org/PR13354 | |
7485 518. http://gcc.gnu.org/PR10467 | |
7486 519. http://gcc.gnu.org/PR11226 | |
7487 520. http://gcc.gnu.org/PR11227 | |
7488 521. http://gcc.gnu.org/PR12644 | |
7489 522. http://gcc.gnu.org/PR13149 | |
7490 523. http://gcc.gnu.org/PR12654 | |
7491 524. http://gcc.gnu.org/PR12965 | |
7492 525. http://gcc.gnu.org/PR13031 | |
7493 526. http://gcc.gnu.org/PR11634 | |
7494 527. http://gcc.gnu.org/PR12158 | |
7495 528. http://gcc.gnu.org/PR11992 | |
7496 529. http://gcc.gnu.org/PR9365 | |
7497 530. http://gcc.gnu.org/PR10392 | |
7498 531. http://gcc.gnu.org/PR11322 | |
7499 532. http://gcc.gnu.org/PR13069 | |
7500 533. http://gcc.gnu.org/PR13302 | |
7501 534. http://gcc.gnu.org/PR13585 | |
7502 535. http://gcc.gnu.org/PR8916 | |
7503 536. http://gcc.gnu.org/PR11576 | |
7504 537. http://gcc.gnu.org/PR13122 | |
7505 538. http://gcc.gnu.org/PR13256 | |
7506 539. http://gcc.gnu.org/PR13373 | |
7507 540. http://gcc.gnu.org/PR12561 | |
7508 541. http://gcc.gnu.org/PR6243 | |
7509 542. http://gcc.gnu.org/PR11397 | |
7510 543. http://gcc.gnu.org/PR12505 | |
7511 544. http://gcc.gnu.org/PR13150 | |
7512 545. http://gcc.gnu.org/PR12666 | |
7513 546. http://gcc.gnu.org/PR12969 | |
7514 547. http://gcc.gnu.org/PR10819 | |
7515 548. http://gcc.gnu.org/PR11612 | |
7516 549. http://gcc.gnu.org/PR13211 | |
7517 550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4 | |
7518 551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5 | |
7519 552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6 | |
7520 553. mailto:gnu@gnu.org | |
7521 554. http://www.gnu.org/home.html#ContactInfo | |
7522 555. http://gcc.gnu.org/about.html | |
7523 556. http://gcc.gnu.org/onlinedocs/ | |
7524 557. mailto:gcc-help@gcc.gnu.org | |
7525 558. mailto:gcc@gnu.org | |
7526 559. mailto:gcc@gcc.gnu.org | |
7527 560. http://gcc.gnu.org/lists.html | |
7528 561. http://validator.w3.org/check/referer | |
7529 ====================================================================== | |
7530 http://gcc.gnu.org/gcc-3.2/index.html | |
7531 GCC 3.2 Release Series | |
7532 | |
7533 April 25, 2003 | |
7534 | |
7535 The [1]GNU project and the GCC developers are pleased to announce the | |
7536 release of GCC 3.2.3. | |
7537 | |
7538 The purpose of the GCC 3.2 release series is to provide a stable | |
7539 platform for OS distributors to use building their next releases. A | |
7540 primary objective was to stabilize the C++ ABI; we believe that the | |
7541 interface to the compiler and the C++ standard library are now | |
7542 relatively stable. | |
7543 | |
7544 Be aware that C++ code compiled by GCC 3.2.x will (in general) not | |
7545 interoperate with code compiled by GCC 3.1.1 or earlier. | |
7546 | |
7547 Please refer to our [2]detailed list of news, caveats, and bug-fixes | |
7548 for further information. | |
7549 | |
7550 Release History | |
7551 | |
7552 GCC 3.2.3 | |
7553 April 25, 2003 ([3]changes) | |
7554 | |
7555 GCC 3.2.2 | |
7556 February 5, 2003 ([4]changes) | |
7557 | |
7558 GCC 3.2.1 | |
7559 November 19, 2002 ([5]changes) | |
7560 | |
7561 GCC 3.2 | |
7562 August 14, 2002 ([6]changes) | |
7563 | |
7564 References and Acknowledgements | |
7565 | |
7566 GCC used to stand for the GNU C Compiler, but since the compiler | |
7567 supports several other languages aside from C, it now stands for the | |
7568 GNU Compiler Collection. | |
7569 | |
7570 A list of [7]successful builds is updated as new information becomes | |
7571 available. | |
7572 | |
7573 The GCC developers would like to thank the numerous people that have | |
7574 contributed new features, improvements, bug fixes, and other changes as | |
7575 well as test results to GCC. This [8]amazing group of volunteers is | |
7576 what makes GCC successful. | |
7577 | |
7578 For additional information about GCC please refer to the [9]GCC project | |
7579 web site or contact the [10]GCC development mailing list. | |
7580 | |
7581 To obtain GCC please use [11]our mirror sites, or our CVS server. | |
7582 | |
7583 Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There | |
7584 are also [13]other ways to contact the FSF. | |
7585 | |
7586 These pages are maintained by [14]the GCC team. | |
7587 | |
7588 | |
7589 For questions related to the use of GCC, please consult these web | |
7590 pages and the [15]GCC manuals. If that fails, the | |
7591 [16]gcc-help@gcc.gnu.org mailing list might help. | |
7592 Please send comments on these web pages and the development of GCC to | |
7593 our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. | |
7594 All of our lists have [19]public archives. | |
7595 | |
7596 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
7597 Floor, Boston, MA 02110, USA. | |
7598 | |
7599 Verbatim copying and distribution of this entire article is permitted | |
7600 in any medium, provided this notice is preserved. | |
7601 Last modified 2008-07-26 [20]Valid XHTML 1.0 | |
7602 | |
7603 References | |
7604 | |
7605 1. http://www.gnu.org/ | |
7606 2. http://gcc.gnu.org/gcc-3.2/changes.html | |
7607 3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 | |
7608 4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2 | |
7609 5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 | |
7610 6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2 | |
7611 7. http://gcc.gnu.org/gcc-3.2/buildstat.html | |
7612 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
7613 9. http://gcc.gnu.org/index.html | |
7614 10. mailto:gcc@gcc.gnu.org | |
7615 11. http://gcc.gnu.org/mirrors.html | |
7616 12. mailto:gnu@gnu.org | |
7617 13. http://www.gnu.org/home.html#ContactInfo | |
7618 14. http://gcc.gnu.org/about.html | |
7619 15. http://gcc.gnu.org/onlinedocs/ | |
7620 16. mailto:gcc-help@gcc.gnu.org | |
7621 17. mailto:gcc@gnu.org | |
7622 18. mailto:gcc@gcc.gnu.org | |
7623 19. http://gcc.gnu.org/lists.html | |
7624 20. http://validator.w3.org/check/referer | |
7625 ====================================================================== | |
7626 http://gcc.gnu.org/gcc-3.2/changes.html | |
7627 GCC 3.2 Release Series | |
7628 Changes, New Features, and Fixes | |
7629 | |
7630 The latest release in the 3.2 release series is [1]GCC 3.2.3. | |
7631 | |
7632 Caveats and New Features | |
7633 | |
7634 Caveats | |
7635 | |
7636 * The C++ compiler does not correctly zero-initialize | |
7637 pointers-to-data members. You must explicitly initialize them. For | |
7638 example: int S::*m(0); will work, but depending on | |
7639 default-initialization to zero will not work. This bug cannot be | |
7640 fixed in GCC 3.2 without inducing unacceptable risks. It will be | |
7641 fixed in GCC 3.3. | |
7642 * This GCC release is based on the GCC 3.1 sourcebase, and thus has | |
7643 all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has | |
7644 a number of C++ ABI fixes which make its C++ compiler generate | |
7645 binary code which is incompatible with the C++ compilers found in | |
7646 earlier GCC releases, including GCC 3.1 and GCC 3.1.1. | |
7647 | |
7648 Frontend Enhancements | |
7649 | |
7650 C/C++/Objective-C | |
7651 | |
7652 * The method of constructing the list of directories to be searched | |
7653 for header files has been revised. If a directory named by a -I | |
7654 option is a standard system include directory, the option is | |
7655 ignored to ensure that the default search order for system | |
7656 directories and the special treatment of system header files are | |
7657 not defeated. | |
7658 * The C and Objective-C compilers no longer accept the "Naming Types" | |
7659 extension (typedef foo = bar); it was already unavailable in C++. | |
7660 Code which uses it will need to be changed to use the "typeof" | |
7661 extension instead: typedef typeof(bar) foo. (We have removed this | |
7662 extension without a period of deprecation because it has caused the | |
7663 compiler to crash since version 3.0 and no one noticed until very | |
7664 recently. Thus we conclude it is not in widespread use.) | |
7665 | |
7666 C++ | |
7667 | |
7668 * GCC 3.2 fixed serveral differences between the C++ ABI implemented | |
7669 in GCC and the multi-vendor standard, but more have been found | |
7670 since the release. 3.2.1 adds a new warning, -Wabi, to warn about | |
7671 code which is affected by these bugs. We will fix these bugs in | |
7672 some future release, once we are confident that all have been | |
7673 found; until then, it is our intention to make changes to the ABI | |
7674 only if they are necessary for correct compilation of C++, as | |
7675 opposed to conformance to the ABI documents. | |
7676 * For details on how to build an ABI compliant compiler for GNU/Linux | |
7677 systems, check the [3]common C++ ABI page. | |
7678 | |
7679 New Targets and Target Specific Improvements | |
7680 | |
7681 IA-32 | |
7682 | |
7683 * Fixed a number of bugs in SSE and MMX intrinsics. | |
7684 * Fixed common compiler crashes with SSE instruction set enabled | |
7685 (implied by -march=pentium3, pentium4, athlon-xp) | |
7686 * __m128 and __m128i is not 128bit aligned when used in structures. | |
7687 | |
7688 x86-64 | |
7689 | |
7690 * A bug whereby the compiler could generate bad code for bzero has | |
7691 been fixed. | |
7692 * ABI fixes (implying ABI incompatibilities with previous version in | |
7693 some corner cases) | |
7694 * Fixed prefetch code generation | |
7695 __________________________________________________________________ | |
7696 | |
7697 GCC 3.2.3 | |
7698 | |
7699 3.2.3 is a bug fix release only; there are no new features that were | |
7700 not present in GCC 3.2.2. | |
7701 | |
7702 Bug Fixes | |
7703 | |
7704 This section lists the problem reports (PRs) from GCC's bug tracking | |
7705 system that are known to be fixed in the 3.2.3 release. This list might | |
7706 not be complete (that is, it is possible that some PRs that have been | |
7707 fixed are not listed here), and some of the titles have been changed to | |
7708 make them more clear. | |
7709 | |
7710 Internal Compiler Errors (multi-platform) | |
7711 | |
7712 * [4]3782: (c++) -quiet -fstats produces a segmentation fault in | |
7713 cc1plus | |
7714 * [5]6440: (c++) template specializations cause ICE | |
7715 * [6]7050: (c++) ICE on: (i ? get_string() : throw) | |
7716 * [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c) | |
7717 * [8]7982: (c++) ICE due to infinite recursion (using STL set) | |
7718 * [9]8068: exceedingly high (infinite) memory usage | |
7719 * [10]8178: ICE with __builtin_ffs | |
7720 * [11]8396: ICE in copy_to_mode_reg, in explow.c | |
7721 * [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c | |
7722 * [13]9768: ICE when optimizing inline code at -O2 | |
7723 * [14]9798: (c++) Infinite recursion (segfault) in | |
7724 cp/decl.c:push_using_directive with recursive using directives | |
7725 * [15]9799: mismatching structure initializer with nested flexible | |
7726 array member: ICE | |
7727 * [16]9928: ICE on duplicate enum declaration | |
7728 * [17]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects | |
7729 sparc, alpha) | |
7730 * [18]10352: ICE in find_reloads_toplev | |
7731 * [19]10336: ICE with -Wunreachable-code | |
7732 | |
7733 C/optimizer bugs: | |
7734 | |
7735 * [20]8224: Incorrect joining of signed and unsigned division | |
7736 * [21]8613: -O2 produces wrong code with builtin strlen and | |
7737 postincrements | |
7738 * [22]8828: gcc reports some code is unreachable when it is not | |
7739 * [23]9226: GCSE breaking argument passing | |
7740 * [24]9853: miscompilation of non-constant structure initializer | |
7741 * [25]9797: C99-style struct initializers are miscompiled | |
7742 * [26]9967: Some standard C function calls should not be replaced | |
7743 when optimizing for size | |
7744 * [27]10116: ce2: invalid merge of join_bb in the context of switch | |
7745 statements | |
7746 * [28]10171: wrong code for inlined function | |
7747 * [29]10175: -Wunreachable-code doesn't work for single lines | |
7748 | |
7749 C++ compiler and library: | |
7750 | |
7751 * [30]8316: Confusing diagnostic for code that misuses conversion | |
7752 operators | |
7753 * [31]9169: filebuf output fails if codecvt<>::out returns noconv | |
7754 * [32]9420: incomplete type incorrectly reported | |
7755 * [33]9459: typeof in return type specification of template not | |
7756 supported | |
7757 * [34]9507: filebuf::open handles ios_base::ate incorrectly | |
7758 * [35]9538: Out-of-bounds memory access in streambuf::sputbackc | |
7759 * [36]9602: Total confusion about template/friend/virtual/abstract | |
7760 * [37]9993: destructor not called for local object created within and | |
7761 returned from infinite loop | |
7762 * [38]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2 | |
7763 system | |
7764 | |
7765 Java compiler and library: | |
7766 | |
7767 * [39]9652: libgcj build fails on irix6.5.1[78] | |
7768 * [40]10144: gas on solaris complains about bad .stabs lines for | |
7769 java, native as unaffected | |
7770 | |
7771 x86-specific (Intel/AMD): | |
7772 | |
7773 * [41]8746: gcc miscompiles Linux kernel ppa driver on x86 | |
7774 * [42]9888: -mcpu=k6 -Os produces out of range loop instructions | |
7775 * [43]9638: Cross-build for target i386-elf and i586-pc-linux-gnu | |
7776 failed | |
7777 * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib) | |
7778 failed | |
7779 | |
7780 SPARC-specific: | |
7781 | |
7782 * [45]7784: [Sparc] ICE in extract_insn, in recog.c | |
7783 * [46]7796: sparc extra failure with -m64 on execute/930921-1.c in | |
7784 unroll.c | |
7785 * [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc | |
7786 * [48]8366: [Sparc] C testsuite failure with -m64 -fpic -O in | |
7787 execute/loop-2d.c | |
7788 * [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc | |
7789 * [50]9414: Scheduling bug on Ultrasparc | |
7790 * [51]10067: GCC-3.2.2 outputs invalid asm on sparc64 | |
7791 | |
7792 m68k-specific: | |
7793 | |
7794 * [52]7248: broken "inclusive or" code | |
7795 * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1 | |
7796 | |
7797 PowerPC-specific: | |
7798 | |
7799 * [54]9732: Wrong code with -O2 -fPIC | |
7800 * [55]10073: ICE: powerpc cannot split insn | |
7801 | |
7802 Alpha-specific: | |
7803 | |
7804 * [56]7702: optimization problem on a DEC alpha under OSF1 | |
7805 * [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system | |
7806 | |
7807 HP-specific: | |
7808 | |
7809 * [58]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275) | |
7810 * [59]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10 | |
7811 (missing symbol) | |
7812 * [60]10271: Floating point args don't get reloaded across function | |
7813 calls with -O2 | |
7814 | |
7815 MIPS specific: | |
7816 | |
7817 * [61]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in | |
7818 compile/920501-4.c | |
7819 | |
7820 CRIS specific: | |
7821 | |
7822 * [62]10377: gcc-3.2.2 creates bad assembler code for cris | |
7823 | |
7824 Miscellaneous and minor bugs: | |
7825 | |
7826 * [63]6955: collect2 says "core dumped" when there is no core | |
7827 __________________________________________________________________ | |
7828 | |
7829 GCC 3.2.2 | |
7830 | |
7831 Beginning with 3.2.2, GCC's Makefile suite supports redirection of make | |
7832 install by means of the DESTDIR variable. Parts of the GCC tree have | |
7833 featured that support long before, but now it is available even from | |
7834 the top level. | |
7835 | |
7836 Other than that, GCC 3.2.2 is a bug fix release only; there are no new | |
7837 features that were not present in GCC 3.2.1. | |
7838 | |
7839 Bug Fixes | |
7840 | |
7841 On the following i386-based systems GCC 3.2.1 broke the C ABI wrt. | |
7842 functions returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped | |
7843 with FreeBSD 5.0 does not have this problem), Interix, a.out-based | |
7844 Linux and NetBSD, OpenBSD, and Darwin. GCC 3.2.2 reverts this ABI | |
7845 change, and thus restores ABI-compatibility with previous releases | |
7846 (except GCC 3.2.1) on these platforms. | |
7847 | |
7848 This section lists the problem reports (PRs) from GCC's bug tracking | |
7849 system that are known to be fixed in the 3.2.2 release. This list might | |
7850 not be complete (that is, it is possible that some PRs that have been | |
7851 fixed are not listed here) and some of the titles have been changed to | |
7852 make them more clear. | |
7853 | |
7854 Internal Compiler Errors (multi-platform) | |
7855 | |
7856 * [64]5919: (c++) ICE when passing variable array to template | |
7857 function | |
7858 * [65]7129: (c++) ICE with min/max assignment operators (<?= and >?=) | |
7859 * [66]7507: ICE with -O2 when address of called function is a | |
7860 complicated expression | |
7861 * [67]7622: ICE with nested inline functions if function's address is | |
7862 taken | |
7863 * [68]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR | |
7864 [69]9258) | |
7865 * [70]8031: (c++) ICE in code comparing typeids and casting from | |
7866 virtual base | |
7867 * [71]8275: ICE in simplify_subreg | |
7868 * [72]8332: (c++) builtin strlen/template interaction causes ICE | |
7869 * [73]8372: (c++) ICE on explicit call of destructor | |
7870 * [74]8439: (c, not c++) empty struct causes ICE | |
7871 * [75]8442: (c++) ICE with nested template classes | |
7872 * [76]8518: ICE when compiling mplayer ("extern inline" issue) | |
7873 * [77]8615: (c++) ICE with out-of-range character constant template | |
7874 argument | |
7875 * [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307 | |
7876 * [79]8799: (c++) ICE: error reporting routines re-entered | |
7877 * [80]9328: (c++) ICE with typeof(X) for overloaded X | |
7878 * [81]9465: (preprocessor) cpp -traditional ICE on null bytes | |
7879 | |
7880 C++ (compiler and library) bugs | |
7881 | |
7882 * [82]47: scoping in nested classes is broken | |
7883 * [83]6745: problems with iostream rdbuf() member function | |
7884 * [84]8214: conversion from const char* const to char* sometimes | |
7885 accepted illegally | |
7886 * [85]8493: builtin strlen and overload resolution (same bug as | |
7887 [86]8332) | |
7888 * [87]8503: strange behaviour of function types | |
7889 * [88]8727: compiler confused by inheritance from an anonymous struct | |
7890 * [89]7445: poor performance of std::locale::classic() in | |
7891 multi-threaded applications | |
7892 * [90]8230: mishandling of overflow in vector<T>::resize | |
7893 * [91]8399: sync_with_stdio(false) breaks unformatted input | |
7894 * [92]8662: illegal access of private member of unnamed class is | |
7895 accepted | |
7896 * [93]8707: "make distclean" fails in libstdc++-v3 directory | |
7897 * [94]8708: __USE_MALLOC doesn't work | |
7898 * [95]8790: Use of non-thread-safe strtok in src/localename.cc | |
7899 * [96]8887: Bug in date formats with --enable-clocale=generic | |
7900 * [97]9076: Call Frame Instructions are not handled correctly during | |
7901 unwind operation | |
7902 * [98]9151: std::setprecision limited to 16 digits when outputting a | |
7903 double to a stream | |
7904 * [99]9168: codecvt<char, char, mbstate_t> overwrites output buffers | |
7905 * [100]9269: libstdc++ headers: explicit specialization of function | |
7906 must precede its first use | |
7907 * [101]9322: return value of basic_streambuf<>::getloc affected by | |
7908 locale::global | |
7909 * [102]9433: segfault in runtime support for dynamic_cast | |
7910 | |
7911 C and optimizer bugs | |
7912 | |
7913 * [103]8032: GCC incorrectly initializes static structs that have | |
7914 flexible arrays | |
7915 * [104]8639: simple arithmetic expression broken | |
7916 * [105]8794: optimization improperly eliminates certain expressions | |
7917 * [106]8832: traditional "asm volatile" code is illegally optimized | |
7918 * [107]8988: loop optimizer bug: with -O2, code is generated that | |
7919 segfaults (found on i386, bug present for all platforms) | |
7920 * [108]9492: structure copy clobbers subsequent stores to structure | |
7921 | |
7922 Objective-C bugs | |
7923 | |
7924 * [109]9267: Objective-C parser won't build with newer bison versions | |
7925 (e.g. 1.875) | |
7926 | |
7927 Ada bugs | |
7928 | |
7929 * [110]8344: Ada build problem due to conflict between gcc/final.o, | |
7930 gcc/ada/final.o | |
7931 | |
7932 Preprocessor bugs | |
7933 | |
7934 * [111]8524: _Pragma within macros is improperly expanded | |
7935 * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with | |
7936 -fshort-wchar | |
7937 | |
7938 ARM-specific | |
7939 | |
7940 * [113]9090: arm ICE with >= -O2; regression from gcc-2.95 | |
7941 | |
7942 x86-specific (Intel/AMD) | |
7943 | |
7944 * [114]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction) | |
7945 * [115]8599: loop unroll bug with -march=k6-3 | |
7946 * [116]9506: ABI breakage in structure return (affects BSD and | |
7947 Cygwin, but not GNU/Linux) | |
7948 | |
7949 FreeBSD 5.0 specific | |
7950 | |
7951 * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0 | |
7952 | |
7953 RTEMS-specific | |
7954 | |
7955 * [118]9292: hppa1.1-rtems configurery problems | |
7956 * [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug | |
7957 * [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue | |
7958 * [121]9296: gthr-rtems regression | |
7959 * [122]9316: powerpc-rtems: extending multilibs | |
7960 | |
7961 HP-PA specific | |
7962 | |
7963 * [123]9493: ICE with -O2 when building a simple function | |
7964 | |
7965 Documentation | |
7966 | |
7967 * [124]7341: hyperlink to gcov in GCC documentation doesn't work | |
7968 * [125]8947: Please add a warning about "-malign-double" in docs | |
7969 * [126]7448, [127]8882: typo cleanups | |
7970 __________________________________________________________________ | |
7971 | |
7972 GCC 3.2.1 | |
7973 | |
7974 3.2.1 adds a new warning, -Wabi. This option warns when GNU C++ | |
7975 generates code that is known not to be binary-compatible with the | |
7976 vendor-neutral ia32/ia64 ABI. Please consult the GCC manual, included | |
7977 in the distribution, for details. | |
7978 | |
7979 This release also removes an old GCC extension, "naming types", and the | |
7980 documentation now directs users to use a different GCC extension, | |
7981 __typeof__, instead. The feature had evidently been broken for a while. | |
7982 | |
7983 Otherwise, 3.2.1 is a bug fix release only; other than bug fixes and | |
7984 the new warning there are no new features that were not present in GCC | |
7985 3.2. | |
7986 | |
7987 In addition, the previous fix for [128]PR 7445 (poor performance of | |
7988 std::locale::classic() in multi-threaded applications) was reverted | |
7989 ("unfixed"), because the "fix" was not thread-safe. | |
7990 | |
7991 Bug Fixes | |
7992 | |
7993 This section lists the problem reports (PRs) from GCC's bug tracking | |
7994 system that are known to be fixed in the 3.2.1 release. This list might | |
7995 not be complete (that is, it is possible that some PRs that have been | |
7996 fixed are not listed here). As you can see, the number of bug fixes is | |
7997 quite large, so it is strongly recommended that users of earlier GCC | |
7998 3.x releases upgrade to GCC 3.2.1. | |
7999 | |
8000 Internal Compiler Errors (multi-platform) | |
8001 | |
8002 * [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c | |
8003 * [130]5661: (c++) ICE instantiating template on array of unknown | |
8004 size (bad code) | |
8005 * [131]6419: (c++) ICE in make_decl_rtl for "longest" attribute on | |
8006 64-bit platforms | |
8007 * [132]6994: (c++) ICE in find_function_data | |
8008 * [133]7150: preprocessor: GCC -dM -E gives an ICE | |
8009 * [134]7160: ICE when optimizing branches without a return value | |
8010 * [135]7228: (c++) ICE when using member template and template | |
8011 function | |
8012 * [136]7266: (c++) ICE with -pedantic on missing typename | |
8013 * [137]7353: ICE from use of "Naming Types" extension, see above | |
8014 * [138]7411: ICE in instantiate_virtual_regs_1, in function.c | |
8015 * [139]7478: (c++) ICE on static_cast inside template | |
8016 * [140]7526: preprocessor core dump when _Pragma implies #pragma | |
8017 dependency | |
8018 * [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803 | |
8019 is a duplicate) | |
8020 * [143]7754: (c++) ICE on union with template parameter | |
8021 * [144]7788: (c++) redeclaring a definition as an incomplete class | |
8022 causes ICE | |
8023 * [145]8031: (c++) ICE in comptypes, in cp/typeck.c | |
8024 * [146]8055: preprocessor dies with SIG11 when building FreeBSD | |
8025 kernel | |
8026 * [147]8067: (c++) ICE due to mishandling of __FUNCTION__ and related | |
8027 variables | |
8028 * [148]8134: (c++) ICE in force_store_init_value on legal code | |
8029 * [149]8149: (c++) ICE on incomplete type | |
8030 * [150]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array | |
8031 initialization | |
8032 | |
8033 C++ (compiler and library) bugs | |
8034 | |
8035 * [151]5607: No pointer adjustment in covariant return types | |
8036 * [152]6579: Infinite loop with statement expressions in member | |
8037 initialization | |
8038 * [153]6803: Default copy constructor bug in GCC 3.1 | |
8039 * [154]7176: g++ confused by friend and static member with same name | |
8040 * [155]7188: Segfault with template class and recursive (incorrect) | |
8041 initializer list | |
8042 * [156]7306: Regression: GCC 3.x fails to compile code with virtual | |
8043 inheritance if a method has a variable number of arguments | |
8044 * [157]7461: ctype<char>::classic_table() returns offset array on | |
8045 Cygwin | |
8046 * [158]7524: f(const float arg[3]) fails | |
8047 * [159]7584: Erroneous ambiguous base error on using declaration | |
8048 * [160]7676: Member template overloading problem | |
8049 * [161]7679: infinite loop when a right parenthesis is missing | |
8050 * [162]7811: default locale not taken from environment | |
8051 * [163]7961: compare( char *) implemented incorrectly in | |
8052 basic_string<> | |
8053 * [164]8071: basic_ostream::operator<<(streambuf*) loops forever if | |
8054 streambuf::underflow() leaves gptr() NULL (dups: [165]8127, | |
8055 [166]6745) | |
8056 * [167]8096: deque::at() throws std::range_error instead of | |
8057 std::out_of_range | |
8058 * [168]8127: cout << cin.rdbuf() infinite loop | |
8059 * [169]8218: Excessively large memory consumed for classes with large | |
8060 array members | |
8061 * [170]8287: GCC 3.2: Destructor called for non-constructed local | |
8062 object | |
8063 * [171]8347: empty vector range used in string construction causes | |
8064 core dump | |
8065 * [172]8348: fail() flag is set in istringstream when eof() flag is | |
8066 set | |
8067 * [173]8391: regression: infinite loop in cp/decl2.c(finish_file) | |
8068 | |
8069 C and optimizer bugs | |
8070 | |
8071 * [174]6627: -fno-align-functions doesn't seem to disable function | |
8072 alignment | |
8073 * [175]6631: life_analysis misoptimizes code to initialize fields of | |
8074 a structure | |
8075 * [176]7102: unsigned char division results in floating exception | |
8076 * [177]7120: Run once loop should *always* be unrolled | |
8077 (pessimization) | |
8078 * [178]7209: Bug involving array referencing and ?: operator | |
8079 * [179]7515: invalid inlining of global function with -O3 | |
8080 * [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test | |
8081 * [181]8467: bug in sibling call optimization | |
8082 | |
8083 Preprocessor bugs | |
8084 | |
8085 * [182]4890: incorrect line markers from the traditional preprocessor | |
8086 * [183]7357: -M option omits system headers files (making it the same | |
8087 as -MM) | |
8088 * [184]7358: Changes to Sun's make Dependencies | |
8089 * [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as | |
8090 C headers | |
8091 * [186]7862: Interrupting GCC -MD removes .d file but not .o | |
8092 * [187]8190: Failed compilation deletes -MD dependency file | |
8093 * [188]8524: _Pragma within macro is improperly expanded | |
8094 | |
8095 x86 specific (Intel/AMD) | |
8096 | |
8097 * [189]5351: (i686-only) function pass-by-value structure copy | |
8098 corrupts stack ([190]7591 is a duplicate) | |
8099 * [191]6845, [192]7034, [193]7124, [194]7174: ICE's with | |
8100 -march=pentium3/pentium2/athlon (these are all the same underlying | |
8101 bug, in MMX register use) | |
8102 * [195]7134, [196]7375, [197]7390: ICE with -march=athlon (maybe same | |
8103 as above?) | |
8104 * [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken | |
8105 * [199]6981: wrong code in 64-bit manipulation on x86 | |
8106 * [200]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__ | |
8107 macro | |
8108 * [201]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE | |
8109 intrinsics are broken | |
8110 * [202]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with | |
8111 -march=pentium4 | |
8112 * [203]7693: Typo in i386 mmintrin.h header | |
8113 * [204]7723: ICE - Pentium3 sse - GCC 3.2 | |
8114 * [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse | |
8115 * [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3 | |
8116 | |
8117 PowerPC specific | |
8118 | |
8119 * [207]5967: GCC bug when profiling nested functions on powerpc | |
8120 * [208]6984: wrong code generated with -O2, -O3, -Os for do-while | |
8121 loop on PowerPC | |
8122 * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5 | |
8123 * [210]7130: miscompiled code for GCC-3.1 in powerpc linux with | |
8124 -funroll-all-loops | |
8125 * [211]7133: PowerPC ICE: unrecognizable insn | |
8126 * [212]7380: ICE in extract_insn, at recog.c:2148 | |
8127 * [213]8252: ICE on Altivec code with optimization turned on | |
8128 * [214]8451: Altivec ICE in GCC 3.2 | |
8129 | |
8130 HP/PA specific | |
8131 | |
8132 * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa | |
8133 | |
8134 SPARC specific | |
8135 | |
8136 * [216]6668: when using --disable-multilib, libgcc_s.so is installed | |
8137 in the wrong place on sparc-solaris | |
8138 * [217]7151: ICE when compiling for UltraSPARC | |
8139 * [218]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long | |
8140 double and -O1 | |
8141 * [219]7842: [REGRESSION] SPARC code gen bug | |
8142 | |
8143 ARM specific | |
8144 | |
8145 * [220]7856: [arm] invalid offset in constant pool reference | |
8146 * [221]7967: optimization produces wrong code (ARM) | |
8147 | |
8148 Alpha specific | |
8149 | |
8150 * [222]7374: __builtin_fabsl broken on alpha | |
8151 | |
8152 IBM s390 specific | |
8153 | |
8154 * [223]7370: ICE in fixup_var_refs_1 on s390x | |
8155 * [224]7409: loop optimization bug on s390x-linux-gnu | |
8156 * [225]8232: s390x: ICE when using bcmp with int length argument | |
8157 | |
8158 SCO specific | |
8159 | |
8160 * [226]7623: SCO OpenServer build fails with machmode.def: undefined | |
8161 symbol: BITS_PER_UNIT | |
8162 | |
8163 m68k/Coldfire specific | |
8164 | |
8165 * [227]8314: crtbegin, crtend need to be multilib'ed for this | |
8166 platform | |
8167 | |
8168 Documentation | |
8169 | |
8170 * [228]761: Document some undocumented options | |
8171 * [229]5610: Fix documentation about invoking SSE instructions | |
8172 (-mfpmath=sse) | |
8173 * [230]7484: List -Wmissing-declarations as C-only option | |
8174 * [231]7531: -mcmodel not documented for x86-64 | |
8175 * [232]8120: Update documentation of bad use of ## | |
8176 __________________________________________________________________ | |
8177 | |
8178 GCC 3.2 | |
8179 | |
8180 3.2 is a small bug fix release, but there is a change to the | |
8181 application binary interface (ABI), hence the change to the second part | |
8182 of the version number. | |
8183 | |
8184 The main purpose of the 3.2 release is to correct a couple of problems | |
8185 in the C++ ABI, with the intention of providing a stable interface | |
8186 going forward. Accordingly, 3.2 is only a small change to 3.1.1. | |
8187 | |
8188 Bug Fixes | |
8189 | |
8190 C++ | |
8191 | |
8192 * [233]7320: g++ 3.2 relocation problem | |
8193 * [234]7470: vtable: virtual function pointers not in declaration | |
8194 order | |
8195 | |
8196 libstdc++ | |
8197 | |
8198 * [235]6410: Trouble with non-ASCII monetary symbols and wchar_t | |
8199 * [236]6503, [237]6642, [238]7186: Problems with comparing or | |
8200 subtracting various types of const and non-const iterators | |
8201 * [239]7216: ambiguity with basic_iostream::traits_type | |
8202 * [240]7220: problem with basic_istream::ignore(0,delimiter) | |
8203 * [241]7222: locale::operator==() doesn't work on std::locale("") | |
8204 * [242]7286: placement operator delete issue | |
8205 * [243]7442: cxxabi.h does not match the C++ ABI | |
8206 * [244]7445: poor performance of std::locale::classic() in | |
8207 multi-threaded applications | |
8208 | |
8209 x86-64 specific | |
8210 | |
8211 * [245]7291: off-by-one in generated inline bzero code for x86-64 | |
8212 | |
8213 Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There | |
8214 are also [247]other ways to contact the FSF. | |
8215 | |
8216 These pages are maintained by [248]the GCC team. | |
8217 | |
8218 | |
8219 For questions related to the use of GCC, please consult these web | |
8220 pages and the [249]GCC manuals. If that fails, the | |
8221 [250]gcc-help@gcc.gnu.org mailing list might help. | |
8222 Please send comments on these web pages and the development of GCC to | |
8223 our developer mailing list at [251]gcc@gnu.org or | |
8224 [252]gcc@gcc.gnu.org. All of our lists have [253]public archives. | |
8225 | |
8226 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8227 Floor, Boston, MA 02110, USA. | |
8228 | |
8229 Verbatim copying and distribution of this entire article is permitted | |
8230 in any medium, provided this notice is preserved. | |
8231 Last modified 2007-07-25 [254]Valid XHTML 1.0 | |
8232 | |
8233 References | |
8234 | |
8235 1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 | |
8236 2. http://gcc.gnu.org/gcc-3.1/changes.html | |
8237 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html | |
8238 4. http://gcc.gnu.org/PR3782 | |
8239 5. http://gcc.gnu.org/PR6440 | |
8240 6. http://gcc.gnu.org/PR7050 | |
8241 7. http://gcc.gnu.org/PR7741 | |
8242 8. http://gcc.gnu.org/PR7982 | |
8243 9. http://gcc.gnu.org/PR8068 | |
8244 10. http://gcc.gnu.org/PR8178 | |
8245 11. http://gcc.gnu.org/PR8396 | |
8246 12. http://gcc.gnu.org/PR8674 | |
8247 13. http://gcc.gnu.org/PR9768 | |
8248 14. http://gcc.gnu.org/PR9798 | |
8249 15. http://gcc.gnu.org/PR9799 | |
8250 16. http://gcc.gnu.org/PR9928 | |
8251 17. http://gcc.gnu.org/PR10114 | |
8252 18. http://gcc.gnu.org/PR10352 | |
8253 19. http://gcc.gnu.org/PR10336 | |
8254 20. http://gcc.gnu.org/PR8224 | |
8255 21. http://gcc.gnu.org/PR8613 | |
8256 22. http://gcc.gnu.org/PR8828 | |
8257 23. http://gcc.gnu.org/PR9226 | |
8258 24. http://gcc.gnu.org/PR9853 | |
8259 25. http://gcc.gnu.org/PR9797 | |
8260 26. http://gcc.gnu.org/PR9967 | |
8261 27. http://gcc.gnu.org/PR10116 | |
8262 28. http://gcc.gnu.org/PR10171 | |
8263 29. http://gcc.gnu.org/PR10175 | |
8264 30. http://gcc.gnu.org/PR8316 | |
8265 31. http://gcc.gnu.org/PR9169 | |
8266 32. http://gcc.gnu.org/PR9420 | |
8267 33. http://gcc.gnu.org/PR9459 | |
8268 34. http://gcc.gnu.org/PR9507 | |
8269 35. http://gcc.gnu.org/PR9538 | |
8270 36. http://gcc.gnu.org/PR9602 | |
8271 37. http://gcc.gnu.org/PR9993 | |
8272 38. http://gcc.gnu.org/PR10167 | |
8273 39. http://gcc.gnu.org/PR9652 | |
8274 40. http://gcc.gnu.org/PR10144 | |
8275 41. http://gcc.gnu.org/PR8746 | |
8276 42. http://gcc.gnu.org/PR9888 | |
8277 43. http://gcc.gnu.org/PR9638 | |
8278 44. http://gcc.gnu.org/PR9954 | |
8279 45. http://gcc.gnu.org/PR7784 | |
8280 46. http://gcc.gnu.org/PR7796 | |
8281 47. http://gcc.gnu.org/PR8281 | |
8282 48. http://gcc.gnu.org/PR8366 | |
8283 49. http://gcc.gnu.org/PR8726 | |
8284 50. http://gcc.gnu.org/PR9414 | |
8285 51. http://gcc.gnu.org/PR10067 | |
8286 52. http://gcc.gnu.org/PR7248 | |
8287 53. http://gcc.gnu.org/PR8343 | |
8288 54. http://gcc.gnu.org/PR9732 | |
8289 55. http://gcc.gnu.org/PR10073 | |
8290 56. http://gcc.gnu.org/PR7702 | |
8291 57. http://gcc.gnu.org/PR9671 | |
8292 58. http://gcc.gnu.org/PR8694 | |
8293 59. http://gcc.gnu.org/PR9953 | |
8294 60. http://gcc.gnu.org/PR10271 | |
8295 61. http://gcc.gnu.org/PR6362 | |
8296 62. http://gcc.gnu.org/PR10377 | |
8297 63. http://gcc.gnu.org/PR6955 | |
8298 64. http://gcc.gnu.org/PR5919 | |
8299 65. http://gcc.gnu.org/PR7129 | |
8300 66. http://gcc.gnu.org/PR7507 | |
8301 67. http://gcc.gnu.org/PR7622 | |
8302 68. http://gcc.gnu.org/PR7681 | |
8303 69. http://gcc.gnu.org/PR9528 | |
8304 70. http://gcc.gnu.org/PR8031 | |
8305 71. http://gcc.gnu.org/PR8275 | |
8306 72. http://gcc.gnu.org/PR8332 | |
8307 73. http://gcc.gnu.org/PR8372 | |
8308 74. http://gcc.gnu.org/PR8439 | |
8309 75. http://gcc.gnu.org/PR8442 | |
8310 76. http://gcc.gnu.org/PR8518 | |
8311 77. http://gcc.gnu.org/PR8615 | |
8312 78. http://gcc.gnu.org/PR8663 | |
8313 79. http://gcc.gnu.org/PR8799 | |
8314 80. http://gcc.gnu.org/PR9328 | |
8315 81. http://gcc.gnu.org/PR9465 | |
8316 82. http://gcc.gnu.org/PR47 | |
8317 83. http://gcc.gnu.org/PR6745 | |
8318 84. http://gcc.gnu.org/PR8214 | |
8319 85. http://gcc.gnu.org/PR8493 | |
8320 86. http://gcc.gnu.org/PR8332 | |
8321 87. http://gcc.gnu.org/PR8503 | |
8322 88. http://gcc.gnu.org/PR8727 | |
8323 89. http://gcc.gnu.org/PR7445 | |
8324 90. http://gcc.gnu.org/PR8230 | |
8325 91. http://gcc.gnu.org/PR8399 | |
8326 92. http://gcc.gnu.org/PR8662 | |
8327 93. http://gcc.gnu.org/PR8707 | |
8328 94. http://gcc.gnu.org/PR8708 | |
8329 95. http://gcc.gnu.org/PR8790 | |
8330 96. http://gcc.gnu.org/PR8887 | |
8331 97. http://gcc.gnu.org/PR9076 | |
8332 98. http://gcc.gnu.org/PR9151 | |
8333 99. http://gcc.gnu.org/PR9168 | |
8334 100. http://gcc.gnu.org/PR9269 | |
8335 101. http://gcc.gnu.org/PR9322 | |
8336 102. http://gcc.gnu.org/PR9433 | |
8337 103. http://gcc.gnu.org/PR8032 | |
8338 104. http://gcc.gnu.org/PR8639 | |
8339 105. http://gcc.gnu.org/PR8794 | |
8340 106. http://gcc.gnu.org/PR8832 | |
8341 107. http://gcc.gnu.org/PR8988 | |
8342 108. http://gcc.gnu.org/PR9492 | |
8343 109. http://gcc.gnu.org/PR9267 | |
8344 110. http://gcc.gnu.org/PR8344 | |
8345 111. http://gcc.gnu.org/PR8524 | |
8346 112. http://gcc.gnu.org/PR8880 | |
8347 113. http://gcc.gnu.org/PR9090 | |
8348 114. http://gcc.gnu.org/PR8588 | |
8349 115. http://gcc.gnu.org/PR8599 | |
8350 116. http://gcc.gnu.org/PR9506 | |
8351 117. http://gcc.gnu.org/PR9484 | |
8352 118. http://gcc.gnu.org/PR9292 | |
8353 119. http://gcc.gnu.org/PR9293 | |
8354 120. http://gcc.gnu.org/PR9295 | |
8355 121. http://gcc.gnu.org/PR9296 | |
8356 122. http://gcc.gnu.org/PR9316 | |
8357 123. http://gcc.gnu.org/PR9493 | |
8358 124. http://gcc.gnu.org/PR7341 | |
8359 125. http://gcc.gnu.org/PR8947 | |
8360 126. http://gcc.gnu.org/PR7448 | |
8361 127. http://gcc.gnu.org/PR8882 | |
8362 128. http://gcc.gnu.org/PR7445 | |
8363 129. http://gcc.gnu.org/PR2521 | |
8364 130. http://gcc.gnu.org/PR5661 | |
8365 131. http://gcc.gnu.org/PR6419 | |
8366 132. http://gcc.gnu.org/PR6994 | |
8367 133. http://gcc.gnu.org/PR7150 | |
8368 134. http://gcc.gnu.org/PR7160 | |
8369 135. http://gcc.gnu.org/PR7228 | |
8370 136. http://gcc.gnu.org/PR7266 | |
8371 137. http://gcc.gnu.org/PR7353 | |
8372 138. http://gcc.gnu.org/PR7411 | |
8373 139. http://gcc.gnu.org/PR7478 | |
8374 140. http://gcc.gnu.org/PR7526 | |
8375 141. http://gcc.gnu.org/PR7721 | |
8376 142. http://gcc.gnu.org/PR7803 | |
8377 143. http://gcc.gnu.org/PR7754 | |
8378 144. http://gcc.gnu.org/PR7788 | |
8379 145. http://gcc.gnu.org/PR8031 | |
8380 146. http://gcc.gnu.org/PR8055 | |
8381 147. http://gcc.gnu.org/PR8067 | |
8382 148. http://gcc.gnu.org/PR8134 | |
8383 149. http://gcc.gnu.org/PR8149 | |
8384 150. http://gcc.gnu.org/PR8160 | |
8385 151. http://gcc.gnu.org/PR5607 | |
8386 152. http://gcc.gnu.org/PR6579 | |
8387 153. http://gcc.gnu.org/PR6803 | |
8388 154. http://gcc.gnu.org/PR7176 | |
8389 155. http://gcc.gnu.org/PR7188 | |
8390 156. http://gcc.gnu.org/PR7306 | |
8391 157. http://gcc.gnu.org/PR7461 | |
8392 158. http://gcc.gnu.org/PR7524 | |
8393 159. http://gcc.gnu.org/PR7584 | |
8394 160. http://gcc.gnu.org/PR7676 | |
8395 161. http://gcc.gnu.org/PR7679 | |
8396 162. http://gcc.gnu.org/PR7811 | |
8397 163. http://gcc.gnu.org/PR7961 | |
8398 164. http://gcc.gnu.org/PR8071 | |
8399 165. http://gcc.gnu.org/PR8127 | |
8400 166. http://gcc.gnu.org/PR6745 | |
8401 167. http://gcc.gnu.org/PR8096 | |
8402 168. http://gcc.gnu.org/PR8127 | |
8403 169. http://gcc.gnu.org/PR8218 | |
8404 170. http://gcc.gnu.org/PR8287 | |
8405 171. http://gcc.gnu.org/PR8347 | |
8406 172. http://gcc.gnu.org/PR8348 | |
8407 173. http://gcc.gnu.org/PR8391 | |
8408 174. http://gcc.gnu.org/PR6627 | |
8409 175. http://gcc.gnu.org/PR6631 | |
8410 176. http://gcc.gnu.org/PR7102 | |
8411 177. http://gcc.gnu.org/PR7120 | |
8412 178. http://gcc.gnu.org/PR7209 | |
8413 179. http://gcc.gnu.org/PR7515 | |
8414 180. http://gcc.gnu.org/PR7814 | |
8415 181. http://gcc.gnu.org/PR8467 | |
8416 182. http://gcc.gnu.org/PR4890 | |
8417 183. http://gcc.gnu.org/PR7357 | |
8418 184. http://gcc.gnu.org/PR7358 | |
8419 185. http://gcc.gnu.org/PR7602 | |
8420 186. http://gcc.gnu.org/PR7862 | |
8421 187. http://gcc.gnu.org/PR8190 | |
8422 188. http://gcc.gnu.org/PR8524 | |
8423 189. http://gcc.gnu.org/PR5351 | |
8424 190. http://gcc.gnu.org/PR7591 | |
8425 191. http://gcc.gnu.org/PR6845 | |
8426 192. http://gcc.gnu.org/PR7034 | |
8427 193. http://gcc.gnu.org/PR7124 | |
8428 194. http://gcc.gnu.org/PR7174 | |
8429 195. http://gcc.gnu.org/PR7134 | |
8430 196. http://gcc.gnu.org/PR7375 | |
8431 197. http://gcc.gnu.org/PR7390 | |
8432 198. http://gcc.gnu.org/PR6890 | |
8433 199. http://gcc.gnu.org/PR6981 | |
8434 200. http://gcc.gnu.org/PR7242 | |
8435 201. http://gcc.gnu.org/PR7396 | |
8436 202. http://gcc.gnu.org/PR7630 | |
8437 203. http://gcc.gnu.org/PR7693 | |
8438 204. http://gcc.gnu.org/PR7723 | |
8439 205. http://gcc.gnu.org/PR7951 | |
8440 206. http://gcc.gnu.org/PR8146 | |
8441 207. http://gcc.gnu.org/PR5967 | |
8442 208. http://gcc.gnu.org/PR6984 | |
8443 209. http://gcc.gnu.org/PR7114 | |
8444 210. http://gcc.gnu.org/PR7130 | |
8445 211. http://gcc.gnu.org/PR7133 | |
8446 212. http://gcc.gnu.org/PR7380 | |
8447 213. http://gcc.gnu.org/PR8252 | |
8448 214. http://gcc.gnu.org/PR8451 | |
8449 215. http://gcc.gnu.org/PR7250 | |
8450 216. http://gcc.gnu.org/PR6668 | |
8451 217. http://gcc.gnu.org/PR7151 | |
8452 218. http://gcc.gnu.org/PR7335 | |
8453 219. http://gcc.gnu.org/PR7842 | |
8454 220. http://gcc.gnu.org/PR7856 | |
8455 221. http://gcc.gnu.org/PR7967 | |
8456 222. http://gcc.gnu.org/PR7374 | |
8457 223. http://gcc.gnu.org/PR7370 | |
8458 224. http://gcc.gnu.org/PR7409 | |
8459 225. http://gcc.gnu.org/PR8232 | |
8460 226. http://gcc.gnu.org/PR7623 | |
8461 227. http://gcc.gnu.org/PR8314 | |
8462 228. http://gcc.gnu.org/PR761 | |
8463 229. http://gcc.gnu.org/PR5610 | |
8464 230. http://gcc.gnu.org/PR7484 | |
8465 231. http://gcc.gnu.org/PR7531 | |
8466 232. http://gcc.gnu.org/PR8120 | |
8467 233. http://gcc.gnu.org/PR7320 | |
8468 234. http://gcc.gnu.org/PR7470 | |
8469 235. http://gcc.gnu.org/PR6410 | |
8470 236. http://gcc.gnu.org/PR6503 | |
8471 237. http://gcc.gnu.org/PR6642 | |
8472 238. http://gcc.gnu.org/PR7186 | |
8473 239. http://gcc.gnu.org/PR7216 | |
8474 240. http://gcc.gnu.org/PR7220 | |
8475 241. http://gcc.gnu.org/PR7222 | |
8476 242. http://gcc.gnu.org/PR7286 | |
8477 243. http://gcc.gnu.org/PR7442 | |
8478 244. http://gcc.gnu.org/PR7445 | |
8479 245. http://gcc.gnu.org/PR7291 | |
8480 246. mailto:gnu@gnu.org | |
8481 247. http://www.gnu.org/home.html#ContactInfo | |
8482 248. http://gcc.gnu.org/about.html | |
8483 249. http://gcc.gnu.org/onlinedocs/ | |
8484 250. mailto:gcc-help@gcc.gnu.org | |
8485 251. mailto:gcc@gnu.org | |
8486 252. mailto:gcc@gcc.gnu.org | |
8487 253. http://gcc.gnu.org/lists.html | |
8488 254. http://validator.w3.org/check/referer | |
8489 ====================================================================== | |
8490 http://gcc.gnu.org/gcc-3.1/index.html | |
8491 GCC 3.1 | |
8492 | |
8493 July 27, 2002 | |
8494 | |
8495 The [1]GNU project and the GCC developers are pleased to announce the | |
8496 release of GCC 3.1.1. | |
8497 | |
8498 The links below still apply to GCC 3.1.1. | |
8499 | |
8500 May 15, 2002 | |
8501 | |
8502 The [2]GNU project and the GCC developers are pleased to announce the | |
8503 release of GCC 3.1. | |
8504 | |
8505 GCC used to stand for the GNU C Compiler, but since the compiler | |
8506 supports several other languages aside from C, it now stands for the | |
8507 GNU Compiler Collection. | |
8508 | |
8509 A list of [3]successful builds is updated as new information becomes | |
8510 available. | |
8511 | |
8512 The GCC developers would like to thank the numerous people that have | |
8513 contributed [4]new features, improvements, bug fixes, and other changes | |
8514 as well as test results to GCC. This [5]amazing group of volunteers is | |
8515 what makes GCC successful. | |
8516 | |
8517 For additional information about GCC please refer to the [6]GCC project | |
8518 web site or contact the [7]GCC development mailing list. | |
8519 | |
8520 To obtain GCC please use [8]our mirror sites, or our CVS server. | |
8521 __________________________________________________________________ | |
8522 | |
8523 Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There | |
8524 are also [10]other ways to contact the FSF. | |
8525 | |
8526 These pages are maintained by [11]the GCC team. | |
8527 | |
8528 | |
8529 For questions related to the use of GCC, please consult these web | |
8530 pages and the [12]GCC manuals. If that fails, the | |
8531 [13]gcc-help@gcc.gnu.org mailing list might help. | |
8532 Please send comments on these web pages and the development of GCC to | |
8533 our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. | |
8534 All of our lists have [16]public archives. | |
8535 | |
8536 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8537 Floor, Boston, MA 02110, USA. | |
8538 | |
8539 Verbatim copying and distribution of this entire article is permitted | |
8540 in any medium, provided this notice is preserved. | |
8541 Last modified 2008-07-26 [17]Valid XHTML 1.0 | |
8542 | |
8543 References | |
8544 | |
8545 1. http://www.gnu.org/ | |
8546 2. http://www.gnu.org/ | |
8547 3. http://gcc.gnu.org/gcc-3.1/buildstat.html | |
8548 4. http://gcc.gnu.org/gcc-3.1/changes.html | |
8549 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
8550 6. http://gcc.gnu.org/index.html | |
8551 7. mailto:gcc@gcc.gnu.org | |
8552 8. http://gcc.gnu.org/mirrors.html | |
8553 9. mailto:gnu@gnu.org | |
8554 10. http://www.gnu.org/home.html#ContactInfo | |
8555 11. http://gcc.gnu.org/about.html | |
8556 12. http://gcc.gnu.org/onlinedocs/ | |
8557 13. mailto:gcc-help@gcc.gnu.org | |
8558 14. mailto:gcc@gnu.org | |
8559 15. mailto:gcc@gcc.gnu.org | |
8560 16. http://gcc.gnu.org/lists.html | |
8561 17. http://validator.w3.org/check/referer | |
8562 ====================================================================== | |
8563 http://gcc.gnu.org/gcc-3.1/changes.html | |
8564 GCC 3.1 Release Series | |
8565 Changes, New Features, and Fixes | |
8566 | |
8567 Additional changes in GCC 3.1.1 | |
8568 | |
8569 * A bug related to how structures and unions are returned has been | |
8570 fixed for powerpc-*-netbsd*. | |
8571 * An important bug in the implementation of -fprefetch-loop-arrays | |
8572 has been fixed. Previously the optimization prefetched random | |
8573 blocks of memory for most targets except for i386. | |
8574 * The Java compiler now compiles Java programs much faster and also | |
8575 works with parallel make. | |
8576 * Nested functions have been fixed for mips*-*-netbsd*. | |
8577 * Some missing floating point support routines have beed added for | |
8578 mips*-*-netbsd*. | |
8579 * This [1]message gives additional information about the bugs fixed | |
8580 in this release. | |
8581 | |
8582 Caveats | |
8583 | |
8584 * The -traditional C compiler option has been deprecated and will be | |
8585 removed in GCC 3.3. (It remains possible to preprocess non-C code | |
8586 with the traditional preprocessor.) | |
8587 * The default debugging format for most ELF platforms (including | |
8588 GNU/Linux and FreeBSD; notable exception is Solaris) has changed | |
8589 from stabs to DWARF2. This requires GDB 5.1.1 or later. | |
8590 | |
8591 General Optimizer Improvements | |
8592 | |
8593 * Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, | |
8594 and Andreas Jaeger, SuSE Labs, has contributed [2]infrastructure | |
8595 for profile driven optimizations. | |
8596 Options -fprofile-arcs and -fbranch-probabilities can now be used | |
8597 to improve speed of the generated code by profiling the actual | |
8598 program behaviour on typical runs. In the absence of profile info | |
8599 the compiler attempts to guess the profile statically. | |
8600 * [3]SPEC2000 and SPEC95 benchmark suites are now used daily to | |
8601 monitor performance of the generated code. | |
8602 According to the SPECInt2000 results on an AMD Athlon CPU, the code | |
8603 generated by GCC 3.1 is 6% faster on the average (8.2% faster with | |
8604 profile feedback) compared to GCC 3.0. The code produced by GCC 3.0 | |
8605 is about 2.1% faster compared to 2.95.3. Tests were done using the | |
8606 -O2 -march=athlon command-line options. | |
8607 * Alexandre Oliva, of Red Hat, has generalized the tree inlining | |
8608 infrastructure developed by CodeSourcery, LLC for the C++ front | |
8609 end, so that it is now used in the C front end too. Inlining | |
8610 functions as trees exposes them earlier to the compiler, giving it | |
8611 more opportunities for optimization. | |
8612 * Support for data prefetching instructions has been added to the GCC | |
8613 back end and several targets. A new __builtin_prefetch intrinsic is | |
8614 available to explicitly insert prefetch instructions and | |
8615 experimental support for loop array prefetching has been added (see | |
8616 -fprefetch-loop-array documentation). | |
8617 * Support for emitting debugging information for macros has been | |
8618 added for DWARF2. It is activated using -g3. | |
8619 | |
8620 New Languages and Language specific improvements | |
8621 | |
8622 C/C++ | |
8623 | |
8624 * A few more [4]ISO C99 features. | |
8625 * The preprocessor is 10-50% faster than the preprocessor in GCC 3.0. | |
8626 * The preprocessor's symbol table has been merged with the symbol | |
8627 table of the C, C++ and Objective-C front ends. | |
8628 * The preprocessor consumes less memory than the preprocessor in GCC | |
8629 3.0, often significantly so. On normal input files, it typically | |
8630 consumes less memory than pre-3.0 cccp-based GCC, too. | |
8631 | |
8632 C++ | |
8633 | |
8634 * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std | |
8635 was a workaround to allow std compliant code to work with the | |
8636 non-std compliant libstdc++-v2. libstdc++-v3 is std compliant. | |
8637 * The C++ ABI has been fixed so that void (A::*)() const is mangled | |
8638 as "M1AKFvvE", rather than "MK1AFvvE" as before. This change only | |
8639 affects pointer to cv-qualified member function types. | |
8640 * The C++ ABI has been changed to correctly handle this code: | |
8641 struct A { | |
8642 void operator delete[] (void *, size_t); | |
8643 }; | |
8644 | |
8645 struct B : public A { | |
8646 }; | |
8647 | |
8648 new B[10]; | |
8649 | |
8650 The amount of storage allocated for the array will be greater than | |
8651 it was in 3.0, in order to store the number of elements in the | |
8652 array, so that the correct size can be passed to operator delete[] | |
8653 when the array is deleted. Previously, the value passed to operator | |
8654 delete[] was unpredictable. | |
8655 This change will only affect code that declares a two-argument | |
8656 operator delete[] with a second parameter of type size_t in a base | |
8657 class, and does not override that definition in a derived class. | |
8658 * The C++ ABI has been changed so that: | |
8659 struct A { | |
8660 void operator delete[] (void *, size_t); | |
8661 void operator delete[] (void *); | |
8662 }; | |
8663 | |
8664 does not cause unnecessary storage to be allocated when an array of | |
8665 A objects is allocated. | |
8666 This change will only affect code that declares both of these forms | |
8667 of operator delete[], and declared the two-argument form before the | |
8668 one-argument form. | |
8669 * The C++ ABI has been changed so that when a parameter is passed by | |
8670 value, any cleanup for that parameter is performed in the caller, | |
8671 as specified by the ia64 C++ ABI, rather than the called function | |
8672 as before. As a result, classes with a non-trivial destructor but a | |
8673 trivial copy constructor will be passed and returned by invisible | |
8674 reference, rather than by bitwise copy as before. | |
8675 * G++ now supports the "named return value optimization": for code | |
8676 like | |
8677 A f () { | |
8678 A a; | |
8679 ... | |
8680 return a; | |
8681 } | |
8682 | |
8683 G++ will allocate a in the return value slot, so that the return | |
8684 becomes a no-op. For this to work, all return statements in the | |
8685 function must return the same variable. | |
8686 * Improvements to the C++ library are listed in [5]the libstdc++-v3 | |
8687 FAQ. | |
8688 | |
8689 Objective-C | |
8690 | |
8691 * Annoying linker warnings (due to incorrect code being generated) | |
8692 have been fixed. | |
8693 * If a class method cannot be found, the compiler no longer issues a | |
8694 warning if a corresponding instance method exists in the root | |
8695 class. | |
8696 * Forward @protocol declarations have been fixed. | |
8697 * Loading of categories has been fixed in certain situations (GNU run | |
8698 time only). | |
8699 * The class lookup in the run-time library has been rewritten so that | |
8700 class method dispatch is more than twice as fast as it used to be | |
8701 (GNU run time only). | |
8702 | |
8703 Java | |
8704 | |
8705 * libgcj now includes RMI, java.lang.ref.*, javax.naming, and | |
8706 javax.transaction. | |
8707 * Property files and other system resources can be compiled into | |
8708 executables which use libgcj using the new gcj --resource feature. | |
8709 * libgcj has been ported to more platforms. In particular there is | |
8710 now a mostly-functional mingw32 (Windows) target port. | |
8711 * JNI and CNI invocation interfaces were implemented, so gcj-compiled | |
8712 Java code can now be called from a C/C++ application. | |
8713 * gcj can now use builtin functions for certain known methods, for | |
8714 instance Math.cos. | |
8715 * gcj can now automatically remove redundant array-store checks in | |
8716 some common cases. | |
8717 * The --no-store-checks optimization option was added. This can be | |
8718 used to omit runtime store checks for code which is known not to | |
8719 throw ArrayStoreException | |
8720 * The following third party interface standards were added to libgcj: | |
8721 org.w3c.dom and org.xml.sax. | |
8722 * java.security has been merged with GNU Classpath. The new package | |
8723 is now JDK 1.2 compliant, and much more complete. | |
8724 * A bytecode verifier was added to the libgcj interpreter. | |
8725 * java.lang.Character was rewritten to comply with the Unicode 3.0 | |
8726 standard, and improve performance. | |
8727 * Partial support for many more locales was added to libgcj. | |
8728 * Socket timeouts have been implemented. | |
8729 * libgcj has been merged into a single shared library. There are no | |
8730 longer separate shared libraries for the garbage collector and | |
8731 zlib. | |
8732 * Several performance improvements were made to gcj and libgcj: | |
8733 + Hash synchronization (thin locks) | |
8734 + A special allocation path for finalizer-free objects | |
8735 + Thread-local allocation | |
8736 + Parallel GC, and other GC tweaks | |
8737 | |
8738 Fortran | |
8739 | |
8740 Fortran improvements are listed in [6]the Fortran documentation. | |
8741 | |
8742 Ada | |
8743 | |
8744 [7]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front | |
8745 end and associated tools. The GNAT compiler fully implements the Ada | |
8746 language as defined by the ISO/IEC 8652 standard. | |
8747 | |
8748 Please note that the integration of the Ada front end is still work in | |
8749 progress. | |
8750 | |
8751 New Targets and Target Specific Improvements | |
8752 | |
8753 * Hans-Peter Nilsson has contributed a port to [8]MMIX, the CPU | |
8754 architecture used in new editions of Donald E. Knuth's The Art of | |
8755 Computer Programming. | |
8756 * [9]Axis Communications has contributed its port to the CRIS CPU | |
8757 architecture, used in the ETRAX system-on-a-chip series. See | |
8758 [10]Axis' developer site for technical information. | |
8759 * Alexandre Oliva, of Red Hat, has contributed a port to the | |
8760 [11]SuperH SH5 64-bit RISC microprocessor architecture, extending | |
8761 the existing SH port. | |
8762 * UltraSPARC is fully supported in 64-bit mode. The option -m64 | |
8763 enables it. | |
8764 * For compatibility with the Sun compiler #pragma redefine_extname | |
8765 has been implemented on Solaris. | |
8766 * The x86 back end has had some noticeable work done to it. | |
8767 + SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas | |
8768 Jaeger have contributed a port to the AMD x86-64 architecture. | |
8769 For more information on x86-64 see [12]http://www.x86-64.org. | |
8770 + The compiler now supports MMX, 3DNow!, SSE, and SSE2 | |
8771 instructions. Options -mmmx, -m3dnow, -msse, and -msse2 will | |
8772 enable the respective instruction sets. Intel C++ compatible | |
8773 MMX/3DNow!/SSE intrinsics are implemented. SSE2 intrinsics | |
8774 will be added in next major release. | |
8775 + Following those improvements, targets for Pentium MMX, K6-2, | |
8776 K6-3, Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were | |
8777 added. Refer to the documentation on -march= and -mcpu= | |
8778 options for details. | |
8779 + For those targets that support it, -mfpmath=sse will cause the | |
8780 compiler to generate SSE/SSE2 instructions for floating point | |
8781 math instead of x87 instructions. Usually, this will lead to | |
8782 quicker code -- especially on the Pentium 4. Note that only | |
8783 scalar floating point instructions are used and GCC does not | |
8784 exploit SIMD features yet. | |
8785 + Prefetch support has been added to the Pentium III, Pentium 4, | |
8786 K6-2, K6-3, and Athlon series. | |
8787 + Code generated for floating point to integer conversions has | |
8788 been improved leading to better performance of many 3D | |
8789 applications. | |
8790 * The PowerPC back end has added 64-bit PowerPC GNU/Linux support. | |
8791 * C++ support for AIX has been improved. | |
8792 * Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the | |
8793 PowerPC port supporting the AltiVec programming model (SIMD). The | |
8794 support, though presently useful, is experimental and is expected | |
8795 to stabilize for 3.2. The support is written to conform to | |
8796 Motorola's AltiVec specs. See -maltivec. | |
8797 | |
8798 Obsolete Systems | |
8799 | |
8800 Support for a number of older systems has been declared obsolete in GCC | |
8801 3.1. Unless there is activity to revive them, the next release of GCC | |
8802 will have their sources permanently removed. | |
8803 | |
8804 All configurations of the following processor architectures have been | |
8805 declared obsolete: | |
8806 * MIL-STD-1750A, 1750a-*-* | |
8807 * AMD A29k, a29k-*-* | |
8808 * Convex, c*-convex-* | |
8809 * Clipper, clipper-*-* | |
8810 * Elxsi, elxsi-*-* | |
8811 * Intel i860, i860-*-* | |
8812 * Sun picoJava, pj-*-* and pjl-*-* | |
8813 * Western Electric 32000, we32k-*-* | |
8814 | |
8815 Most configurations of the following processor architectures have been | |
8816 declared obsolete, but we are preserving a few systems which may have | |
8817 active developers. It is unlikely that the remaining systems will | |
8818 survive much longer unless we see definite signs of port activity. | |
8819 * Motorola 88000 except | |
8820 + Generic a.out, m88k-*-aout* | |
8821 + Generic SVR4, m88k-*-sysv4 | |
8822 + OpenBSD, m88k-*-openbsd* | |
8823 * NS32k except | |
8824 + NetBSD, ns32k-*-netbsd* | |
8825 + OpenBSD, ns32k-*-openbsd*. | |
8826 * ROMP except | |
8827 + OpenBSD, romp-*-openbsd*. | |
8828 | |
8829 Finally, only some configurations of these processor architectures are | |
8830 being obsoleted. | |
8831 * Alpha: | |
8832 + OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka | |
8833 alpha*-*-osf[45], are still supported.) | |
8834 * ARM: | |
8835 + RISCiX, arm-*-riscix*. | |
8836 * i386: | |
8837 + 386BSD, i?86-*-bsd* | |
8838 + Chorus, i?86-*-chorusos* | |
8839 + DG/UX, i?86-*-dgux* | |
8840 + FreeBSD 1.x, i?86-*-freebsd1.* | |
8841 + IBM AIX, i?86-*-aix* | |
8842 + ISC UNIX, i?86-*-isc* | |
8843 + Linux with pre-BFD linker, i?86-*-linux*oldld* | |
8844 + NEXTstep, i?86-next-* | |
8845 + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose* | |
8846 + RTEMS/coff, i?86-*-rtemscoff* | |
8847 + RTEMS/go32, i?86-go32-rtems* | |
8848 + Sequent/BSD, i?86-sequent-bsd* | |
8849 + Sequent/ptx before version 3, i?86-sequent-ptx[12]* and | |
8850 i?86-sequent-sysv3* | |
8851 + SunOS, i?86-*-sunos* | |
8852 * Motorola 68000: | |
8853 + Altos, m68[k0]*-altos-* | |
8854 + Apollo, m68[k0]*-apollo-* | |
8855 + Apple A/UX, m68[k0]*-apple-* | |
8856 + Bull, m68[k0]*-bull-* | |
8857 + Convergent, m68[k0]*-convergent-* | |
8858 + Generic SVR3, m68[k0]*-*-sysv3* | |
8859 + ISI, m68[k0]*-isi-* | |
8860 + LynxOS, m68[k0]*-*-lynxos* | |
8861 + NEXT, m68[k0]*-next-* | |
8862 + RTEMS/coff, m68[k0]*-*-rtemscoff* | |
8863 + Sony, m68[k0]*-sony-* | |
8864 * MIPS: | |
8865 + DEC Ultrix, mips-*-ultrix* and mips-dec-* | |
8866 + Generic BSD, mips-*-bsd* | |
8867 + Generic System V, mips-*-sysv* | |
8868 + IRIX before version 5, mips-sgi-irix[1234]* | |
8869 + RiscOS, mips-*-riscos* | |
8870 + Sony, mips-sony-* | |
8871 + Tandem, mips-tandem-* | |
8872 * SPARC: | |
8873 + RTEMS/a.out, sparc-*-rtemsaout*. | |
8874 | |
8875 Documentation improvements | |
8876 | |
8877 * The old manual ("Using and Porting the GNU Compiler Collection") | |
8878 has been replaced by a users manual ("Using the GNU Compiler | |
8879 Collection") and a separate internals reference manual ("GNU | |
8880 Compiler Collection Internals"). | |
8881 * More complete and much improved documentation about GCC's internal | |
8882 representation used by the C and C++ front ends. | |
8883 * Many cleanups and improvements in general. | |
8884 | |
8885 Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There | |
8886 are also [14]other ways to contact the FSF. | |
8887 | |
8888 These pages are maintained by [15]the GCC team. | |
8889 | |
8890 | |
8891 For questions related to the use of GCC, please consult these web | |
8892 pages and the [16]GCC manuals. If that fails, the | |
8893 [17]gcc-help@gcc.gnu.org mailing list might help. | |
8894 Please send comments on these web pages and the development of GCC to | |
8895 our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. | |
8896 All of our lists have [20]public archives. | |
8897 | |
8898 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8899 Floor, Boston, MA 02110, USA. | |
8900 | |
8901 Verbatim copying and distribution of this entire article is permitted | |
8902 in any medium, provided this notice is preserved. | |
8903 Last modified 2008-05-03 [21]Valid XHTML 1.0 | |
8904 | |
8905 References | |
8906 | |
8907 1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html | |
8908 2. http://gcc.gnu.org/news/profiledriven.html | |
8909 3. http://gcc.gnu.org/benchmarks/ | |
8910 4. http://gcc.gnu.org/gcc-3.1/c99status.html | |
8911 5. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html | |
8912 6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html | |
8913 7. http://www.adacore.com/home/ | |
8914 8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html | |
8915 9. http://www.axis.com/ | |
8916 10. http://developer.axis.com/ | |
8917 11. http://www.superh.com/ | |
8918 12. http://www.x86-64.org/ | |
8919 13. mailto:gnu@gnu.org | |
8920 14. http://www.gnu.org/home.html#ContactInfo | |
8921 15. http://gcc.gnu.org/about.html | |
8922 16. http://gcc.gnu.org/onlinedocs/ | |
8923 17. mailto:gcc-help@gcc.gnu.org | |
8924 18. mailto:gcc@gnu.org | |
8925 19. mailto:gcc@gcc.gnu.org | |
8926 20. http://gcc.gnu.org/lists.html | |
8927 21. http://validator.w3.org/check/referer | |
8928 ====================================================================== | |
8929 http://gcc.gnu.org/gcc-3.0/gcc-3.0.html | |
8930 GCC 3.0.4 | |
8931 | |
8932 February 20, 2002 | |
8933 | |
8934 The [1]GNU project and the GCC developers are pleased to announce the | |
8935 release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0 | |
8936 series. | |
8937 | |
8938 GCC used to stand for the GNU C Compiler, but since the compiler | |
8939 supports several other languages aside from C, it now stands for the | |
8940 GNU Compiler Collection. | |
8941 | |
8942 GCC 3.0.x has several new optimizations, new targets, new languages and | |
8943 many other new features, relative to GCC 2.95.x. See the [2]new | |
8944 features page for a more complete list. | |
8945 | |
8946 A list of [3]successful builds is updated as new information becomes | |
8947 available. | |
8948 | |
8949 The GCC developers would like to thank the numerous people that have | |
8950 contributed new features, test results, bug fixes, etc to GCC. This | |
8951 [4]amazing group of volunteers is what makes GCC successful. | |
8952 | |
8953 And finally, we can't in good conscience fail to mention some | |
8954 [5]caveats to using GCC 3.0.x. | |
8955 | |
8956 For additional information about GCC please refer to the [6]GCC project | |
8957 web site or contact the [7]GCC development mailing list. | |
8958 | |
8959 To obtain GCC please use [8]our mirror sites, or our CVS server. | |
8960 __________________________________________________________________ | |
8961 | |
8962 Previous 3.0.x Releases | |
8963 | |
8964 December 20, 2001: GCC 3.0.3 has been released. | |
8965 October 25, 2001: GCC 3.0.2 has been released. | |
8966 August 20, 2001: GCC 3.0.1 has been released. | |
8967 June 18, 2001: GCC 3.0 has been released. | |
8968 | |
8969 Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There | |
8970 are also [10]other ways to contact the FSF. | |
8971 | |
8972 These pages are maintained by [11]the GCC team. | |
8973 | |
8974 | |
8975 For questions related to the use of GCC, please consult these web | |
8976 pages and the [12]GCC manuals. If that fails, the | |
8977 [13]gcc-help@gcc.gnu.org mailing list might help. | |
8978 Please send comments on these web pages and the development of GCC to | |
8979 our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. | |
8980 All of our lists have [16]public archives. | |
8981 | |
8982 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
8983 Floor, Boston, MA 02110, USA. | |
8984 | |
8985 Verbatim copying and distribution of this entire article is permitted | |
8986 in any medium, provided this notice is preserved. | |
8987 Last modified 2008-07-26 [17]Valid XHTML 1.0 | |
8988 | |
8989 References | |
8990 | |
8991 1. http://www.gnu.org/ | |
8992 2. http://gcc.gnu.org/gcc-3.0/features.html | |
8993 3. http://gcc.gnu.org/gcc-3.0/buildstat.html | |
8994 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
8995 5. http://gcc.gnu.org/gcc-3.0/caveats.html | |
8996 6. http://gcc.gnu.org/index.html | |
8997 7. mailto:gcc@gcc.gnu.org | |
8998 8. http://gcc.gnu.org/mirrors.html | |
8999 9. mailto:gnu@gnu.org | |
9000 10. http://www.gnu.org/home.html#ContactInfo | |
9001 11. http://gcc.gnu.org/about.html | |
9002 12. http://gcc.gnu.org/onlinedocs/ | |
9003 13. mailto:gcc-help@gcc.gnu.org | |
9004 14. mailto:gcc@gnu.org | |
9005 15. mailto:gcc@gcc.gnu.org | |
9006 16. http://gcc.gnu.org/lists.html | |
9007 17. http://validator.w3.org/check/referer | |
9008 ====================================================================== | |
9009 http://gcc.gnu.org/gcc-3.0/features.html | |
9010 GCC 3.0 New Features | |
9011 | |
9012 Additional changes in GCC 3.0.4 | |
9013 | |
9014 * GCC 3.0 now supports newer versions of the [1]NetBSD operating | |
9015 system, which use the ELF object file format, on x86 processors. | |
9016 * Correct debugging information is generated from functions that have | |
9017 lines from multiple files (e.g. yacc output). | |
9018 * A fix for whitespace handling in the -traditional preprocessor, | |
9019 which can affect Fortran. | |
9020 * Fixes to the exception handling runtime. | |
9021 * More fixes for bad code generation in C++. | |
9022 * A fix for shared library generation under AIX 4.3. | |
9023 * Documentation updates. | |
9024 * Port of GCC to Tensilica's Xtensa processor contributed. | |
9025 * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). | |
9026 | |
9027 Additional changes in GCC 3.0.3 | |
9028 | |
9029 * A fix to correct an accidental change to the PowerPC ABI. | |
9030 * Fixes for bad code generation on a variety of architectures. | |
9031 * Improvements to the debugging information generated for C++ | |
9032 classes. | |
9033 * Fixes for bad code generation in C++. | |
9034 * A fix to avoid crashes in the C++ demangler. | |
9035 * A fix to the C++ standard library to avoid buffer overflows. | |
9036 * Miscellaneous improvements for a variety of architectures. | |
9037 | |
9038 Additional changes in GCC 3.0.2 | |
9039 | |
9040 * Fixes for bad code generation during loop unrolling. | |
9041 * Fixes for bad code generation by the sibling call optimization. | |
9042 * Minor improvements to x86 code generation. | |
9043 * Implementation of function descriptors in C++ vtables for IA64. | |
9044 * Numerous minor bug-fixes. | |
9045 | |
9046 Additional changes in GCC 3.0.1 | |
9047 | |
9048 * C++ fixes for incorrect code-generation. | |
9049 * Improved cross-compiling support for the C++ standard library. | |
9050 * Fixes for some embedded targets that worked in GCC 2.95.3, but not | |
9051 in GCC 3.0. | |
9052 * Fixes for various exception-handling bugs. | |
9053 * A port to the S/390 architecture. | |
9054 | |
9055 General Optimizer Improvements | |
9056 | |
9057 * [2]Basic block reordering pass. | |
9058 * New if-conversion pass with support for conditional (predicated) | |
9059 execution. | |
9060 * New tail call and sibling call elimination optimizations. | |
9061 * New register renaming pass. | |
9062 * New (experimental) [3]static single assignment (SSA) representation | |
9063 support. | |
9064 * New dead-code elimination pass implemented using the SSA | |
9065 representation. | |
9066 * [4]Global null pointer test elimination. | |
9067 * [5]Global code hoisting/unification. | |
9068 * More builtins and optimizations for stdio.h, string.h and old BSD | |
9069 functions, as well as for ISO C99 functions. | |
9070 * New builtin __builtin_expect for giving hints to the branch | |
9071 predictor. | |
9072 | |
9073 New Languages and Language specific improvements | |
9074 | |
9075 * The GNU Compiler for the Java(TM) language (GCJ) is now integrated | |
9076 and supported, including the run-time library containing most | |
9077 common non-GUI Java classes, a bytecode interpreter, and the Boehm | |
9078 conservative garbage collector. Many bugs have been fixed. GCJ can | |
9079 compile Java source or Java bytecodes to either native code or Java | |
9080 class files, and supports native methods written in either the | |
9081 standard JNI or the more efficient and convenient CNI. | |
9082 * Here is a [6]partial list of C++ improvements, both new features | |
9083 and those no longer supported. | |
9084 * New C++ ABI. On the IA-64 platform GCC is capable of | |
9085 inter-operating with other IA-64 compilers. | |
9086 * The new ABI also significantly reduces the size of symbol and debug | |
9087 information. | |
9088 * New [7]C++ support library and many C++ bug fixes, vastly improving | |
9089 our conformance to the ISO C++ standard. | |
9090 * New [8]inliner for C++. | |
9091 * Rewritten C preprocessor, integrated into the C, C++ and Objective | |
9092 C compilers, with very many improvements including ISO C99 support | |
9093 and [9]improvements to dependency generation. | |
9094 * Support for more [10]ISO C99 features. | |
9095 * Many improvements to support for checking calls to format functions | |
9096 such as printf and scanf, including support for ISO C99 format | |
9097 features, extensions from the Single Unix Specification and GNU | |
9098 libc 2.2, checking of strfmon formats and features to assist in | |
9099 auditing for format string security bugs. | |
9100 * New warnings for C code that may have undefined semantics because | |
9101 of violations of sequence point rules in the C standard (such as a | |
9102 = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. | |
9103 * Additional warning option -Wfloat-equal. | |
9104 * Improvements to -Wtraditional. | |
9105 * Fortran improvements are listed in [11]the Fortran documentation. | |
9106 | |
9107 New Targets and Target Specific Improvements | |
9108 | |
9109 * New x86 back-end, generating much improved code. | |
9110 * Support for a generic i386-elf target contributed. | |
9111 * New option to emit x86 assembly code using Intel style syntax | |
9112 (-mintel-syntax). | |
9113 * HPUX 11 support contributed. | |
9114 * Improved PowerPC code generation, including scheduled prologue and | |
9115 epilogue. | |
9116 * Port of GCC to Intel's IA-64 processor contributed. | |
9117 * Port of GCC to Motorola's MCore 210 and 340 contributed. | |
9118 * New unified back-end for Arm, Thumb and StrongArm contributed. | |
9119 * Port of GCC to Intel's XScale processor contributed. | |
9120 * Port of GCC to Atmel's AVR microcontrollers contributed. | |
9121 * Port of GCC to Mitsubishi's D30V processor contributed. | |
9122 * Port of GCC to Matsushita's AM33 processor (a member of the MN10300 | |
9123 processor family) contributed. | |
9124 * Port of GCC to Fujitsu's FR30 processor contributed. | |
9125 * Port of GCC to Motorola's 68HC11 and 68HC12 processors contributed. | |
9126 * Port of GCC to Sun's picoJava processor core contributed. | |
9127 | |
9128 Documentation improvements | |
9129 | |
9130 * Substantially rewritten and improved C preprocessor manual. | |
9131 * Many improvements to other documentation. | |
9132 * Manpages for gcc, cpp and gcov are now generated automatically from | |
9133 the master Texinfo manual, eliminating the problem of manpages | |
9134 being out of date. (The generated manpages are only extracts from | |
9135 the full manual, which is provided in Texinfo form, from which | |
9136 info, HTML, other formats and a printed manual can be generated.) | |
9137 * Generated info files are included in the release tarballs alongside | |
9138 their Texinfo sources, avoiding problems on some platforms with | |
9139 building makeinfo as part of the GCC distribution. | |
9140 | |
9141 Other significant improvements | |
9142 | |
9143 * Garbage collection used internally by the compiler for most memory | |
9144 allocation instead of obstacks. | |
9145 * Lengauer and Tarjan algorithm used for computing dominators in the | |
9146 CFG. This algorithm can be significantly faster and more space | |
9147 efficient than our older algorithm. | |
9148 * gccbug script provided to assist in submitting bug reports to our | |
9149 bug tracking system. (Bug reports previously submitted directly to | |
9150 our mailing lists, for which you received no bug tracking number, | |
9151 should be submitted again using gccbug if you can reproduce the | |
9152 problem with GCC 3.0.) | |
9153 * The internal libgcc library is [12]built as a shared library on | |
9154 systems that support it. | |
9155 * Extensive testsuite included with GCC, with many new tests. In | |
9156 addition to tests for GCC bugs that have been fixed, many tests | |
9157 have been added for language features, compiler warnings and | |
9158 builtin functions. | |
9159 * Additional language-independent warning options -Wpacked, -Wpadded, | |
9160 -Wunreachable-code and -Wdisabled-optimization. | |
9161 * Target-independent options -falign-functions, -falign-loops and | |
9162 -falign-jumps. | |
9163 | |
9164 Plus a great many bug fixes and almost all the [13]features found in | |
9165 GCC 2.95. | |
9166 | |
9167 Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There | |
9168 are also [15]other ways to contact the FSF. | |
9169 | |
9170 These pages are maintained by [16]the GCC team. | |
9171 | |
9172 | |
9173 For questions related to the use of GCC, please consult these web | |
9174 pages and the [17]GCC manuals. If that fails, the | |
9175 [18]gcc-help@gcc.gnu.org mailing list might help. | |
9176 Please send comments on these web pages and the development of GCC to | |
9177 our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org. | |
9178 All of our lists have [21]public archives. | |
9179 | |
9180 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9181 Floor, Boston, MA 02110, USA. | |
9182 | |
9183 Verbatim copying and distribution of this entire article is permitted | |
9184 in any medium, provided this notice is preserved. | |
9185 Last modified 2007-07-25 [22]Valid XHTML 1.0 | |
9186 | |
9187 References | |
9188 | |
9189 1. http://www.netbsd.org/ | |
9190 2. http://gcc.gnu.org/news/reorder.html | |
9191 3. http://gcc.gnu.org/news/ssa.html | |
9192 4. http://gcc.gnu.org/news/null.html | |
9193 5. http://gcc.gnu.org/news/unify.html | |
9194 6. http://gcc.gnu.org/gcc-3.0/c++features.html | |
9195 7. http://gcc.gnu.org/libstdc++/ | |
9196 8. http://gcc.gnu.org/news/inlining.html | |
9197 9. http://gcc.gnu.org/news/dependencies.html | |
9198 10. http://gcc.gnu.org/gcc-3.0/c99status.html | |
9199 11. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html | |
9200 12. http://gcc.gnu.org/gcc-3.0/libgcc.html | |
9201 13. http://gcc.gnu.org/gcc-2.95/features.html | |
9202 14. mailto:gnu@gnu.org | |
9203 15. http://www.gnu.org/home.html#ContactInfo | |
9204 16. http://gcc.gnu.org/about.html | |
9205 17. http://gcc.gnu.org/onlinedocs/ | |
9206 18. mailto:gcc-help@gcc.gnu.org | |
9207 19. mailto:gcc@gnu.org | |
9208 20. mailto:gcc@gcc.gnu.org | |
9209 21. http://gcc.gnu.org/lists.html | |
9210 22. http://validator.w3.org/check/referer | |
9211 ====================================================================== | |
9212 http://gcc.gnu.org/gcc-3.0/caveats.html | |
9213 GCC 3.0 Caveats | |
9214 | |
9215 * -fstrict-aliasing is now part of -O2 and higher optimization | |
9216 levels. This allows the compiler to assume the strictest aliasing | |
9217 rules applicable to the language being compiled. For C and C++, | |
9218 this activates optimizations based on the type of expressions. This | |
9219 optimization may thus break old, non-compliant code. | |
9220 * Enumerations are now properly promoted to int in function | |
9221 parameters and function returns. Normally this change is not | |
9222 visible, but when using -fshort-enums this is an ABI change. | |
9223 * The undocumented extension that allowed C programs to have a label | |
9224 at the end of a compound statement has been deprecated and may be | |
9225 removed in a future version. Programs that now generate a warning | |
9226 about this may be fixed by adding a null statement (a single | |
9227 semicolon) after the label. | |
9228 * The poorly documented extension that allowed string constants in C, | |
9229 C++ and Objective C to contain unescaped newlines has been | |
9230 deprecated and may be removed in a future version. Programs using | |
9231 this extension may be fixed in several ways: the bare newline may | |
9232 be replaced by \n, or preceded by \n\, or string concatenation may | |
9233 be used with the bare newline preceded by \n" and " placed at the | |
9234 start of the next line. | |
9235 * The Chill compiler is not included in GCC 3.0, because of the lack | |
9236 of a volunteer to convert it to use garbage collection. | |
9237 * Certain non-standard iostream methods from earlier versions of | |
9238 libstdc++ are not included in libstdc++ v3, i.e. filebuf::attach, | |
9239 ostream::form, and istream::gets. | |
9240 * The new C++ ABI is not yet fully supported by current (as of | |
9241 2001-07-01) releases and development versions of GDB, or any | |
9242 earlier versions. There is a problem setting breakpoints by line | |
9243 number, and other related issues that have been fixed in GCC 3.0 | |
9244 but not yet handled in GDB: | |
9245 [1]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html | |
9246 | |
9247 Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There | |
9248 are also [3]other ways to contact the FSF. | |
9249 | |
9250 These pages are maintained by [4]the GCC team. | |
9251 | |
9252 | |
9253 For questions related to the use of GCC, please consult these web | |
9254 pages and the [5]GCC manuals. If that fails, the | |
9255 [6]gcc-help@gcc.gnu.org mailing list might help. | |
9256 Please send comments on these web pages and the development of GCC to | |
9257 our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. | |
9258 All of our lists have [9]public archives. | |
9259 | |
9260 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9261 Floor, Boston, MA 02110, USA. | |
9262 | |
9263 Verbatim copying and distribution of this entire article is permitted | |
9264 in any medium, provided this notice is preserved. | |
9265 Last modified 2008-05-07 [10]Valid XHTML 1.0 | |
9266 | |
9267 References | |
9268 | |
9269 1. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html | |
9270 2. mailto:gnu@gnu.org | |
9271 3. http://www.gnu.org/home.html#ContactInfo | |
9272 4. http://gcc.gnu.org/about.html | |
9273 5. http://gcc.gnu.org/onlinedocs/ | |
9274 6. mailto:gcc-help@gcc.gnu.org | |
9275 7. mailto:gcc@gnu.org | |
9276 8. mailto:gcc@gcc.gnu.org | |
9277 9. http://gcc.gnu.org/lists.html | |
9278 10. http://validator.w3.org/check/referer | |
9279 ====================================================================== | |
9280 http://gcc.gnu.org/gcc-2.95/index.html | |
9281 GCC 2.95 | |
9282 | |
9283 March 16, 2001: The GNU project and the GCC developers are pleased to | |
9284 announce the release of GCC version 2.95.3. | |
9285 | |
9286 Release History | |
9287 | |
9288 GCC 2.95.3 | |
9289 March 16, 2001 | |
9290 | |
9291 GCC 2.95.2 | |
9292 October 27, 1999 | |
9293 | |
9294 GCC 2.95.1 | |
9295 August 19, 1999 | |
9296 | |
9297 GCC 2.95 | |
9298 July 31, 1999. This is the first release of GCC since the April | |
9299 1999 GCC/EGCS reunification and includes nearly a year's worth | |
9300 of new development and bugfixes. | |
9301 | |
9302 References and Acknowledgements | |
9303 | |
9304 GCC used to stand for the GNU C Compiler, but since the compiler | |
9305 supports several other languages aside from C, it now stands for the | |
9306 GNU Compiler Collection. | |
9307 | |
9308 The whole suite has been extensively [1]regression tested and | |
9309 [2]package tested. It should be reliable and suitable for widespread | |
9310 use. | |
9311 | |
9312 The compiler has several new optimizations, new targets, new languages | |
9313 and other new features. See the [3]new features page for a more | |
9314 complete list of new features found in the GCC 2.95 releases. | |
9315 | |
9316 The sources include installation instructions in both HTML and | |
9317 plaintext forms in the install directory in the distribution. However, | |
9318 the most up to date [4]installation instructions and [5]build/test | |
9319 status are on the web pages. We will update those pages as new | |
9320 information becomes available. | |
9321 | |
9322 The GCC developers would like to thank the numerous people that have | |
9323 contributed new features, test results, bugfixes, etc to GCC. This | |
9324 [6]amazing group of volunteers is what makes GCC successful. | |
9325 | |
9326 And finally, we can't in good conscience fail to mention some | |
9327 [7]caveats to using GCC 2.95. | |
9328 | |
9329 Download GCC 2.95 from one of our many [8]mirror sites. | |
9330 | |
9331 For additional information about GCC please see the [9]GCC project web | |
9332 server or contact the [10]GCC development mailing list. | |
9333 | |
9334 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
9335 are also [12]other ways to contact the FSF. | |
9336 | |
9337 These pages are maintained by [13]the GCC team. | |
9338 | |
9339 | |
9340 For questions related to the use of GCC, please consult these web | |
9341 pages and the [14]GCC manuals. If that fails, the | |
9342 [15]gcc-help@gcc.gnu.org mailing list might help. | |
9343 Please send comments on these web pages and the development of GCC to | |
9344 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
9345 All of our lists have [18]public archives. | |
9346 | |
9347 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9348 Floor, Boston, MA 02110, USA. | |
9349 | |
9350 Verbatim copying and distribution of this entire article is permitted | |
9351 in any medium, provided this notice is preserved. | |
9352 Last modified 2008-07-26 [19]Valid XHTML 1.0 | |
9353 | |
9354 References | |
9355 | |
9356 1. http://gcc.gnu.org/gcc-2.95/regress.html | |
9357 2. http://gcc.gnu.org/gcc-2.95/othertest.html | |
9358 3. http://gcc.gnu.org/gcc-2.95/features.html | |
9359 4. http://gcc.gnu.org/install/ | |
9360 5. http://gcc.gnu.org/gcc-2.95/buildstat.html | |
9361 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
9362 7. http://gcc.gnu.org/gcc-2.95/caveats.html | |
9363 8. http://gcc.gnu.org/mirrors.html | |
9364 9. http://gcc.gnu.org/index.html | |
9365 10. mailto:gcc@gcc.gnu.org | |
9366 11. mailto:gnu@gnu.org | |
9367 12. http://www.gnu.org/home.html#ContactInfo | |
9368 13. http://gcc.gnu.org/about.html | |
9369 14. http://gcc.gnu.org/onlinedocs/ | |
9370 15. mailto:gcc-help@gcc.gnu.org | |
9371 16. mailto:gcc@gnu.org | |
9372 17. mailto:gcc@gcc.gnu.org | |
9373 18. http://gcc.gnu.org/lists.html | |
9374 19. http://validator.w3.org/check/referer | |
9375 ====================================================================== | |
9376 http://gcc.gnu.org/gcc-2.95/features.html | |
9377 GCC 2.95 New Features | |
9378 | |
9379 * General Optimizer Improvements: | |
9380 + [1]Localized register spilling to improve speed and code | |
9381 density especially on small register class machines. | |
9382 + [2]Global CSE using lazy code motion algorithms. | |
9383 + [3]Improved global constant/copy propagation. | |
9384 + [4]Improved control flow graph analysis and manipulation. | |
9385 + [5]Local dead store elimination. | |
9386 + [6]Memory Load hoisting/store sinking in loops. | |
9387 + [7]Type based alias analysis is enabled by default. Note this | |
9388 feature will expose bugs in the Linux kernel. Please refer to | |
9389 the FAQ (as shipped with GCC 2.95) for additional information | |
9390 on this issue. | |
9391 + Major revamp of GIV detection, combination and simplification | |
9392 to improve loop performance. | |
9393 + Major improvements to register allocation and reloading. | |
9394 * New Languages and Language specific improvements | |
9395 + [8]Many C++ improvements. | |
9396 + [9]Many Fortran improvements. | |
9397 + [10]Java front-end has been integrated. [11]runtime library is | |
9398 available separately. | |
9399 + [12]ISO C99 support | |
9400 + [13]Chill front-end and runtime has been integrated. | |
9401 + Boehm garbage collector support in libobjc. | |
9402 + More support for various pragmas which appear in vendor | |
9403 include files | |
9404 * New Targets and Target Specific Improvements | |
9405 + [14]SPARC backend rewrite. | |
9406 + -mschedule=8000 will optimize code for PA8000 class | |
9407 processors; -mpa-risc-2-0 will generate code for PA2.0 | |
9408 processors | |
9409 + Various micro-optimizations for the ia32 port. K6 | |
9410 optimizations | |
9411 + Compiler will attempt to align doubles in the stack on the | |
9412 ia32 port | |
9413 + Alpha EV6 support | |
9414 + PowerPC 750 | |
9415 + RS6000/PowerPC: -mcpu=401 was added as an alias for -mcpu=403. | |
9416 -mcpu=e603e was added to do -mcpu=603e and -msoft-float. | |
9417 + c3x, c4x | |
9418 + HyperSPARC | |
9419 + SparcLite86x | |
9420 + sh4 | |
9421 + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix, | |
9422 arm-linux) | |
9423 + vxWorks targets include support for vxWorks threads | |
9424 + StrongARM 110 and ARM9 support added. ARM Scheduling | |
9425 parameters rewritten. | |
9426 + Various changes to the MIPS port to avoid assembler macros, | |
9427 which in turn improves performance | |
9428 + Various performance improvements to the i960 port. | |
9429 + Major rewrite of ns32k port | |
9430 * Other significant improvements | |
9431 + [15]Ability to dump cfg information and display it using vcg. | |
9432 + The new faster scheme for fixing vendor header files is | |
9433 enabled by default. | |
9434 + Experimental internationalization support. | |
9435 + multibyte character support | |
9436 + Some compile-time speedups for pathological problems | |
9437 + Better support for complex types | |
9438 * Plus the usual mountain of bugfixes | |
9439 * Core compiler is based on the gcc2 development tree from Sept 30, | |
9440 1998, so we have all of the [16]features found in GCC 2.8. | |
9441 | |
9442 Additional Changes in GCC 2.95.1 | |
9443 | |
9444 * Generic bugfixes and improvements | |
9445 + Various documentation fixes related to the GCC/EGCS merger. | |
9446 + Fix memory management bug which could lead to spurious aborts, | |
9447 core dumps or random parsing errors in the compiler. | |
9448 + Fix a couple bugs in the dwarf1 and dwarf2 debug record | |
9449 support. | |
9450 + Fix infinite loop in the CSE optimizer. | |
9451 + Avoid undefined behavior in compiler FP emulation code | |
9452 + Fix install problem when prefix is overridden on the make | |
9453 install command. | |
9454 + Fix problem with unwanted installation of assert.h on some | |
9455 systems. | |
9456 + Fix problem with finding the wrong assembler in a single tree | |
9457 build. | |
9458 + Avoid increasing the known alignment of a register that is | |
9459 already known to be a pointer. | |
9460 * Platform specific bugfixes and improvements | |
9461 + Codegen bugfix for prologue/epilogue for cpu32 target. | |
9462 + Fix long long code generation bug for the Coldfire target. | |
9463 + Fix various aborts in the SH compiler. | |
9464 + Fix bugs in libgcc support library for the SH. | |
9465 + Fix alpha ev6 code generation bug. | |
9466 + Fix problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on | |
9467 AIX platforms. | |
9468 + Fix -fpic code generation bug for rs6000/ppc svr4 targets. | |
9469 + Fix varargs/stdarg code generation bug for rs6000/ppc svr4 | |
9470 targets. | |
9471 + Fix weak symbol handling for rs6000/ppc svr4 targets. | |
9472 + Fix various problems with 64bit code generation for the | |
9473 rs6000/ppc port. | |
9474 + Fix codegen bug which caused tetex to be mis-compiled on the | |
9475 x86. | |
9476 + Fix compiler abort in new cfg code exposed by x86 port. | |
9477 + Fix out of range array reference in code convert flat | |
9478 registers to the x87 stacked FP register file. | |
9479 + Fix minor vxworks configuration bug. | |
9480 + Fix return type of bsearch for SunOS 4.x. | |
9481 * Language & Runtime specific fixes. | |
9482 + The G++ signature extension has been deprecated. It will be | |
9483 removed in the next major release of G++. Use of signatures | |
9484 will result in a warning from the compiler. | |
9485 + Several bugs relating to templates and namespaces were fixed. | |
9486 + A bug that caused crashes when combining templates with -g on | |
9487 DWARF1 platforms was fixed. | |
9488 + Pointers-to-members, virtual functions, and multiple | |
9489 inheritance should now work together correctly. | |
9490 + Some code-generation bugs relating to function try blocks were | |
9491 fixed. | |
9492 + G++ is a little bit more lenient with certain archaic | |
9493 constructs than in GCC 2.95. | |
9494 + Fix to prevent shared library version #s from bring truncated | |
9495 to 1 digit | |
9496 + Fix missing std:: in the libstdc++ library. | |
9497 + Fix stream locking problems in libio. | |
9498 + Fix problem in java compiler driver. | |
9499 | |
9500 Additional Changes in GCC 2.95.2 | |
9501 | |
9502 The -fstrict-aliasing is not enabled by default for GCC 2.95.2. While | |
9503 the optimizations performed by -fstrict-aliasing are valid according to | |
9504 the C and C++ standards, the optimization have caused some problems, | |
9505 particularly with old non-conforming code. | |
9506 | |
9507 The GCC developers are experimenting with ways to warn users about code | |
9508 which violates the C/C++ standards, but those warnings are not ready | |
9509 for widespread use at this time. Rather than wait for those warnings | |
9510 the GCC developers have chosen to disable -fstrict-aliasing by default | |
9511 for the GCC 2.95.2 release. | |
9512 | |
9513 We strongly encourage developers to find and fix code which violates | |
9514 the C/C++ standards as -fstrict-aliasing may be enabled by default in | |
9515 future releases. Use the option -fstrict-aliasing to re-enable these | |
9516 optimizations. | |
9517 * Generic bugfixes and improvements | |
9518 + Fix incorrectly optimized memory reference in global common | |
9519 subexpression elimination (GCSE) optimization pass. | |
9520 + Fix code generation bug in regmove.c in which it could | |
9521 incorrectly change a "const" value. | |
9522 + Fix bug in optimization of conditionals involving volatile | |
9523 memory references. | |
9524 + Avoid over-allocation of stack space for some procedures. | |
9525 + Fixed bug in the compiler which caused incorrect optimization | |
9526 of an obscure series of bit manipulations, shifts and | |
9527 arithmetic. | |
9528 + Fixed register allocator bug which caused teTeX to be | |
9529 mis-compiled on SPARC targets. | |
9530 + Avoid incorrect optimization of degenerate case statements for | |
9531 certain targets such as the ARM. | |
9532 + Fix out of range memory reference in the jump optimizer. | |
9533 + Avoid dereferencing null pointer in fix-header. | |
9534 + Fix test for GCC specific features so that it is possible to | |
9535 bootstrap with gcc-2.6.2 and older versions of GCC. | |
9536 + Fix typo in scheduler which could potentially cause out of | |
9537 range memory accesses. | |
9538 + Avoid incorrect loop reversal which caused incorrect code for | |
9539 certain loops on PowerPC targets. | |
9540 + Avoid incorrect optimization of switch statements on certain | |
9541 targets (for example the ARM). | |
9542 * Platform specific bugfixes and improvements | |
9543 + Work around bug in Sun V5.0 compilers which caused bootstrap | |
9544 comparison failures on SPARC targets. | |
9545 + Fix SPARC backend bug which caused aborts in final.c. | |
9546 + Fix sparc-hal-solaris2* configuration fragments. | |
9547 + Fix bug in sparc block profiling. | |
9548 + Fix obscure code generation bug for the PARISC targets. | |
9549 + Define __STDC_EXT__ for HPUX configurations. | |
9550 + Various POWERPC64 code generation bugfixes. | |
9551 + Fix abort for PPC targets using ELF (ex GNU/Linux). | |
9552 + Fix collect2 problems for AIX targets. | |
9553 + Correct handling of .file directive for PPC targets. | |
9554 + Fix bug in fix_trunc x86 patterns. | |
9555 + Fix x86 port to correctly pop the FP stack for functions that | |
9556 return structures in memory. | |
9557 + Fix minor bug in strlen x86 pattern. | |
9558 + Use stabs debugging instead of dwarf1 for x86-solaris targets. | |
9559 + Fix template repository code to handle leading underscore in | |
9560 mangled names. | |
9561 + Fix weak/weak alias support for OpenBSD. | |
9562 + GNU/Linux for the ARM has C++ compatible include files. | |
9563 * Language & Runtime specific fixes. | |
9564 + Fix handling of constructor attribute in the C front-end which | |
9565 caused problems building the Chill runtime library on some | |
9566 targets. | |
9567 + Fix minor problem merging type qualifiers in the C front-end. | |
9568 + Fix aliasing bug for pointers and references (C/C++). | |
9569 + Fix incorrect "non-constant initializer bug" when -traditional | |
9570 or -fwritable-strings is enabled. | |
9571 + Fix build error for Chill front-end on SunOS. | |
9572 + Do not complain about duplicate instantiations when using | |
9573 -frepo (C++). | |
9574 + Fix array bounds handling in C++ front-end which caused | |
9575 problems with dwarf debugging information in some | |
9576 circumstances. | |
9577 + Fix minor namespace problem. | |
9578 + Fix problem linking java programs. | |
9579 | |
9580 Additional Changes in GCC 2.95.3 | |
9581 | |
9582 * Generic bugfixes and improvements | |
9583 + Fix numerous problems that caused incorrect optimization in | |
9584 the register reloading code. | |
9585 + Fix numerous problems that caused incorrect optimization in | |
9586 the loop optimizer. | |
9587 + Fix aborts in the functions build_insn_chain and scan_loops | |
9588 under some circumstances. | |
9589 + Fix an alias analysis bug. | |
9590 + Fix an infinite compilation bug in the combiner. | |
9591 + A few problems with complex number support have been fixed. | |
9592 + It is no longer possible for gcc to act as a fork bomb when | |
9593 installed incorrectly. | |
9594 + The -fpack-struct option should be recognized now. | |
9595 + Fixed a bug that caused incorrect code to be generated due to | |
9596 a lost stack adjustment. | |
9597 * Platform specific bugfixes and improvements | |
9598 + Support building ARM toolchains hosted on Windows. | |
9599 + Fix attribute calculations in ARM toolchains. | |
9600 + arm-linux support has been improved. | |
9601 + Fix a PIC failure on sparc targets. | |
9602 + On ix86 targets, the regparm attribute should now work | |
9603 reliably. | |
9604 + Several updates for the h8300 port. | |
9605 + Fix problem building libio with glibc 2.2. | |
9606 | |
9607 Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There | |
9608 are also [18]other ways to contact the FSF. | |
9609 | |
9610 These pages are maintained by [19]the GCC team. | |
9611 | |
9612 | |
9613 For questions related to the use of GCC, please consult these web | |
9614 pages and the [20]GCC manuals. If that fails, the | |
9615 [21]gcc-help@gcc.gnu.org mailing list might help. | |
9616 Please send comments on these web pages and the development of GCC to | |
9617 our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. | |
9618 All of our lists have [24]public archives. | |
9619 | |
9620 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9621 Floor, Boston, MA 02110, USA. | |
9622 | |
9623 Verbatim copying and distribution of this entire article is permitted | |
9624 in any medium, provided this notice is preserved. | |
9625 Last modified 2008-06-15 [25]Valid XHTML 1.0 | |
9626 | |
9627 References | |
9628 | |
9629 1. http://gcc.gnu.org/news/spill.html | |
9630 2. http://gcc.gnu.org/news/lcm.html | |
9631 3. http://gcc.gnu.org/news/cprop.html | |
9632 4. http://gcc.gnu.org/news/cfg.html | |
9633 5. http://gcc.gnu.org/news/dse.html | |
9634 6. http://gcc.gnu.org/news/hoist.html | |
9635 7. http://gcc.gnu.org/news/alias.html | |
9636 8. http://gcc.gnu.org/gcc-2.95/c++features.html | |
9637 9. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html | |
9638 10. http://gcc.gnu.org/java/gcj-announce.txt | |
9639 11. http://gcc.gnu.org/news/javaannounce.html | |
9640 12. http://gcc.gnu.org/c99status.html | |
9641 13. http://gcc.gnu.org/news/chill.html | |
9642 14. http://gcc.gnu.org/news/sparc.html | |
9643 15. http://gcc.gnu.org/news/egcs-vcg.html | |
9644 16. http://gcc.gnu.org/egcs-1.0/features-2.8.html | |
9645 17. mailto:gnu@gnu.org | |
9646 18. http://www.gnu.org/home.html#ContactInfo | |
9647 19. http://gcc.gnu.org/about.html | |
9648 20. http://gcc.gnu.org/onlinedocs/ | |
9649 21. mailto:gcc-help@gcc.gnu.org | |
9650 22. mailto:gcc@gnu.org | |
9651 23. mailto:gcc@gcc.gnu.org | |
9652 24. http://gcc.gnu.org/lists.html | |
9653 25. http://validator.w3.org/check/referer | |
9654 ====================================================================== | |
9655 http://gcc.gnu.org/gcc-2.95/caveats.html | |
9656 GCC 2.95 Caveats | |
9657 | |
9658 * GCC 2.95 will issue an error for invalid asm statements that had | |
9659 been silently accepted by earlier versions of the compiler. This is | |
9660 particularly noticeable when compiling older versions of the Linux | |
9661 kernel (2.0.xx). Please refer to the FAQ (as shipped with GCC 2.95) | |
9662 for more information on this issue. | |
9663 * GCC 2.95 implements type based alias analysis to disambiguate | |
9664 memory references. Some programs, particularly the Linux kernel | |
9665 violate ANSI/ISO aliasing rules and therefore may not operate | |
9666 correctly when compiled with GCC 2.95. Please refer to the FAQ (as | |
9667 shipped with GCC 2.95) for more information on this issue. | |
9668 * GCC 2.95 has a known bug in its handling of complex variables for | |
9669 64bit targets. Instead of silently generating incorrect code, GCC | |
9670 2.95 will issue a fatal error for situations it can not handle. | |
9671 This primarily affects the Fortran community as Fortran makes more | |
9672 use of complex variables than C or C++. | |
9673 * GCC 2.95 has an integrated libstdc++, but does not have an | |
9674 integrated libg++. Furthermore old libg++ releases will not work | |
9675 with GCC 2.95. You can retrieve a recent copy of libg++ from the | |
9676 [1]GCC ftp server. | |
9677 Note most C++ programs only need libstdc++. | |
9678 * Exception handling may not work with shared libraries, particularly | |
9679 on alphas, hppas, rs6000/powerpc and mips based platforms. | |
9680 Exception handling is known to work on x86 GNU/Linux platforms with | |
9681 shared libraries. | |
9682 * In general, GCC 2.95 is more rigorous about rejecting invalid C++ | |
9683 code or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0, | |
9684 or EGCS 1.1. As a result it may be necessary to fix C++ code before | |
9685 it will compile with GCC 2.95. | |
9686 * G++ is also converting toward the ISO C++ standard; as a result | |
9687 code which was previously valid (and thus accepted by other | |
9688 compilers and older versions of g++) may no longer be accepted. The | |
9689 flag -fpermissive may allow some non-conforming code to compile | |
9690 with GCC 2.95. | |
9691 * GCC 2.95 compiled C++ code is not binary compatible with EGCS | |
9692 1.1.x, EGCS 1.0.x or GCC 2.8.x. | |
9693 * GCC 2.95 does not have changes from the GCC 2.8 tree that were made | |
9694 between Sept 30, 1998 and April 30, 1999 (the official end of the | |
9695 GCC 2.8 project). Future GCC releases will include all the changes | |
9696 from the defunct GCC 2.8 sources. | |
9697 | |
9698 Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There | |
9699 are also [3]other ways to contact the FSF. | |
9700 | |
9701 These pages are maintained by [4]the GCC team. | |
9702 | |
9703 | |
9704 For questions related to the use of GCC, please consult these web | |
9705 pages and the [5]GCC manuals. If that fails, the | |
9706 [6]gcc-help@gcc.gnu.org mailing list might help. | |
9707 Please send comments on these web pages and the development of GCC to | |
9708 our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. | |
9709 All of our lists have [9]public archives. | |
9710 | |
9711 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9712 Floor, Boston, MA 02110, USA. | |
9713 | |
9714 Verbatim copying and distribution of this entire article is permitted | |
9715 in any medium, provided this notice is preserved. | |
9716 Last modified 2007-07-25 [10]Valid XHTML 1.0 | |
9717 | |
9718 References | |
9719 | |
9720 1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz | |
9721 2. mailto:gnu@gnu.org | |
9722 3. http://www.gnu.org/home.html#ContactInfo | |
9723 4. http://gcc.gnu.org/about.html | |
9724 5. http://gcc.gnu.org/onlinedocs/ | |
9725 6. mailto:gcc-help@gcc.gnu.org | |
9726 7. mailto:gcc@gnu.org | |
9727 8. mailto:gcc@gcc.gnu.org | |
9728 9. http://gcc.gnu.org/lists.html | |
9729 10. http://validator.w3.org/check/referer | |
9730 ====================================================================== | |
9731 http://gcc.gnu.org/egcs-1.1/index.html | |
9732 EGCS 1.1 | |
9733 | |
9734 September 3, 1998: We are pleased to announce the release of EGCS 1.1. | |
9735 December 1, 1998: We are pleased to announce the release of EGCS 1.1.1. | |
9736 March 15, 1999: We are pleased to announce the release of EGCS 1.1.2. | |
9737 | |
9738 EGCS is a free software project to further the development of the GNU | |
9739 compilers using an open development environment. | |
9740 | |
9741 EGCS 1.1 is a major new release of the EGCS compiler system. It has | |
9742 been [1]extensively tested and is believed to be stable and suitable | |
9743 for widespread use. | |
9744 | |
9745 EGCS 1.1 is based on an June 6, 1998 snapshot of the GCC 2.8 | |
9746 development sources; it contains all of the new features found in GCC | |
9747 2.8.1 as well as all new development from GCC up to June 6, 1998. | |
9748 | |
9749 EGCS 1.1 also contains many improvements and features not found in GCC | |
9750 or in older versions of EGCS: | |
9751 * Global common subexpression elimination and global constant/copy | |
9752 propagation (aka [2]gcse) | |
9753 * Ongoing improvements to the [3]alias analysis support to allow for | |
9754 better optimizations throughout the compiler. | |
9755 * Vastly improved [4]C++ compiler and integrated C++ runtime | |
9756 libraries. | |
9757 * Fixes for the /tmp symlink race security problems. | |
9758 * New targets including mips16, arm-thumb and 64 bit PowerPC. | |
9759 * Improvements to GNU Fortran (g77) compiler and runtime library made | |
9760 since g77 version 0.5.23. | |
9761 | |
9762 See the [5]new features page for a more complete list of new features | |
9763 found in EGCS 1.1 releases. | |
9764 | |
9765 EGCS 1.1.1 is a minor update to fix several serious problems in EGCS | |
9766 1.1: | |
9767 * General improvements and fixes | |
9768 + Avoid some stack overflows when compiling large functions. | |
9769 + Avoid incorrect loop invariant code motions. | |
9770 + Fix some core dumps on Linux kernel code. | |
9771 + Bring back the imake -Di386 and friends fix from EGCS 1.0.2. | |
9772 + Fix code generation problem in gcse. | |
9773 + Various documentation related fixes. | |
9774 * g++/libstdc++ improvements and fixes | |
9775 + MT safe EH fix for setjmp/longjmp based exception handling. | |
9776 + Fix a few bad interactions between optimization and exception | |
9777 handling. | |
9778 + Fixes for demangling of template names starting with "__". | |
9779 + Fix a bug that would fail to run destructors in some cases | |
9780 with -O2. | |
9781 + Fix 'new' of classes with virtual bases. | |
9782 + Fix crash building Qt on the Alpha. | |
9783 + Fix failure compiling WIFEXITED macro on GNU/Linux. | |
9784 + Fix some -frepo failures. | |
9785 * g77 and libf2c improvements and fixes | |
9786 + Various documentation fixes. | |
9787 + Avoid compiler crash on RAND intrinsic. | |
9788 + Fix minor bugs in makefiles exposed by BSD make programs. | |
9789 + Define _XOPEN_SOURCE for libI77 build to avoid potential | |
9790 problems on some 64-bit systems. | |
9791 + Fix problem with implicit endfile on rewind. | |
9792 + Fix spurious recursive I/O errors. | |
9793 * platform specific improvements and fixes | |
9794 + Match all versions of UnixWare7. | |
9795 + Do not assume x86 SVR4 or UnixWare targets can handle stabs. | |
9796 + Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion | |
9797 from unsigned ints to double precision floats. | |
9798 + Fix ARM ABI issue with NetBSD. | |
9799 + Fix a few arm code generation bugs. | |
9800 + Fixincludes will fix additional broken SCO OpenServer header | |
9801 files. | |
9802 + Fix a m68k backend bug which caused invalid offsets in reg+d | |
9803 addresses. | |
9804 + Fix problems with 64bit AIX 4.3 support. | |
9805 + Fix handling of long longs for varargs/stdarg functions on the | |
9806 ppc. | |
9807 + Minor fixes to CPP predefines for Windows. | |
9808 + Fix code generation problems with gpr<->fpr copies for 64bit | |
9809 ppc. | |
9810 + Fix a few coldfire code generation bugs. | |
9811 + Fix some more header file problems on SunOS 4.x. | |
9812 + Fix assert.h handling for RTEMS. | |
9813 + Fix Windows handling of TREE_SYMBOL_REFERENCED. | |
9814 + Fix x86 compiler abort in reg-stack pass. | |
9815 + Fix cygwin/windows problem with section attributes. | |
9816 + Fix Alpha code generation problem exposed by SMP Linux | |
9817 kernels. | |
9818 + Fix typo in m68k 32->64bit integer conversion. | |
9819 + Make sure target libraries build with -fPIC for PPC & Alpha | |
9820 targets. | |
9821 | |
9822 EGCS 1.1.2 is a minor update to fix several serious problems in EGCS | |
9823 1.1.1: | |
9824 * General improvements and fixes | |
9825 + Fix bug in loop optimizer which caused the SPARC (and | |
9826 potentially other) ports to segfault. | |
9827 + Fix infinite recursion in alias analysis and combiner code. | |
9828 + Fix bug in regclass preferencing. | |
9829 + Fix incorrect loop reversal which caused incorrect code to be | |
9830 generated for several targets. | |
9831 + Fix return value for builtin memcpy. | |
9832 + Reduce compile time for certain loops which exposed quadratic | |
9833 behavior in the loop optimizer. | |
9834 + Fix bug which caused volatile memory to be written multiple | |
9835 times when only one write was needed/desired. | |
9836 + Fix compiler abort in caller-save.c | |
9837 + Fix combiner bug which caused incorrect code generation for | |
9838 certain division by constant operations. | |
9839 + Fix incorrect code generation due to a bug in range check | |
9840 optimizations. | |
9841 + Fix incorrect code generation due to mis-handling of clobbered | |
9842 values in CSE. | |
9843 + Fix compiler abort/segfault due to incorrect register | |
9844 splitting when unrolling loops. | |
9845 + Fix code generation involving autoincremented addresses with | |
9846 ternary operators. | |
9847 + Work around bug in the scheduler which caused qt to be | |
9848 mis-compiled on some platforms. | |
9849 + Fix code generation problems with -fshort-enums. | |
9850 + Tighten security for temporary files. | |
9851 + Improve compile time for codes which make heavy use of | |
9852 overloaded functions. | |
9853 + Fix multiply defined constructor/destructor symbol problems. | |
9854 + Avoid setting bogus RPATH environment variable during | |
9855 bootstrap. | |
9856 + Avoid GNU-make dependencies in the texinfo subdir. | |
9857 + Install CPP wrapper script in $(prefix)/bin if --enable-cpp. | |
9858 --enable-cpp=<dirname> can be used to specify an additional | |
9859 install directory for the cpp wrapper script. | |
9860 + Fix CSE bug which caused incorrect label-label refs to appear | |
9861 on some platforms. | |
9862 + Avoid linking in EH routines from libgcc if they are not | |
9863 needed. | |
9864 + Avoid obscure bug in aliasing code. | |
9865 + Fix bug in weak symbol handling. | |
9866 * Platform-specific improvements and fixes | |
9867 + Fix detection of PPro/PII on Unixware 7. | |
9868 + Fix compiler segfault when building spec99 and other programs | |
9869 for SPARC targets. | |
9870 + Fix code-generation bugs for integer and floating point | |
9871 conditional move instructions on the PPro/PII. | |
9872 + Use fixincludes to fix byteorder problems on i?86-*-sysv. | |
9873 + Fix build failure for the arc port. | |
9874 + Fix floating point format configuration for i?86-gnu port. | |
9875 + Fix problems with hppa1.0-hp-hpux10.20 configuration when | |
9876 threads are enabled. | |
9877 + Fix coldfire code generation bugs. | |
9878 + Fix "unrecognized insn" problems for Alpha and PPC ports. | |
9879 + Fix h8/300 code generation problem with floating point values | |
9880 in memory. | |
9881 + Fix unrecognized insn problems for the m68k port. | |
9882 + Fix namespace-pollution problem for the x86 port. | |
9883 + Fix problems with old assembler on x86 NeXT systems. | |
9884 + Fix PIC code-generation problems for the SPARC port. | |
9885 + Fix minor bug with LONG_CALLS in PowerPC SVR4 support. | |
9886 + Fix minor ISO namespace violation in Alpha varargs/stdarg | |
9887 support. | |
9888 + Fix incorrect "braf" instruction usage for the SH port. | |
9889 + Fix minor bug in va-sh which prevented its use with -ansi. | |
9890 + Fix problems recognizing and supporting FreeBSD. | |
9891 + Handle OpenBSD systems correctly. | |
9892 + Minor fixincludes fix for Digital UNIX 4.0B. | |
9893 + Fix problems with ctors/dtors in SCO shared libraries. | |
9894 + Abort instead of generating incorrect code for PPro/PII | |
9895 floating point conditional moves. | |
9896 + Avoid multiply defined symbols on Linux/GNU systems using | |
9897 libc-5.4.xx. | |
9898 + Fix abort in alpha compiler. | |
9899 * Fortran-specific fixes | |
9900 + Fix the IDate intrinsic (VXT) (in libg2c) so the returned year | |
9901 is in the documented, non-Y2K-compliant range of 0-99, instead | |
9902 of being returned as 100 in the year 2000. | |
9903 + Fix the `Date_and_Time' intrinsic (in libg2c) to return the | |
9904 milliseconds value properly in Values(8). | |
9905 + Fix the `LStat' intrinsic (in libg2c) to return device-ID | |
9906 information properly in SArray(7). | |
9907 | |
9908 Each release includes installation instructions in both HTML and | |
9909 plaintext forms (see the INSTALL directory in the toplevel directory of | |
9910 the distribution). However, we also keep the most up to date | |
9911 [6]installation instructions and [7]build/test status on our web page. | |
9912 We will update those pages as new information becomes available. | |
9913 | |
9914 The EGCS project would like to thank the numerous people that have | |
9915 contributed new features, test results, bugfixes, etc. This [8]amazing | |
9916 group of volunteers is what makes EGCS successful. | |
9917 | |
9918 And finally, we can't in good conscience fail to mention some | |
9919 [9]caveats to using EGCS 1.1. | |
9920 | |
9921 Download EGCS from egcs.cygnus.com (USA California). | |
9922 | |
9923 The EGCS 1.1 release is also available on many mirror sites. | |
9924 [10]Goto mirror list to find a closer site. | |
9925 | |
9926 Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There | |
9927 are also [12]other ways to contact the FSF. | |
9928 | |
9929 These pages are maintained by [13]the GCC team. | |
9930 | |
9931 | |
9932 For questions related to the use of GCC, please consult these web | |
9933 pages and the [14]GCC manuals. If that fails, the | |
9934 [15]gcc-help@gcc.gnu.org mailing list might help. | |
9935 Please send comments on these web pages and the development of GCC to | |
9936 our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. | |
9937 All of our lists have [18]public archives. | |
9938 | |
9939 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
9940 Floor, Boston, MA 02110, USA. | |
9941 | |
9942 Verbatim copying and distribution of this entire article is permitted | |
9943 in any medium, provided this notice is preserved. | |
9944 Last modified 2007-07-25 [19]Valid XHTML 1.0 | |
9945 | |
9946 References | |
9947 | |
9948 1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html | |
9949 2. http://gcc.gnu.org/news/gcse.html | |
9950 3. http://gcc.gnu.org/news/alias.html | |
9951 4. http://gcc.gnu.org/egcs-1.1/c++features.html | |
9952 5. http://gcc.gnu.org/egcs-1.1/features.html | |
9953 6. http://gcc.gnu.org/install/ | |
9954 7. http://gcc.gnu.org/egcs-1.1/buildstat.html | |
9955 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html | |
9956 9. http://gcc.gnu.org/egcs-1.1/caveats.html | |
9957 10. http://gcc.gnu.org/mirrors.html | |
9958 11. mailto:gnu@gnu.org | |
9959 12. http://www.gnu.org/home.html#ContactInfo | |
9960 13. http://gcc.gnu.org/about.html | |
9961 14. http://gcc.gnu.org/onlinedocs/ | |
9962 15. mailto:gcc-help@gcc.gnu.org | |
9963 16. mailto:gcc@gnu.org | |
9964 17. mailto:gcc@gcc.gnu.org | |
9965 18. http://gcc.gnu.org/lists.html | |
9966 19. http://validator.w3.org/check/referer | |
9967 ====================================================================== | |
9968 http://gcc.gnu.org/egcs-1.1/features.html | |
9969 EGCS 1.1 new features | |
9970 | |
9971 * Integrated GNU Fortran (g77) compiler and runtime library with | |
9972 improvements, based on g77 version 0.5.23. | |
9973 * Vast improvements in the C++ compiler; so many they have [1]page of | |
9974 their own! | |
9975 * Compiler implements [2]global common subexpression elimination and | |
9976 global copy/constant propagation. | |
9977 * More major improvements in the [3]alias analysis code. | |
9978 * More major improvements in the exception handling code to improve | |
9979 performance, lower static overhead and provide the infrastructure | |
9980 for future improvements. | |
9981 * The infamous /tmp symlink race security problems have been fixed. | |
9982 * The regmove optimization pass has been nearly completely rewritten | |
9983 to improve performance of generated code. | |
9984 * The compiler now recomputes register usage information before local | |
9985 register allocation. By providing more accurate information to the | |
9986 priority based allocator, we get better register allocation. | |
9987 * The register reloading phase of the compiler optimizes spill code | |
9988 much better than in previous releases. | |
9989 * Some bad interactions between the register allocator and | |
9990 instruction scheduler have been fixed, resulting in much better | |
9991 code for certain programs. Additionally, we have tuned the | |
9992 scheduler in various ways to improve performance of generated code | |
9993 for some architectures. | |
9994 * The compiler's branch shortening algorithms have been significantly | |
9995 improved to work better on targets which align jump targets. | |
9996 * The compiler now supports -Os to prefer optimizing for code space | |
9997 over optimizing for code speed. | |
9998 * The compiler will now totally eliminate library calls which compute | |
9999 constant values. This primarily helps targets with no integer | |
10000 div/mul support and targets without floating point support. | |
10001 * The compiler now supports an extensive "--help" option. | |
10002 * cpplib has been greatly improved and may be suitable for limited | |
10003 use. | |
10004 * Memory footprint for the compiler has been significantly reduced | |
10005 for some pathological cases. | |
10006 * The time to build EGCS has been improved for certain targets | |
10007 (particularly the alpha and mips platforms). | |
10008 * Many infrastructure improvements throughout the compiler, plus the | |
10009 usual mountain of bugfixes and minor improvements. | |
10010 * Target dependent improvements: | |
10011 + SPARC port now includes V8 plus and V9 support as well as | |
10012 performance tuning for Ultra class machines. The SPARC port | |
10013 now uses the Haifa scheduler. | |
10014 + Alpha port has been tuned for the EV6 processor and has an | |
10015 optimized expansion of memcpy/bzero. The Alpha port now uses | |
10016 the Haifa scheduler. | |
10017 + RS6000/PowerPC: support for the Power64 architecture and AIX | |
10018 4.3. The RS6000/PowerPC port now uses the Haifa scheduler. | |
10019 + x86: Alignment of static store data and jump targets is per | |
10020 Intel recommendations now. Various improvements throughout the | |
10021 x86 port to improve performance on Pentium processors | |
10022 (including improved epilogue sequences for Pentium chips and | |
10023 backend improvements which should help register allocation on | |
10024 all x86 variants. Conditional move support has been fixed and | |
10025 enabled for PPro processors. The x86 port also better supports | |
10026 64bit operations now. Unixware 7, a System V Release 5 target, | |
10027 is now supported and SCO OpenServer targets can support GAS. | |
10028 + MIPS has improved multiply/multiply-add support and now | |
10029 includes mips16 ISA support. | |
10030 + M68k has many micro-optimizations and Coldfire fixes. | |
10031 * Core compiler is based on the GCC development tree from June 9, | |
10032 1998, so we have all of the [4]features found in GCC 2.8. | |
10033 | |
10034 Please send FSF & GNU inquiries & questions to [5]gnu@gnu.org. There | |
10035 are also [6]other ways to contact the FSF. | |
10036 | |
10037 These pages are maintained by [7]the GCC team. | |
10038 | |
10039 | |
10040 For questions related to the use of GCC, please consult these web | |
10041 pages and the [8]GCC manuals. If that fails, the | |
10042 [9]gcc-help@gcc.gnu.org mailing list might help. | |
10043 Please send comments on these web pages and the development of GCC to | |
10044 our developer mailing list at [10]gcc@gnu.org or [11]gcc@gcc.gnu.org. | |
10045 All of our lists have [12]public archives. | |
10046 | |
10047 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10048 Floor, Boston, MA 02110, USA. | |
10049 | |
10050 Verbatim copying and distribution of this entire article is permitted | |
10051 in any medium, provided this notice is preserved. | |
10052 Last modified 2008-07-26 [13]Valid XHTML 1.0 | |
10053 | |
10054 References | |
10055 | |
10056 1. http://gcc.gnu.org/egcs-1.1/c++features.html | |
10057 2. http://gcc.gnu.org/news/gcse.html | |
10058 3. http://gcc.gnu.org/news/alias.html | |
10059 4. http://gcc.gnu.org/egcs-1.0/features-2.8.html | |
10060 5. mailto:gnu@gnu.org | |
10061 6. http://www.gnu.org/home.html#ContactInfo | |
10062 7. http://gcc.gnu.org/about.html | |
10063 8. http://gcc.gnu.org/onlinedocs/ | |
10064 9. mailto:gcc-help@gcc.gnu.org | |
10065 10. mailto:gcc@gnu.org | |
10066 11. mailto:gcc@gcc.gnu.org | |
10067 12. http://gcc.gnu.org/lists.html | |
10068 13. http://validator.w3.org/check/referer | |
10069 ====================================================================== | |
10070 http://gcc.gnu.org/egcs-1.1/caveats.html | |
10071 EGCS 1.1 Caveats | |
10072 | |
10073 * EGCS has an integrated libstdc++, but does not have an integrated | |
10074 libg++. Furthermore old libg++ releases will not work with EGCS; HJ | |
10075 Lu has made a libg++-2.8.1.2 snapshot available which may work with | |
10076 EGCS. | |
10077 Note most C++ programs only need libstdc++. | |
10078 * Exception handling may not work with shared libraries, particularly | |
10079 on alphas, hppas, rs6000/powerpc and mips based platforms. | |
10080 Exception handling is known to work on x86-linux platforms with | |
10081 shared libraries. | |
10082 * Some versions of the Linux kernel have bugs which prevent them from | |
10083 being compiled or from running when compiled by EGCS. See the FAQ | |
10084 (as shipped with EGCS 1.1) for additional information. | |
10085 * In general, EGCS is more rigorous about rejecting invalid C++ code | |
10086 or deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As | |
10087 a result it may be necessary to fix C++ code before it will compile | |
10088 with EGCS. | |
10089 * G++ is also converting toward the ISO C++ standard; as a result | |
10090 code which was previously valid (and thus accepted by other | |
10091 compilers and older versions of g++) may no longer be accepted. | |
10092 * EGCS 1.1 compiled C++ code is not binary compatible with EGCS 1.0.x | |
10093 or GCC 2.8.x due to changes necessary to support thread safe | |
10094 exception handling. | |
10095 | |
10096 Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There | |
10097 are also [2]other ways to contact the FSF. | |
10098 | |
10099 These pages are maintained by [3]the GCC team. | |
10100 | |
10101 | |
10102 For questions related to the use of GCC, please consult these web | |
10103 pages and the [4]GCC manuals. If that fails, the | |
10104 [5]gcc-help@gcc.gnu.org mailing list might help. | |
10105 Please send comments on these web pages and the development of GCC to | |
10106 our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. | |
10107 All of our lists have [8]public archives. | |
10108 | |
10109 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10110 Floor, Boston, MA 02110, USA. | |
10111 | |
10112 Verbatim copying and distribution of this entire article is permitted | |
10113 in any medium, provided this notice is preserved. | |
10114 Last modified 2007-07-25 [9]Valid XHTML 1.0 | |
10115 | |
10116 References | |
10117 | |
10118 1. mailto:gnu@gnu.org | |
10119 2. http://www.gnu.org/home.html#ContactInfo | |
10120 3. http://gcc.gnu.org/about.html | |
10121 4. http://gcc.gnu.org/onlinedocs/ | |
10122 5. mailto:gcc-help@gcc.gnu.org | |
10123 6. mailto:gcc@gnu.org | |
10124 7. mailto:gcc@gcc.gnu.org | |
10125 8. http://gcc.gnu.org/lists.html | |
10126 9. http://validator.w3.org/check/referer | |
10127 ====================================================================== | |
10128 http://gcc.gnu.org/egcs-1.0/index.html | |
10129 EGCS 1.0 | |
10130 | |
10131 December 3, 1997: We are pleased to announce the release of EGCS 1.0. | |
10132 January 6, 1998: We are pleased to announce the release of EGCS 1.0.1. | |
10133 March 16, 1998: We are pleased to announce the release of EGCS 1.0.2. | |
10134 May 15, 1998 We are pleased to announce the release of EGCS 1.0.3. | |
10135 | |
10136 EGCS is a collaborative effort involving several groups of hackers | |
10137 using an open development model to accelerate development and testing | |
10138 of GNU compilers and runtime libraries. | |
10139 | |
10140 An important goal of EGCS is to allow wide scale testing of | |
10141 experimental features and optimizations; therefore, EGCS contains some | |
10142 features and optimizations which are still under development. However, | |
10143 EGCS has been carefully tested and should be comparable in quality to | |
10144 most GCC releases. | |
10145 | |
10146 EGCS 1.0 is based on an August 2, 1997 snapshot of the GCC 2.8 | |
10147 development sources; it contains nearly all of the new features found | |
10148 in GCC 2.8. | |
10149 | |
10150 EGCS 1.0 also contains many improvements and features not found in GCC | |
10151 2.7 and even the GCC 2.8 series (which was released after the original | |
10152 EGCS 1.0 release). | |
10153 * Integrated C++ runtime libraries, including support for most major | |
10154 GNU/Linux systems! | |
10155 * The integrated libstdc++ library includes a verbatim copy of SGI's | |
10156 STL release. | |
10157 * Integrated GNU Fortran compiler. | |
10158 * New instruction scheduler. | |
10159 * New alias analysis code. | |
10160 | |
10161 See the [1]new features page for a more complete list of new features. | |
10162 | |
10163 EGCS 1.0.1 is a minor update to the EGCS 1.0 compiler to fix a few | |
10164 critical bugs and add support for Red Hat 5.0 Linux. Changes since the | |
10165 EGCS 1.0 release: | |
10166 * Add support for Red Hat 5.0 Linux and better support for Linux | |
10167 systems using glibc2. | |
10168 Many programs failed to link when compiled with EGCS 1.0 on Red Hat | |
10169 5.0 or on systems with newer versions of glibc2. EGCS 1.0.1 should | |
10170 fix these problems. | |
10171 * Compatibility with both EGCS 1.0 and GCC 2.8 libgcc exception | |
10172 handling interfaces. | |
10173 To avoid future compatibility problems, we strongly urge anyone who | |
10174 is planning on distributing shared libraries that contain C++ code | |
10175 to upgrade to EGCS 1.0.1 first. | |
10176 Soon after EGCS 1.0 was released, the GCC developers made some | |
10177 incompatible changes in libgcc's exception handling interfaces. | |
10178 These changes were needed to solve problems on some platforms. This | |
10179 means that GCC 2.8.0, when released, will not be seamlessly | |
10180 compatible with shared libraries built by EGCS 1.0. The reason is | |
10181 that the libgcc.a in GCC 2.8.0 will not contain a function needed | |
10182 by the old interface. | |
10183 The result of this is that there may be compatibility problems with | |
10184 shared libraries built by EGCS 1.0 when used with GCC 2.8.0. | |
10185 With EGCS 1.0.1, generated code uses the new (GCC 2.8.0) interface, | |
10186 and libgcc.a has the support routines for both the old and the new | |
10187 interfaces (so EGCS 1.0.1 and EGCS 1.0 code can be freely mixed, | |
10188 and EGCS 1.0.1 and GCC 2.8.0 code can be freely mixed). | |
10189 The maintainers of GCC 2.x have decided against including seamless | |
10190 support for the old interface in 2.8.0, since it was never | |
10191 "official", so to avoid future compatibility problems we recommend | |
10192 against distributing any shared libraries built by EGCS 1.0 that | |
10193 contain C++ code (upgrade to 1.0.1 and use that). | |
10194 * Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends. | |
10195 The x86 changes fix code generation errors exposed when building | |
10196 glibc2 and the Linux dynamic linker (ld.so). | |
10197 The hppa change fixes a compiler abort when configured for use with | |
10198 RTEMS. | |
10199 The MIPS changes fix problems with the definition of LONG_MAX on | |
10200 newer systems, allow for command line selection of the target ABI, | |
10201 and fix one code generation problem. | |
10202 The rs6000/ppc change fixes some problems with passing structures | |
10203 to varargs/stdarg functions. | |
10204 * A few machine independent bugfixes, mostly to fix code generation | |
10205 errors when building Linux kernels or glibc. | |
10206 * Fix a few critical exception handling and template bugs in the C++ | |
10207 compiler. | |
10208 * Fix Fortran namelist bug on alphas. | |
10209 * Fix build problems on x86-solaris systems. | |
10210 | |
10211 EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several | |
10212 serious problems in EGCS 1.0.1. | |
10213 * General improvements and fixes | |
10214 + Memory consumption significantly reduced, especially for | |
10215 templates and inline functions. | |
10216 + Fix various problems with glibc2.1. | |
10217 + Fix loop optimization bug exposed by rs6000/ppc port. | |
10218 + Fix to avoid potential code generation problems in jump.c. | |
10219 + Fix some undefined symbol problems in dwarf1 debug support. | |
10220 * g++/libstdc++ improvements and fixes | |
10221 + libstdc++ in the EGCS release has been updated and should be | |
10222 link compatible with libstdc++-2.8. | |
10223 + Various fixes in libio/libstdc++ to work better on Linux | |
10224 systems. | |
10225 + Fix problems with duplicate symbols on systems that do not | |
10226 support weak symbols. | |
10227 + Memory corruption bug and undefined symbols in bastring have | |
10228 been fixed. | |
10229 + Various exception handling fixes. | |
10230 + Fix compiler abort for very long thunk names. | |
10231 * g77 improvements and fixes | |
10232 + Fix compiler crash for omitted bound in Fortran CASE | |
10233 statement. | |
10234 + Add missing entries to g77 lang-options. | |
10235 + Fix problem with -fpedantic in the g77 compiler. | |
10236 + Fix "backspace" problem with g77 on alphas. | |
10237 + Fix x86 backend problem with Fortran literals and -fpic. | |
10238 + Fix some of the problems with negative subscripts for g77 on | |
10239 alphas. | |
10240 + Fixes for Fortran builds on cygwin32/mingw32. | |
10241 * platform specific improvements and fixes | |
10242 + Fix long double problems on x86 (exposed by glibc). | |
10243 + x86 ports define i386 again to keep imake happy. | |
10244 + Fix exception handling support on NetBSD ports. | |
10245 + Several changes to collect2 to fix many problems with AIX. | |
10246 + Define __ELF__ for rs6000/linux. | |
10247 + Fix -mcall-linux problem on rs6000/linux. | |
10248 + Fix stdarg/vararg problem for rs6000/linux. | |
10249 + Allow autoconf to select a proper install problem on AIX 3.1. | |
10250 + m68k port support includes -mcpu32 option as well as cpu32 | |
10251 multilibs. | |
10252 + Fix stdarg bug for irix6. | |
10253 + Allow EGCS to build on irix5 without the gnu assembler. | |
10254 + Fix problem with static linking on sco5. | |
10255 + Fix bootstrap on sco5 with native compiler. | |
10256 + Fix for abort building newlib on H8 target. | |
10257 + Fix fixincludes handling of math.h on SunOS. | |
10258 + Minor fix for Motorola 3300 m68k systems. | |
10259 | |
10260 EGCS 1.0.3 is a minor update to the EGCS 1.0.2 compiler to fix a few | |
10261 problems reported by Red Hat for builds of Red Hat 5.1. | |
10262 * Generic bugfixes: | |
10263 + Fix a typo in the libio library which resulted in incorrect | |
10264 behavior of istream::get. | |
10265 + Fix the Fortran negative array index problem. | |
10266 + Fix a major problem with the ObjC runtime thread support | |
10267 exposed by glibc2. | |
10268 + Reduce memory consumption of the Haifa scheduler. | |
10269 * Target specific bugfixes: | |
10270 + Fix one x86 floating point code generation bug exposed by | |
10271 glibc2 builds. | |
10272 + Fix one x86 internal compiler error exposed by glibc2 builds. | |
10273 + Fix profiling bugs on the Alpha. | |
10274 + Fix ImageMagick & emacs 20.2 build problems on the Alpha. | |
10275 + Fix rs6000/ppc bug when converting values from integer types | |
10276 to floating point types. | |
10277 | |
10278 The EGCS 1.0 releases include installation instructions in both HTML | |
10279 and plaintext forms (see the INSTALL directory in the toplevel | |
10280 directory of the distribution). However, we also keep the most up to | |
10281 date [2]installation instructions and [3]build/test status on our web | |
10282 page. We will update those pages as new information becomes available. | |
10283 | |
10284 And, we can't in good conscience fail to mention some [4]caveats to | |
10285 using EGCS. | |
10286 | |
10287 Update: Big thanks to Stanford for providing a high speed link for | |
10288 downloading EGCS (go.cygnus.com)! | |
10289 | |
10290 Download EGCS from ftp.cygnus.com (USA California) or go.cygnus.com | |
10291 (USA California -- High speed link provided by Stanford). | |
10292 | |
10293 The EGCS 1.0 release is also available many mirror sites. | |
10294 [5]Goto mirror list to find a closer site | |
10295 | |
10296 We'd like to thank the numerous people that have contributed new | |
10297 features, test results, bugfixes, etc. Unfortunately, they're far too | |
10298 numerous to mention by name. | |
10299 | |
10300 Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There | |
10301 are also [7]other ways to contact the FSF. | |
10302 | |
10303 These pages are maintained by [8]the GCC team. | |
10304 | |
10305 | |
10306 For questions related to the use of GCC, please consult these web | |
10307 pages and the [9]GCC manuals. If that fails, the | |
10308 [10]gcc-help@gcc.gnu.org mailing list might help. | |
10309 Please send comments on these web pages and the development of GCC to | |
10310 our developer mailing list at [11]gcc@gnu.org or [12]gcc@gcc.gnu.org. | |
10311 All of our lists have [13]public archives. | |
10312 | |
10313 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10314 Floor, Boston, MA 02110, USA. | |
10315 | |
10316 Verbatim copying and distribution of this entire article is permitted | |
10317 in any medium, provided this notice is preserved. | |
10318 Last modified 2007-07-25 [14]Valid XHTML 1.0 | |
10319 | |
10320 References | |
10321 | |
10322 1. http://gcc.gnu.org/egcs-1.0/features.html | |
10323 2. http://gcc.gnu.org/install/ | |
10324 3. http://gcc.gnu.org/egcs-1.0/buildstat.html | |
10325 4. http://gcc.gnu.org/egcs-1.0/caveats.html | |
10326 5. http://gcc.gnu.org/mirrors.html | |
10327 6. mailto:gnu@gnu.org | |
10328 7. http://www.gnu.org/home.html#ContactInfo | |
10329 8. http://gcc.gnu.org/about.html | |
10330 9. http://gcc.gnu.org/onlinedocs/ | |
10331 10. mailto:gcc-help@gcc.gnu.org | |
10332 11. mailto:gcc@gnu.org | |
10333 12. mailto:gcc@gcc.gnu.org | |
10334 13. http://gcc.gnu.org/lists.html | |
10335 14. http://validator.w3.org/check/referer | |
10336 ====================================================================== | |
10337 http://gcc.gnu.org/egcs-1.0/features.html | |
10338 EGCS 1.0 features | |
10339 | |
10340 * Core compiler is based on the gcc2 development tree from Aug 2, | |
10341 1997, so we have most of the [1]features found in GCC 2.8. | |
10342 * Integrated GNU Fortran compiler based on g77-0.5.22-19970929. | |
10343 * Vast improvements in the C++ compiler; so many they have [2]page of | |
10344 their own! | |
10345 * Integrated C++ runtime libraries, including support for most major | |
10346 linux systems! | |
10347 * New instruction scheduler from IBM Haifa which includes support for | |
10348 function wide instruction scheduling as well as superscalar | |
10349 scheduling. | |
10350 * Significantly improved alias analysis code. | |
10351 * Improved register allocation for two address machines. | |
10352 * Significant code generation improvements for Fortran code on | |
10353 Alphas. | |
10354 * Various optimizations from the g77 project as well as improved loop | |
10355 optimizations. | |
10356 * Dwarf2 debug format support for some targets. | |
10357 * egcs libstdc++ includes the SGI STL implementation without changes. | |
10358 * As a result of these and other changes, egcs libstc++ is not binary | |
10359 compatible with previous releases of libstdc++. | |
10360 * Various new ports -- UltraSPARC, Irix6.2 & Irix6.3 support, The SCO | |
10361 Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and | |
10362 1.1), Support for RTEMS on several embedded targets, Support for | |
10363 arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and | |
10364 MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc. | |
10365 * Integrated testsuites for gcc, g++, g77, libstdc++ and libio. | |
10366 * RS6000/PowerPC ports generate code which can run on all | |
10367 RS6000/PowerPC variants by default. | |
10368 * -mcpu= and -march= switches for the x86 port to allow better | |
10369 control over how the x86 port generates code. | |
10370 * Includes the template repository patch (aka repo patch); note the | |
10371 new template code makes repo obsolete for ELF systems using gnu-ld | |
10372 such as Linux. | |
10373 * Plus the usual assortment of bugfixes and improvements. | |
10374 | |
10375 Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There | |
10376 are also [4]other ways to contact the FSF. | |
10377 | |
10378 These pages are maintained by [5]the GCC team. | |
10379 | |
10380 | |
10381 For questions related to the use of GCC, please consult these web | |
10382 pages and the [6]GCC manuals. If that fails, the | |
10383 [7]gcc-help@gcc.gnu.org mailing list might help. | |
10384 Please send comments on these web pages and the development of GCC to | |
10385 our developer mailing list at [8]gcc@gnu.org or [9]gcc@gcc.gnu.org. | |
10386 All of our lists have [10]public archives. | |
10387 | |
10388 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10389 Floor, Boston, MA 02110, USA. | |
10390 | |
10391 Verbatim copying and distribution of this entire article is permitted | |
10392 in any medium, provided this notice is preserved. | |
10393 Last modified 2007-07-25 [11]Valid XHTML 1.0 | |
10394 | |
10395 References | |
10396 | |
10397 1. http://gcc.gnu.org/egcs-1.0/features-2.8.html | |
10398 2. http://gcc.gnu.org/egcs-1.0/c++features.html | |
10399 3. mailto:gnu@gnu.org | |
10400 4. http://www.gnu.org/home.html#ContactInfo | |
10401 5. http://gcc.gnu.org/about.html | |
10402 6. http://gcc.gnu.org/onlinedocs/ | |
10403 7. mailto:gcc-help@gcc.gnu.org | |
10404 8. mailto:gcc@gnu.org | |
10405 9. mailto:gcc@gcc.gnu.org | |
10406 10. http://gcc.gnu.org/lists.html | |
10407 11. http://validator.w3.org/check/referer | |
10408 ====================================================================== | |
10409 http://gcc.gnu.org/egcs-1.0/caveats.html | |
10410 EGCS 1.0 Caveats | |
10411 | |
10412 * EGCS has an integrated libstdc++, but does not have an integrated | |
10413 libg++. Furthermore old libg++ releases will not work with egc; HJ | |
10414 Lu has made a libg++-2.8.1.2 available which may work with EGCS. | |
10415 Note most C++ programs only need libstdc++. | |
10416 * Note that using -pedantic or -Wreturn-type can cause an explosion | |
10417 in the amount of memory needed for template-heavy C++ code, such as | |
10418 code that uses STL. Also note that -Wall includes -Wreturn-type, so | |
10419 if you use -Wall you will need to specify -Wno-return-type to turn | |
10420 it off. | |
10421 * Exception handling may not work with shared libraries, particularly | |
10422 on alphas, hppas, and mips based platforms. Exception handling is | |
10423 known to work on x86-linux platforms with shared libraries. | |
10424 * Some versions of the Linux kernel have bugs which prevent them from | |
10425 being compiled or from running when compiled by EGCS. See the FAQ | |
10426 (as shipped with EGCS 1.0) for additional information. | |
10427 * In general, EGCS is more rigorous about rejecting invalid C++ code | |
10428 or deprecated C++ constructs than G++ 2.7. As a result it may be | |
10429 necessary to fix C++ code before it will compile with EGCS. | |
10430 * G++ is also aggressively tracking the C++ standard; as a result | |
10431 code which was previously valid (and thus accepted by other | |
10432 compilers and older versions of G++) may no longer be accepted. | |
10433 * EGCS 1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS | |
10434 1.0.x and later releases should work with Red Hat Linux 5.0. | |
10435 | |
10436 Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There | |
10437 are also [2]other ways to contact the FSF. | |
10438 | |
10439 These pages are maintained by [3]the GCC team. | |
10440 | |
10441 | |
10442 For questions related to the use of GCC, please consult these web | |
10443 pages and the [4]GCC manuals. If that fails, the | |
10444 [5]gcc-help@gcc.gnu.org mailing list might help. | |
10445 Please send comments on these web pages and the development of GCC to | |
10446 our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. | |
10447 All of our lists have [8]public archives. | |
10448 | |
10449 Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth | |
10450 Floor, Boston, MA 02110, USA. | |
10451 | |
10452 Verbatim copying and distribution of this entire article is permitted | |
10453 in any medium, provided this notice is preserved. | |
10454 Last modified 2007-07-25 [9]Valid XHTML 1.0 | |
10455 | |
10456 References | |
10457 | |
10458 1. mailto:gnu@gnu.org | |
10459 2. http://www.gnu.org/home.html#ContactInfo | |
10460 3. http://gcc.gnu.org/about.html | |
10461 4. http://gcc.gnu.org/onlinedocs/ | |
10462 5. mailto:gcc-help@gcc.gnu.org | |
10463 6. mailto:gcc@gnu.org | |
10464 7. mailto:gcc@gcc.gnu.org | |
10465 8. http://gcc.gnu.org/lists.html | |
10466 9. http://validator.w3.org/check/referer | |
10467 ====================================================================== |