| This file contains information about GCC releases which has been generated |
| automatically from the online release notes. It covers releases of GCC |
| (and the former EGCS project) since EGCS 1.0, on the line of development |
| that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, |
| see ONEWS. |
| |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.4/index.html |
| GCC 4.4 Release Series |
| |
| October 15, 2009 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 4.4.3. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 4.4.1 relative to previous releases of GCC. |
| |
| Release History |
| |
| GCC 4.4.3 |
| January 21, 2010 ([2]changes) |
| |
| GCC 4.4.2 |
| October 15, 2009 ([3]changes) |
| |
| GCC 4.4.1 |
| July 22, 2009 ([4]changes) |
| |
| GCC 4.4.0 |
| April 21, 2009 ([5]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [6]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [7]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [8]GCC project |
| web site or contact the [9]GCC development mailing list. |
| |
| To obtain GCC please use [10]our mirror sites or [11]our SVN server. |
| |
| Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There |
| are also [13]other ways to contact the FSF. |
| |
| These pages are maintained by [14]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [15]GCC manuals. If that fails, the |
| [16]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. |
| All of our lists have [19]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2010-01-21 [20]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-4.4/changes.html |
| 3. http://gcc.gnu.org/gcc-4.4/changes.html |
| 4. http://gcc.gnu.org/gcc-4.4/changes.html |
| 5. http://gcc.gnu.org/gcc-4.4/changes.html |
| 6. http://gcc.gnu.org/gcc-4.4/buildstat.html |
| 7. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 8. http://gcc.gnu.org/index.html |
| 9. mailto:gcc@gcc.gnu.org |
| 10. http://gcc.gnu.org/mirrors.html |
| 11. http://gcc.gnu.org/svn.html |
| 12. mailto:gnu@gnu.org |
| 13. http://www.gnu.org/home.html#ContactInfo |
| 14. http://gcc.gnu.org/about.html |
| 15. http://gcc.gnu.org/onlinedocs/ |
| 16. mailto:gcc-help@gcc.gnu.org |
| 17. mailto:gcc@gnu.org |
| 18. mailto:gcc@gcc.gnu.org |
| 19. http://gcc.gnu.org/lists.html |
| 20. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.4/changes.html |
| GCC 4.4 Release Series |
| Changes, New Features, and Fixes |
| |
| The latest release in the 4.4 release series is [1]GCC 4.4.3. |
| |
| Caveats |
| |
| * __builtin_stdarg_start has been completely removed from GCC. |
| Support for <varargs.h> had been deprecated since GCC 4.0. Use |
| __builtin_va_start as a replacement. |
| * Some of the errors issued by the C++ front end that could be |
| downgraded to warnings in previous releases by using -fpermissive |
| are now warnings by default. They can be converted into errors by |
| using -pedantic-errors. |
| * Use of the cpp assertion extension will now emit a warning when |
| -Wdeprecated or -pedantic is used. This extension has been |
| deprecated for many years, but never warned about. |
| * Packed bit-fields of type char were not properly bit-packed on many |
| targets prior to GCC 4.4. On these targets, the fix in GCC 4.4 |
| causes an ABI change. For example there is no longer a 4-bit |
| padding between field a and b in this structure: |
| struct foo |
| { |
| char a:4; |
| char b:8; |
| } __attribute__ ((packed)); |
| There is a new warning to help identify fields that are affected: |
| foo.c:5: note: Offset of packed bit-field 'b' has changed in GCC 4.4 |
| The warning can be disabled with -Wno-packed-bitfield-compat. |
| * On ARM EABI targets, the C++ mangling of the va_list type has been |
| changed to conform to the current revision of the EABI. This does |
| not affect the libstdc++ library included with GCC. |
| * The SCOUNT and POS bits of the MIPS DSP control register are now |
| treated as global. Previous versions of GCC treated these fields as |
| call-clobbered instead. |
| * The MIPS port no longer recognizes the h asm constraint. It was |
| necessary to remove this constraint in order to avoid generating |
| unpredictable code sequences. |
| One of the main uses of the h constraint was to extract the high |
| part of a multiplication on 64-bit targets. For example: |
| asm ("dmultu\t%1,%2" : "=h" (result) : "r" (x), "r" (y)); |
| You can now achieve the same effect using 128-bit types: |
| typedef unsigned int uint128_t __attribute__((mode(TI))); |
| result = ((uint128_t) x * y) >> 64; |
| The second sequence is better in many ways. For example, if x and y |
| are constants, the compiler can perform the multiplication at |
| compile time. If x and y are not constants, the compiler can |
| schedule the runtime multiplication better than it can schedule an |
| asm statement. |
| * Support for a number of older systems and recently unmaintained or |
| untested target ports of GCC has been declared obsolete in GCC 4.4. |
| Unless there is activity to revive them, the next release of GCC |
| will have their sources permanently removed. |
| The following ports for individual systems on particular |
| architectures have been obsoleted: |
| + Generic a.out on IA32 and m68k (i[34567]86-*-aout*, |
| m68k-*-aout*) |
| + Generic COFF on ARM, H8300, IA32, m68k and SH (arm-*-coff*, |
| armel-*-coff*, h8300-*-*, i[34567]86-*-coff*, m68k-*-coff*, |
| sh-*-*). This does not affect other more specific targets |
| using the COFF object format on those architectures, or the |
| more specific H8300 and SH targets (h8300-*-rtems*, |
| h8300-*-elf*, sh-*-elf*, sh-*-symbianelf*, sh-*-linux*, |
| sh-*-netbsdelf*, sh-*-rtems*, sh-wrs-vxworks). |
| + 2BSD on PDP-11 (pdp11-*-bsd) |
| + AIX 4.1 and 4.2 on PowerPC (rs6000-ibm-aix4.[12]*, |
| powerpc-ibm-aix4.[12]*) |
| + Tuning support for Itanium1 (Merced) variants. Note that code |
| tuned for Itanium2 should also run correctly on Itanium1. |
| * The protoize and unprotoize utilities have been obsoleted and will |
| be removed in GCC 4.5. These utilities have not been installed by |
| default since GCC 3.0. |
| * Support has been removed for all the [2]configurations obsoleted in |
| GCC 4.3. |
| * Unknown -Wno-* options are now silently ignored by GCC if no other |
| diagnostics are issued. If other diagnostics are issued, then GCC |
| warns about the unknown options. |
| * More information on porting to GCC 4.4 from previous versions of |
| GCC can be found in the [3]porting guide for this release. |
| |
| General Optimizer Improvements |
| |
| * A new command-line switch -findirect-inlining has been added. When |
| turned on it allows the inliner to also inline indirect calls that |
| are discovered to have known targets at compile time thanks to |
| previous inlining. |
| * A new command-line switch -ftree-switch-conversion has been added. |
| This new pass turns simple initializations of scalar variables in |
| switch statements into initializations from a static array, given |
| that all the values are known at compile time and the ratio between |
| the new array size and the original switch branches does not exceed |
| the parameter --param switch-conversion-max-branch-ratio (default |
| is eight). |
| * A new command-line switch -ftree-builtin-call-dce has been added. |
| This optimization eliminates unnecessary calls to certain builtin |
| functions when the return value is not used, in cases where the |
| calls can not be eliminated entirely because the function may set |
| errno. This optimization is on by default at -O2 and above. |
| * A new command-line switch -fconserve-stack directs the compiler to |
| minimize stack usage even if it makes the generated code slower. |
| This affects inlining decisions. |
| * When the assembler supports it, the compiler will now emit unwind |
| information using assembler .cfi directives. This makes it possible |
| to use such directives in inline assembler code. The new option |
| -fno-dwarf2-cfi-asm directs the compiler to not use .cfi |
| directives. |
| * The [4]Graphite branch has been merged. This merge has brought in a |
| new framework for loop optimizations based on a polyhedral |
| intermediate representation. These optimizations apply to all the |
| languages supported by GCC. The following new code transformations |
| are available in GCC 4.4: |
| + -floop-interchange performs loop interchange transformations |
| on loops. Interchanging two nested loops switches the inner |
| and outer loops. For example, given a loop like: |
| DO J = 1, M |
| DO I = 1, N |
| A(J, I) = A(J, I) * C |
| ENDDO |
| ENDDO |
| |
| loop interchange will transform the loop as if the user had |
| written: |
| DO I = 1, N |
| DO J = 1, M |
| A(J, I) = A(J, I) * C |
| ENDDO |
| ENDDO |
| |
| which can be beneficial when N is larger than the caches, |
| because in Fortran, the elements of an array are stored in |
| memory contiguously by column, and the original loop iterates |
| over rows, potentially creating at each access a cache miss. |
| + -floop-strip-mine performs loop strip mining transformations |
| on loops. Strip mining splits a loop into two nested loops. |
| The outer loop has strides equal to the strip size and the |
| inner loop has strides of the original loop within a strip. |
| For example, given a loop like: |
| DO I = 1, N |
| A(I) = A(I) + C |
| ENDDO |
| |
| loop strip mining will transform the loop as if the user had |
| written: |
| DO II = 1, N, 4 |
| DO I = II, min (II + 3, N) |
| A(I) = A(I) + C |
| ENDDO |
| ENDDO |
| |
| + -floop-block performs loop blocking transformations on loops. |
| Blocking strip mines each loop in the loop nest such that the |
| memory accesses of the element loops fit inside caches. For |
| example, given a loop like: |
| DO I = 1, N |
| DO J = 1, M |
| A(J, I) = B(I) + C(J) |
| ENDDO |
| ENDDO |
| |
| loop blocking will transform the loop as if the user had |
| written: |
| DO II = 1, N, 64 |
| DO JJ = 1, M, 64 |
| DO I = II, min (II + 63, N) |
| DO J = JJ, min (JJ + 63, M) |
| A(J, I) = B(I) + C(J) |
| ENDDO |
| ENDDO |
| ENDDO |
| ENDDO |
| |
| which can be beneficial when M is larger than the caches, |
| because the innermost loop will iterate over a smaller amount |
| of data that can be kept in the caches. |
| * A new register allocator has replaced the old one. It is called |
| integrated register allocator (IRA) because coalescing, register |
| live range splitting, and hard register preferencing are done |
| on-the-fly during coloring. It also has better integration with the |
| reload pass. IRA is a regional register allocator which uses modern |
| Chaitin-Briggs coloring instead of Chow's priority coloring used in |
| the old register allocator. More info about IRA internals and |
| options can be found in the GCC manuals. |
| * A new instruction scheduler and software pipeliner, based on the |
| selective scheduling approach, has been added. The new pass |
| performs instruction unification, register renaming, substitution |
| through register copies, and speculation during scheduling. The |
| software pipeliner is able to pipeline non-countable loops. The new |
| pass is targeted at scheduling-eager in-order platforms. In GCC 4.4 |
| it is available for the Intel Itanium platform working by default |
| as the second scheduling pass (after register allocation) at the |
| -O3 optimization level. |
| * When using -fprofile-generate with a multi-threaded program, the |
| profile counts may be slightly wrong due to race conditions. The |
| new -fprofile-correction option directs the compiler to apply |
| heuristics to smooth out the inconsistencies. By default the |
| compiler will give an error message when it finds an inconsistent |
| profile. |
| * The new -fprofile-dir=PATH option permits setting the directory |
| where profile data files are stored when using -fprofile-generate |
| and friends, and the directory used when reading profile data files |
| using -fprofile-use and friends. |
| |
| New warning options |
| |
| * The new -Wframe-larger-than=NUMBER option directs GCC to emit a |
| warning if any stack frame is larger than NUMBER bytes. This may be |
| used to help ensure that code fits within a limited amount of stack |
| space. |
| * The new -Wno-mudflap option disables warnings about constructs |
| which can not be instrumented when using -fmudflap. |
| |
| New Languages and Language specific improvements |
| |
| * Version 3.0 of the [5]OpenMP specification is now supported for the |
| C, C++, and Fortran compilers. |
| * New character data types, per [6]TR 19769: New character types in |
| C, are now supported for the C compiler in -std=gnu99 mode, as |
| __CHAR16_TYPE__ and __CHAR32_TYPE__, and for the C++ compiler in |
| -std=c++0x and -std=gnu++0x modes, as char16_t and char32_t too. |
| |
| C family |
| |
| * A new optimize attribute was added to allow programmers to change |
| the optimization level and particular optimization options for an |
| individual function. You can also change the optimization options |
| via the GCC optimize pragma for functions defined after the pragma. |
| The GCC push_options pragma and the GCC pop_options pragma allow |
| you temporarily save and restore the options used. The GCC |
| reset_options pragma restores the options to what was specified on |
| the command line. |
| * Uninitialized warnings do not require enabling optimization |
| anymore, that is, -Wuninitialized can be used together with -O0. |
| Nonetheless, the warnings given by -Wuninitialized will probably be |
| more accurate if optimization is enabled. |
| * -Wparentheses now warns about expressions such as (!x | y) and (!x |
| & y). Using explicit parentheses, such as in ((!x) | y), silences |
| this warning. |
| * -Wsequence-point now warns within if, while,do while and for |
| conditions, and within for begin/end expressions. |
| * A new option -dU is available to dump definitions of preprocessor |
| macros that are tested or expanded. |
| |
| C++ |
| |
| * [7]Improved experimental support for the upcoming ISO C++ standard, |
| C++0x. Including support for auto, inline namespaces, generalized |
| initializer lists, defaulted and deleted functions, new character |
| types, and scoped enums. |
| * Those errors that may be downgraded to warnings to build legacy |
| code now mention -fpermissive when -fdiagnostics-show-option is |
| enabled. |
| * -Wconversion now warns if the result of a static_cast to enumeral |
| type is unspecified because the value is outside the range of the |
| enumeral type. |
| * -Wuninitialized now warns if a non-static reference or non-static |
| const member appears in a class without constructors. |
| * G++ now properly implements value-initialization, so objects with |
| an initializer of () and an implicitly defined default constructor |
| will be zero-initialized before the default constructor is called. |
| |
| Runtime Library (libstdc++) |
| |
| * [8]Improved experimental support for the upcoming ISO C++ standard, |
| C++0x, including: |
| + Support for <chrono>, <condition_variable>, <cstdatomic>, |
| <forward_list>, <initializer_list>, <mutex>, <ratio>, |
| <system_error>, and <thread>. |
| + unique_ptr, <algorithm> additions, exception propagation, and |
| support for the new character types in <string> and <limits>. |
| + Existing facilities now exploit initializer lists, defaulted |
| and deleted functions, and the newly implemented core C++0x |
| features. |
| + Some standard containers are more efficient together with |
| stateful allocators, i.e., no allocator is constructed on the |
| fly at element construction time. |
| * Experimental support for non-standard pointer types in containers. |
| * The long standing libstdc++/30928 has been fixed for targets |
| running glibc 2.10 or later. |
| * As usual, many small and larger bug fixes, in particular quite a |
| few corner cases in <locale>. |
| |
| Fortran |
| |
| * GNU Fortran now employs libcpp directly instead of using cc1 as an |
| external preprocessor. The [9]-cpp option was added to allow manual |
| invocation of the preprocessor without relying on filename |
| extensions. |
| * The [10]-Warray-temporaries option warns about array temporaries |
| generated by the compiler, as an aid to optimization. |
| * The [11]-fcheck-array-temporaries option has been added, printing a |
| notification at run time, when an array temporary had to be created |
| for an function argument. Contrary to -Warray-temporaries the |
| warning is only printed if the array is noncontiguous. |
| * Improved generation of DWARF debugging symbols |
| * If using an intrinsic not part of the selected standard (via -std= |
| and -fall-intrinsics) gfortran will now treat it as if this |
| procedure were declared EXTERNAL and try to link to a user-supplied |
| procedure. -Wintrinsics-std will warn whenever this happens. The |
| now-useless option -Wnonstd-intrinsic was removed. |
| * The flag -falign-commons has been added to control the alignment of |
| variables in COMMON blocks, which is enabled by default in line |
| with previous GCC version. Using -fno-align-commons one can force |
| commons to be contiguous in memory as required by the Fortran |
| standard, however, this slows down the memory access. The option |
| -Walign-commons, which is enabled by default, warns when padding |
| bytes were added for alignment. The proper solution is to sort the |
| common objects by decreasing storage size, which avoids the |
| alignment problems. |
| * Fortran 2003 support has been extended: |
| + Wide characters (ISO 10646, UCS-4, kind=4) and UTF-8 I/O is |
| now supported (except internal reads from/writes to wide |
| strings). [12]-fbackslash now supports also \unnnn and |
| \Unnnnnnnn to enter Unicode characters. |
| + Asynchronous I/O (implemented as synchronous I/O) and the |
| decimal=, size=, sign=, pad=, blank=, and delim= specifiers |
| are now supported in I/O statements. |
| + Support for Fortran 2003 structure constructors and for array |
| constructor with typespec has been added. |
| + Procedure Pointers (but not yet as component in derived types |
| and as function results) are now supported. |
| + Abstract types, type extension, and type-bound procedures |
| (both PROCEDURE and GENERIC but not as operators). Note: As |
| CLASS/polymorphyic types are not implemented, type-bound |
| procedures with PASS accept as non-standard extension TYPE |
| arguments. |
| * Fortran 2008 support has been added: |
| + The -std=f2008 option and support for the file extensions |
| .f2008 and .F2008 has been added. |
| + The g0 format descriptor is now supported. |
| + The Fortran 2008 mathematical intrinsics ASINH, ACOSH, ATANH, |
| ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_*, HYPOT, and ERFC_SCALED |
| are now available (some of them existed as GNU extension |
| before). Note: The hyperbolic functions are not yet supporting |
| complex arguments and the three- argument version of BESSEL_*N |
| is not available. |
| + The bit intrinsics LEADZ and TRAILZ have been added. |
| |
| Java (GCJ) |
| |
| Ada |
| |
| * The Ada runtime now supports multilibs on many platforms including |
| x86_64, SPARC and PowerPC. Their build is enabled by default. |
| |
| New Targets and Target Specific Improvements |
| |
| ARM |
| |
| * GCC now supports optimizing for the Cortex-A9, Cortex-R4 and |
| Cortex-R4F processors and has many other improvements to |
| optimization for ARM processors. |
| * GCC now supports the VFPv3 variant with 16 double-precision |
| registers with -mfpu=vfpv3-d16. The option -mfpu=vfp3 has been |
| renamed to -mfpu=vfpv3. |
| * GCC now supports the -mfix-cortex-m3-ldrd option to work around an |
| erratum on Cortex-M3 processors. |
| * GCC now supports the __sync_* atomic operations for ARM EABI |
| GNU/Linux. |
| * The section anchors optimization is now enabled by default when |
| optimizing for ARM. |
| * GCC now uses a new EABI-compatible profiling interface for EABI |
| targets. This requires a function __gnu_mcount_nc, which is |
| provided by GNU libc versions 2.8 and later. |
| |
| AVR |
| |
| * The -mno-tablejump option has been deprecated because it has the |
| same effect as the -fno-jump-tables option. |
| * Added support for these new AVR devices: |
| + ATA6289 |
| + ATtiny13A |
| + ATtiny87 |
| + ATtiny167 |
| + ATtiny327 |
| + ATmega8C1 |
| + ATmega16C1 |
| + ATmega32C1 |
| + ATmega8M1 |
| + ATmega16M1 |
| + ATmega32M1 |
| + ATmega32U4 |
| + ATmega16HVB |
| + ATmega4HVD |
| + ATmega8HVD |
| + ATmega64C1 |
| + ATmega64M1 |
| + ATmega16U4 |
| + ATmega32U6 |
| + ATmega128RFA1 |
| + AT90PWM81 |
| + AT90SCR100 |
| + M3000F |
| + M3000S |
| + M3001B |
| |
| IA-32/x86-64 |
| |
| * Support for Intel AES built-in functions and code generation is |
| available via -maes. |
| * Support for Intel PCLMUL built-in function and code generation is |
| available via -mpclmul. |
| * Support for Intel AVX built-in functions and code generation is |
| available via -mavx. |
| * Automatically align the stack for local variables with alignment |
| requirement. |
| * GCC can now utilize the SVML library for vectorizing calls to a set |
| of C99 functions if -mveclibabi=svml is specified and you link to |
| an SVML ABI compatible library. |
| * On x86-64, the ABI has been changed in the following cases to |
| conform to the x86-64 ABI: |
| + Passing/returning structures with flexible array member: |
| struct foo |
| { |
| int i; |
| int flex[]; |
| }; |
| + Passing/returning structures with complex float member: |
| struct foo |
| { |
| int i; |
| __complex__ float f; |
| }; |
| + Passing/returning unions with long double member: |
| union foo |
| { |
| int x; |
| long double ld; |
| }; |
| Code built with previous versions of GCC that uses any of these is |
| not compatible with code built with GCC 4.4.0 or later. |
| * A new target attribute was added to allow programmers to change the |
| target options like -msse2 or -march=k8 for an individual function. |
| You can also change the target options via the GCC target pragma |
| for functions defined after the pragma. |
| * GCC can now be configured with options --with-arch-32, |
| --with-arch-64, --with-cpu-32, --with-cpu-64, --with-tune-32 and |
| --with-tune-64 to control the default optimization separately for |
| 32-bit and 64-bit modes. |
| |
| IA-32/IA64 |
| |
| * Support for __float128 (TFmode) IEEE quad type and corresponding |
| TCmode IEEE complex quad type is available via the soft-fp library |
| on IA-32/IA64 targets. This includes basic arithmetic operations |
| (addition, subtraction, negation, multiplication and division) on |
| __float128 real and TCmode complex values, the full set of IEEE |
| comparisons between __float128 values, conversions to and from |
| float, double and long double floating point types, as well as |
| conversions to and from signed or unsigned integer, signed or |
| unsigned long integer and signed or unsigned quad (TImode, IA64 |
| only) integer types. Additionally, all operations generate the full |
| set of IEEE exceptions and support the full set of IEEE rounding |
| modes. |
| |
| M68K/ColdFire |
| |
| * GCC now supports instruction scheduling for ColdFire V1, V3 and V4 |
| processors. (Scheduling support for ColdFire V2 processors was |
| added in GCC 4.3.) |
| * GCC now supports the -mxgot option to support programs requiring |
| many GOT entries on ColdFire. |
| * The m68k-*-linux-gnu target now builds multilibs by default. |
| |
| MIPS |
| |
| * MIPS Technologies have extended the original MIPS SVR4 ABI to |
| include support for procedure linkage tables (PLTs) and copy |
| relocations. These extensions allow GNU/Linux executables to use a |
| significantly more efficient code model than the one defined by the |
| original ABI. |
| GCC support for this code model is available via a new command-line |
| option, -mplt. There is also a new configure-time option, |
| --with-mips-plt, to make -mplt the default. |
| The new code model requires support from the assembler, the linker, |
| and the runtime C library. This support is available in binutils |
| 2.19 and GLIBC 2.9. |
| * GCC can now generate MIPS16 code for 32-bit GNU/Linux executables |
| and 32-bit GNU/Linux shared libraries. This feature requires GNU |
| binutils 2.19 or above. |
| * Support for RMI's XLR processor is now available through the |
| -march=xlr and -mtune=xlr options. |
| * 64-bit targets can now perform 128-bit multiplications inline, |
| instead of relying on a libgcc function. |
| * Native GNU/Linux toolchains now support -march=native and |
| -mtune=native, which select the host processor. |
| * GCC now supports the R10K, R12K, R14K and R16K processors. The |
| canonical -march= and -mtune= names for these processors are |
| r10000, r12000, r14000 and r16000 respectively. |
| * GCC can now work around the side effects of speculative execution |
| on R10K processors. Please see the documentation of the |
| -mr10k-cache-barrier option for details. |
| * Support for the MIPS64 Release 2 instruction set has been added. |
| The option -march=mips64r2 enables generation of these |
| instructions. |
| * GCC now supports Cavium Networks' Octeon processor. This support is |
| available through the -march=octeon and -mtune=octeon options. |
| * GCC now supports STMicroelectronics' Loongson 2E/2F processors. The |
| canonical -march= and -mtune= names for these processors are |
| loongson2e and loongson2f. |
| |
| picochip |
| |
| Picochip is a 16-bit processor. A typical picoChip contains over 250 |
| small cores, each with small amounts of memory. There are three |
| processor variants (STAN, MEM and CTRL) with different instruction sets |
| and memory configurations and they can be chosen using the -mae option. |
| |
| This port is intended to be a "C" only port. |
| |
| Power Architecture and PowerPC |
| |
| * GCC now supports the e300c2, e300c3 and e500mc processors. |
| * GCC now supports Xilinx processors with a single-precision FPU. |
| * Decimal floating point is now supported for e500 processors. |
| |
| S/390, zSeries and System z9/z10 |
| |
| * Support for the IBM System z10 EC/BC processor has been added. When |
| using the -march=z10 option, the compiler will generate code making |
| use of instructions provided by the General-Instruction-Extension |
| Facility and the Execute-Extension Facility. |
| |
| VxWorks |
| |
| * GCC now supports the thread-local storage mechanism used on |
| VxWorks. |
| |
| Xtensa |
| |
| * GCC now supports thread-local storage (TLS) for Xtensa processor |
| configurations that include the Thread Pointer option. TLS also |
| requires support from the assembler and linker; this support is |
| provided in the GNU binutils beginning with version 2.19. |
| |
| Documentation improvements |
| |
| Other significant improvements |
| |
| GCC 4.4.1 |
| |
| This is the [13]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.4.1 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| GCC 4.4.2 |
| |
| This is the [14]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.4.2 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| GCC 4.4.3 |
| |
| This is the [15]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.4.3 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There |
| are also [17]other ways to contact the FSF. |
| |
| These pages are maintained by [18]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [19]GCC manuals. If that fails, the |
| [20]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. |
| All of our lists have [23]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2010-01-21 [24]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.3 |
| 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted |
| 3. http://gcc.gnu.org/gcc-4.4/porting_to.html |
| 4. http://gcc.gnu.org/wiki/Graphite |
| 5. http://openmp.org/wp/openmp-specifications/ |
| 6. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf |
| 7. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html |
| 8. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#id476343 |
| 9. http://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html |
| 10. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 |
| 11. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 |
| 12. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34 |
| 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1 |
| 14. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2 |
| 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3 |
| 16. mailto:gnu@gnu.org |
| 17. http://www.gnu.org/home.html#ContactInfo |
| 18. http://gcc.gnu.org/about.html |
| 19. http://gcc.gnu.org/onlinedocs/ |
| 20. mailto:gcc-help@gcc.gnu.org |
| 21. mailto:gcc@gnu.org |
| 22. mailto:gcc@gcc.gnu.org |
| 23. http://gcc.gnu.org/lists.html |
| 24. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.3/index.html |
| GCC 4.3 Release Series |
| |
| January 24, 2009 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 4.3.4. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 4.3.3 relative to previous releases of GCC. |
| |
| Release History |
| |
| GCC 4.3.4 |
| August 4, 2009 ([2]changes) |
| |
| GCC 4.3.3 |
| January 24, 2009 ([3]changes) |
| |
| GCC 4.3.2 |
| August 27, 2008 ([4]changes) |
| |
| GCC 4.3.1 |
| June 6, 2008 ([5]changes) |
| |
| GCC 4.3.0 |
| March 5, 2008 ([6]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [7]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [8]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [9]GCC project |
| web site or contact the [10]GCC development mailing list. |
| |
| To obtain GCC please use [11]our mirror sites or [12]our SVN server. |
| |
| Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There |
| are also [14]other ways to contact the FSF. |
| |
| These pages are maintained by [15]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [16]GCC manuals. If that fails, the |
| [17]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. |
| All of our lists have [20]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2009-10-15 [21]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-4.3/changes.html |
| 3. http://gcc.gnu.org/gcc-4.3/changes.html |
| 4. http://gcc.gnu.org/gcc-4.3/changes.html |
| 5. http://gcc.gnu.org/gcc-4.3/changes.html |
| 6. http://gcc.gnu.org/gcc-4.3/changes.html |
| 7. http://gcc.gnu.org/gcc-4.3/buildstat.html |
| 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 9. http://gcc.gnu.org/index.html |
| 10. mailto:gcc@gcc.gnu.org |
| 11. http://gcc.gnu.org/mirrors.html |
| 12. http://gcc.gnu.org/svn.html |
| 13. mailto:gnu@gnu.org |
| 14. http://www.gnu.org/home.html#ContactInfo |
| 15. http://gcc.gnu.org/about.html |
| 16. http://gcc.gnu.org/onlinedocs/ |
| 17. mailto:gcc-help@gcc.gnu.org |
| 18. mailto:gcc@gnu.org |
| 19. mailto:gcc@gcc.gnu.org |
| 20. http://gcc.gnu.org/lists.html |
| 21. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.3/changes.html |
| GCC 4.3 Release Series |
| Changes, New Features, and Fixes |
| |
| The latest release in the 4.3 release series is [1]GCC 4.3.4. |
| |
| Caveats |
| |
| * GCC requires the [2]GMP and [3]MPFR libraries for building all the |
| various front-end languages it supports. See the [4]prerequisites |
| page for version requirements. |
| * ColdFire targets now treat long double as having the same format as |
| double. In earlier versions of GCC, they used the 68881 long double |
| format instead. |
| * The m68k-uclinux target now uses the same calling conventions as |
| m68k-linux-gnu. You can select the original calling conventions by |
| configuring for m68k-uclinuxoldabi instead. Note that |
| m68k-uclinuxoldabi also retains the original 80-bit long double on |
| ColdFire targets. |
| * The -fforce-mem option has been removed because it has had no |
| effect in the last few GCC releases. |
| * The i386 -msvr3-shlib option has been removed since it is no longer |
| used. |
| * Fastcall for i386 has been changed not to pass aggregate arguments |
| in registers, following Microsoft compilers. |
| * Support for the AOF assembler has been removed from the ARM back |
| end; this affects only the targets arm-semi-aof and armel-semi-aof, |
| which are no longer recognized. We removed these targets without a |
| deprecation period because we discovered that they have been |
| unusable since GCC 4.0.0. |
| * Support for the TMS320C3x/C4x processor (targets c4x-* and tic4x-*) |
| has been removed. This support had been deprecated since GCC 4.0.0. |
| * Support for a number of older systems and recently unmaintained or |
| untested target ports of GCC has been declared obsolete in GCC 4.3. |
| Unless there is activity to revive them, the next release of GCC |
| will have their sources permanently removed. |
| All GCC ports for the following processor architectures have been |
| declared obsolete: |
| + Morpho MT (mt-*) |
| The following aliases for processor architectures have been |
| declared obsolete. Users should use the indicated generic target |
| names instead, with compile-time options such as -mcpu or |
| configure-time options such as --with-cpu to control the |
| configuration more precisely. |
| + strongarm*-*-*, ep9312*-*-*, xscale*-*-* (use arm*-*-* |
| instead). |
| + parisc*-*-* (use hppa*-*-* instead). |
| + m680[012]0-*-* (use m68k-*-* instead). |
| All GCC ports for the following operating systems have been |
| declared obsolete: |
| + BeOS (*-*-beos*) |
| + kaOS (*-*-kaos*) |
| + GNU/Linux using the a.out object format (*-*-linux*aout*) |
| + GNU/Linux using version 1 of the GNU C Library |
| (*-*-linux*libc1*) |
| + Solaris versions before Solaris 7 (*-*-solaris2.[0-6], |
| *-*-solaris2.[0-6].*) |
| + Miscellaneous System V (*-*-sysv*) |
| + WindISS (*-*-windiss*) |
| Also, those for some individual systems on particular architectures |
| have been obsoleted: |
| + UNICOS/mk on DEC Alpha (alpha*-*-unicosmk*) |
| + CRIS with a.out object format (cris-*-aout) |
| + BSD 4.3 on PA-RISC (hppa1.1-*-bsd*) |
| + OSF/1 on PA-RISC (hppa1.1-*-osf*) |
| + PRO on PA-RISC (hppa1.1-*-pro*) |
| + Sequent PTX on IA32 (i[34567]86-sequent-ptx4*, |
| i[34567]86-sequent-sysv4*) |
| + SCO Open Server 5 on IA32 (i[34567]86-*-sco3.2v5*) |
| + UWIN on IA32 (i[34567]86-*-uwin*) (support for UWIN as a host |
| was previously [5]removed in 2001, leaving only the support |
| for UWIN as a target now being deprecated) |
| + ChorusOS on PowerPC (powerpc-*-chorusos*) |
| + All VAX configurations apart from NetBSD and OpenBSD |
| (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*) |
| * The [6]-Wconversion option has been modified. Its purpose now is to |
| warn for implicit conversions that may alter a value. This new |
| behavior is available for both C and C++. Warnings about |
| conversions between signed and unsigned integers can be disabled by |
| using -Wno-sign-conversion. In C++, they are disabled by default |
| unless -Wsign-conversion is explicitly requested. The old behavior |
| of -Wconversion, that is, warn for prototypes causing a type |
| conversion that is different from what would happen to the same |
| argument in the absence of a prototype, has been moved to a new |
| option -Wtraditional-conversion, which is only available for C. |
| * The -m386, -m486, -mpentium and -mpentiumpro tuning options have |
| been removed because they were deprecated for more than 3 GCC major |
| releases. Use -mtune=i386, -mtune=i486, -mtune=pentium or |
| -mtune=pentiumpro as a replacement. |
| * The -funsafe-math-optimizations option now automatically turns on |
| -fno-trapping-math in addition to -fno-signed-zeros, as it enables |
| reassociation and thus may introduce or remove traps. |
| * The -ftree-vectorize option is now on by default under -O3. In |
| order to generate code for a SIMD extension, it has to be enabled |
| as well: use -maltivec for PowerPC platforms and -msse/-msse2 for |
| i?86 and x86_64. |
| * More information on porting to GCC 4.3 from previous versions of |
| GCC can be found in the [7]porting guide for this release. |
| |
| General Optimizer Improvements |
| |
| * The GCC middle-end has been integrated with the [8]MPFR library. |
| This allows GCC to evaluate and replace at compile-time calls to |
| built-in math functions having constant arguments with their |
| mathematically equivalent results. In making use of [9]MPFR, GCC |
| can generate correct results regardless of the math library |
| implementation or floating point precision of the host platform. |
| This also allows GCC to generate identical results regardless of |
| whether one compiles in native or cross-compile configurations to a |
| particular target. The following built-in functions take advantage |
| of this new capability: acos, acosh, asin, asinh, atan2, atan, |
| atanh, cbrt, cos, cosh, drem, erf, erfc, exp10, exp2, exp, expm1, |
| fdim, fma, fmax, fmin, gamma_r, hypot, j0, j1, jn, lgamma_r, log10, |
| log1p, log2, log, pow10, pow, remainder, remquo, sin, sincos, sinh, |
| tan, tanh, tgamma, y0, y1 and yn. The float and long double |
| variants of these functions (e.g. sinf and sinl) are also handled. |
| The sqrt and cabs functions with constant arguments were already |
| optimized in prior GCC releases. Now they also use [10]MPFR. |
| * A new forward propagation pass on RTL was added. The new pass |
| replaces several slower transformations, resulting in compile-time |
| improvements as well as better code generation in some cases. |
| * A new command-line switch -frecord-gcc-switches has been added to |
| GCC, although it is only enabled for some targets. The switch |
| causes the command line that was used to invoke the compiler to be |
| recorded into the object file that is being created. The exact |
| format of this recording is target and binary file format |
| dependent, but it usually takes the form of a note section |
| containing ASCII text. The switch is related to the -fverbose-asm |
| switch, but that one only records the information in the assembler |
| output file as comments, so the information never reaches the |
| object file. |
| * The inliner heuristic is now aware of stack frame consumption. New |
| command-line parameters --param large-stack-frame and --param |
| large-stack-frame-growth can be used to limit stack frame size |
| growth caused by inlining. |
| * During feedback directed optimizations, the expected block size the |
| memcpy, memset and bzero functions operate on is discovered and for |
| cases of commonly used small sizes, specialized inline code is |
| generated. |
| * __builtin_expect no longer requires its argument to be a compile |
| time constant. |
| * Interprocedural optimization was reorganized to work on functions |
| in SSA form. This enables more precise and cheaper dataflow |
| analysis and makes writing interprocedural optimizations easier. |
| The following improvements have been implemented on top of this |
| framework: |
| + Pre-inline optimization: Selected local optimization passes |
| are run before the inliner (and other interprocedural passes) |
| are executed. This significantly improves the accuracy of code |
| growth estimates used by the inliner and reduces the overall |
| memory footprint for large compilation units. |
| + Early inlining (a simple bottom-up inliner pass inlining only |
| functions whose body is smaller than the expected call |
| overhead) is now executed with the early optimization passes, |
| thus inlining already optimized function bodies into an |
| unoptimized function that is subsequently optimized by early |
| optimizers. This enables the compiler to quickly eliminate |
| abstraction penalty in C++ programs. |
| + Interprocedural constant propagation now operate on SSA form |
| increasing accuracy of the analysis. |
| * A new internal representation for GIMPLE statements has been |
| contributed, resulting in compile-time memory savings. |
| * The vectorizer was enhanced to support vectorization of outer |
| loops, intra-iteration parallelism (loop-aware SLP), vectorization |
| of strided accesses and loops with multiple data-types. Run-time |
| dependency testing using loop versioning was added. The cost model, |
| turned on by -fvect-cost-model, was developed. |
| |
| New Languages and Language specific improvements |
| |
| * We have added new command-line options |
| -finstrument-functions-exclude-function-list and |
| -finstrument-functions-exclude-file-list. They provide more control |
| over which functions are annotated by the -finstrument-functions |
| option. |
| |
| C family |
| |
| * Implicit conversions between generic vector types are now only |
| permitted when the two vectors in question have the same number of |
| elements and compatible element types. (Note that the restriction |
| involves compatible element types, not implicitly-convertible |
| element types: thus, a vector type with element type int may not be |
| implicitly converted to a vector type with element type unsigned |
| int.) This restriction, which is in line with specifications for |
| SIMD architectures such as AltiVec, may be relaxed using the flag |
| -flax-vector-conversions. This flag is intended only as a |
| compatibility measure and should not be used for new code. |
| * -Warray-bounds has been added and is now enabled by default for |
| -Wall . It produces warnings for array subscripts that can be |
| determined at compile time to be always out of bounds. |
| -Wno-array-bounds will disable the warning. |
| * The constructor and destructor function attributes now accept |
| optional priority arguments which control the order in which the |
| constructor and destructor functions are run. |
| * New [11]command-line options -Wtype-limits, |
| -Wold-style-declaration, -Wmissing-parameter-type, -Wempty-body, |
| -Wclobbered and -Wignored-qualifiers have been added for finer |
| control of the diverse warnings enabled by -Wextra. |
| * A new function attribute alloc_size has been added to mark up |
| malloc style functions. For constant sized allocations this can be |
| used to find out the size of the returned pointer using the |
| __builtin_object_size() function for buffer overflow checking and |
| similar. This supplements the already built-in malloc and calloc |
| constant size handling. |
| * Integer constants written in binary are now supported as a GCC |
| extension. They consist of a prefix 0b or 0B, followed by a |
| sequence of 0 and 1 digits. |
| * A new predefined macro __COUNTER__ has been added. It expands to |
| sequential integral values starting from 0. In conjunction with the |
| ## operator, this provides a convenient means to generate unique |
| identifiers. |
| * A new command-line option -fdirectives-only has been added. It |
| enables a special preprocessing mode which improves the performance |
| of applications like distcc and ccache. |
| * Fixed-point data types and operators have been added. They are |
| based on Chapter 4 of the Embedded-C specification (n1169.pdf). |
| Currently, only MIPS targets are supported. |
| * Decimal floating-point arithmetic based on draft ISO/IEC TR 24732, |
| N1241, is now supported as a GCC extension to C for targets |
| i[34567]86-*-linux-gnu, powerpc*-*-linux-gnu, s390*-ibm-linux-gnu, |
| and x86_64-*-linux-gnu. The feature introduces new data types |
| _Decimal32, _Decimal64, and _Decimal128 with constant suffixes DF, |
| DD, and DL. |
| |
| C++ |
| |
| * [12]Experimental support for the upcoming ISO C++ standard, C++0x. |
| * -Wc++0x-compat has been added and is now enabled by default for |
| -Wall. It produces warnings for constructs whose meaning differs |
| between ISO C++ 1998 and C++0x. |
| * The -Wparentheses option now works for C++ as it does for C. It |
| warns if parentheses are omitted when operators with confusing |
| precedence are nested. It also warns about ambiguous else |
| statements. Since -Wparentheses is enabled by -Wall, this may cause |
| additional warnings with existing C++ code which uses -Wall. These |
| new warnings may be disabled by using -Wall -Wno-parentheses. |
| * The -Wmissing-declarations now works for C++ as it does for C. |
| * The -fvisibility-ms-compat flag was added, to make it easier to |
| port larger projects using shared libraries from Microsoft's Visual |
| Studio to ELF and Mach-O systems. |
| * C++ attribute handling has been overhauled for template arguments |
| (ie dependent types). In particular, __attribute__((aligned(T))); |
| works for C++ types. |
| |
| Runtime Library (libstdc++) |
| |
| * [13]Experimental support for the upcoming ISO C++ standard, C++0x. |
| * Support for TR1 mathematical special functions and regular |
| expressions. ([14]Implementation status of TR1) |
| * Default what implementations give more elaborate exception strings |
| for bad_cast, bad_typeid, bad_exception, and bad_alloc. |
| * Header dependencies have been streamlined, reducing unnecessary |
| includes and pre-processed bloat. |
| * Variadic template implementations of items in <tuple> and |
| <functional>. |
| * An experimental [15]parallel mode has been added. This is a |
| parallel implementation of many C++ Standard library algorithms, |
| like std::accumulate, std::for_each, std::transform, or std::sort, |
| to give but four examples. These algorithms can be substituted for |
| the normal (sequential) libstdc++ algorithms on a piecemeal basis, |
| or all existing algorithms can be transformed via the |
| -D_GLIBCXX_PARALLEL macro. |
| * Debug mode versions of classes in <unordered_set> and |
| <unordered_map>. |
| * Formal deprecation of <ext/hash_set> and <ext/hash_map>, which are |
| now <backward/hash_set> and <backward/hash_map>. This code: |
| #include <ext/hash_set> |
| __gnu_cxx::hash_set<int> s; |
| |
| Can be transformed (in order of preference) to: |
| #include <tr1/unordered_set> |
| std::tr1::unordered_set<int> s; |
| |
| or |
| #include <backward/hash_set> |
| __gnu_cxx::hash_set<int> s; |
| |
| Similar transformations apply to __gnu_cxx::hash_map, |
| __gnu_cxx::hash_multimap, __gnu_cxx::hash_set, |
| __gnu_cxx::hash_multiset. |
| |
| Fortran |
| |
| * Due to the fact that the [16]GMP and [17]MPFR libraries are |
| required for all languages, Fortran is no longer special in this |
| regard and is available by default. |
| * The [18]-fexternal-blas option has been added, which generates |
| calls to BLAS routines for intrinsic matrix operations such as |
| matmul rather than using the built-in algorithms. |
| * Support to give a backtrace (compiler flag -fbacktrace or |
| environment variable GFORTRAN_ERROR_BACKTRACE; on glibc systems |
| only) or a core dump (-fdump-core, GFORTRAN_ERROR_DUMPCORE) when a |
| run-time error occured. |
| * GNU Fortran now defines __GFORTRAN__ when it runs the C |
| preprocessor (CPP). |
| * The [19]-finit-local-zero, -finit-real, -finit-integer, |
| -finit-character, and -finit-logical options have been added, which |
| can be used to initialize local variables. |
| * The intrinsic procedures [20]GAMMA and [21]LGAMMA have been added, |
| which calculate the Gamma function and its logarithm. Use EXTERNAL |
| gamma if you want to use your own gamma function. |
| * GNU Fortran now regards the backslash character as literal (as |
| required by the Fortran 2003 standard); using [22]-fbackslash GNU |
| Fortran interprets backslashes as C-style escape characters. |
| * The [23]interpretation of binary, octal and hexadecimal (BOZ) |
| literal constants has been changed. Before they were always |
| interpreted as integer; now they are bit-wise transferred as |
| argument of INT, REAL, DBLE and CMPLX as required by the Fortran |
| 2003 standard, and for real and complex variables in DATA |
| statements or when directly assigned to real and complex variables. |
| Everywhere else and especially in expressions they are still |
| regarded as integer constants. |
| * Fortran 2003 support has been extended: |
| + Intrinsic statements IMPORT, PROTECTED, VALUE and VOLATILE |
| + Pointer intent |
| + Intrinsic module ISO_ENV_FORTRAN |
| + Interoperability with C (ISO C Bindings) |
| + ABSTRACT INTERFACES and PROCEDURE statements (without POINTER |
| attribute) |
| + Fortran 2003 BOZ |
| |
| Java (GCJ) |
| |
| * gcj now uses the Eclipse Java compiler for its Java parsing needs. |
| This enables the use of all 1.5 language features, and fixes most |
| existing front end bugs. |
| * libgcj now supports all 1.5 language features which require runtime |
| support: foreach, enum, annotations, generics, and auto-boxing. |
| * We've made many changes to the tools shipped with gcj. |
| + The old jv-scan tool has been removed. This tool never really |
| worked properly. There is no replacement. |
| + gcjh has been rewritten. Some of its more obscure options no |
| longer work, but are still recognized in an attempt at |
| compatibility. gjavah is a new program with similar |
| functionality but different command-line options. |
| + grmic and grmiregistry have been rewritten. grmid has been |
| added. |
| + gjar replaces the old fastjar. |
| + gjarsigner (used for signing jars), gkeytool (used for key |
| management), gorbd (for CORBA), gserialver (computes |
| serialization UIDs), and gtnameserv (also for CORBA) are now |
| installed. |
| * The ability to dump the contents of the java run time heap to a |
| file for off-line analysis has been added. The heap dumps may be |
| analyzed with the new gc-analyze tool. They may be generated on |
| out-of-memory conditions or on demand and are controlled by the new |
| run time class gnu.gcj.util.GCInfo. |
| * java.util.TimeZone can now read files from /usr/share/zoneinfo to |
| provide correct, updated, timezone information. This means that |
| packagers no longer have to update libgcj when a time zone change |
| is published. |
| |
| New Targets and Target Specific Improvements |
| |
| IA-32/x86-64 |
| |
| * Tuning for Intel Core 2 processors is available via -mtune=core2 |
| and -march=core2. |
| * Tuning for AMD Geode processors is available via -mtune=geode and |
| -march=geode. |
| * Code generation of block move (memcpy) and block set (memset) was |
| rewritten. GCC can now pick the best algorithm (loop, unrolled |
| loop, instruction with rep prefix or a library call) based on the |
| size of the block being copied and the CPU being optimized for. A |
| new option -minline-stringops-dynamically has been added. With this |
| option string operations of unknown size are expanded such that |
| small blocks are copied by in-line code, while for large blocks a |
| library call is used. This results in faster code than |
| -minline-all-stringops when the library implementation is capable |
| of using cache hierarchy hints. The heuristic choosing the |
| particular algorithm can be overwritten via -mstringop-strategy. |
| Newly also memset of values different from 0 is inlined. |
| * GCC no longer places the cld instruction before string operations. |
| Both i386 and x86-64 ABI documents mandate the direction flag to be |
| clear at the entry of a function. It is now invalid to set the flag |
| in asm statement without reseting it afterward. |
| * Support for SSSE3 built-in functions and code generation are |
| available via -mssse3. |
| * Support for SSE4.1 built-in functions and code generation are |
| available via -msse4.1. |
| * Support for SSE4.2 built-in functions and code generation are |
| available via -msse4.2. |
| * Both SSE4.1 and SSE4.2 support can be enabled via -msse4. |
| * A new set of options -mpc32, -mpc64 and -mpc80 have been added to |
| allow explicit control of x87 floating point precision. |
| * Support for __float128 (TFmode) IEEE quad type and corresponding |
| TCmode IEEE complex quad type is available via the soft-fp library |
| on x86_64 targets. This includes basic arithmetic operations |
| (addition, subtraction, negation, multiplication and division) on |
| __float128 real and TCmode complex values, the full set of IEEE |
| comparisons between __float128 values, conversions to and from |
| float, double and long double floating point types, as well as |
| conversions to and from signed or unsigned integer, signed or |
| unsigned long integer and signed or unsigned quad (TImode) integer |
| types. Additionally, all operations generate the full set of IEEE |
| exceptions and support the full set of IEEE rounding modes. |
| * GCC can now utilize the ACML library for vectorizing calls to a set |
| of C99 functions on x86_64 if -mveclibabi=acml is specified and you |
| link to an ACML ABI compatible library. |
| |
| ARM |
| |
| * Compiler and Library support for Thumb-2 and the ARMv7 architecture |
| has been added. |
| |
| CRIS |
| |
| New features |
| |
| * Compiler and Library support for the CRIS v32 architecture, as |
| found in Axis Communications ETRAX FS and ARTPEC-3 chips, has been |
| added. |
| |
| Configuration changes |
| |
| * The cris-*-elf target now includes support for CRIS v32, including |
| libraries, through the -march=v32 option. |
| * A new crisv32-*-elf target defaults to generate code for CRIS v32. |
| * A new crisv32-*-linux* target defaults to generate code for CRIS |
| v32. |
| * The cris-*-aout target has been obsoleted. |
| |
| Improved support for built-in functions |
| |
| * GCC can now use the lz and swapwbr instructions to implement the |
| __builtin_clz, __builtin_ctz and __builtin_ffs family of functions. |
| * __builtin_bswap32 is now implemented using the swapwb instruction, |
| when available. |
| |
| m68k and ColdFire |
| |
| New features |
| |
| * Support for several new ColdFire processors has been added. You can |
| generate code for them using the new -mcpu option. |
| * All targets now support ColdFire processors. |
| * m68k-uclinux targets have improved support for C++ constructors and |
| destructors, and for shared libraries. |
| * It is now possible to set breakpoints on the first or last line of |
| a function, even if there are no statements on that line. |
| |
| Optimizations |
| |
| * Support for sibling calls has been added. |
| * More use is now made of the ColdFire mov3q instruction. |
| * __builtin_clz is now implemented using the ff1 ColdFire |
| instruction, when available. |
| * GCC now honors the -m68010 option. 68010 code now uses clr rather |
| than move to zero volatile memory. |
| * 68020 targets and above can now use symbol(index.size*scale) |
| addresses for indexed array accesses. Earlier compilers would |
| always load the symbol into a base register first. |
| |
| Configuration changes |
| |
| * All m68k and ColdFire targets now allow the default processor to be |
| set at configure time using --with-cpu. |
| * A --with-arch configuration option has been added. This option |
| allows you to restrict a target to ColdFire or non-ColdFire |
| processors. |
| |
| Preprocessor macros |
| |
| * An __mcfv*__ macro is now defined for all ColdFire targets. |
| (Earlier versions of GCC only defined __mcfv4e__.) |
| * __mcf_cpu_*, __mcf_family_* and __mcffpu__ macros have been added. |
| * All targets now define __mc68010 and __mc68010__ when generating |
| 68010 code. |
| |
| Command-line changes |
| |
| * New command-line options -march, -mcpu, -mtune and -mhard-float |
| have been added. These options apply to both m68k and ColdFire |
| targets. |
| * -mno-short, -mno-bitfield and -mno-rtd are now accepted as negative |
| versions of -mshort, etc. |
| * -fforce-addr has been removed. It is now ignored by the compiler. |
| |
| Other improvements |
| |
| * ColdFire targets now try to maintain a 4-byte-aligned stack where |
| possible. |
| * m68k-uclinux targets now try to avoid situations that lead to the |
| load-time error: BINFMT_FLAT: reloc outside program. |
| |
| MIPS |
| |
| Changes to existing configurations |
| |
| * libffi and libjava now support all three GNU/Linux ABIs: o32, n32 |
| and n64. Every GNU/Linux configuration now builds these libraries |
| by default. |
| * GNU/Linux configurations now generate -mno-shared code unless |
| overridden by -fpic, -fPIC, -fpie or -fPIE. |
| * mipsisa32*-linux-gnu configurations now generate hard-float code by |
| default, just like other mipsisa32* and mips*-linux-gnu |
| configurations. You can build a soft-float version of any |
| mips*-linux-gnu configuration by passing --with-float=soft to |
| configure. |
| * mips-wrs-vxworks now supports run-time processes (RTPs). |
| |
| Changes to existing command-line options |
| |
| * The -march and -mtune options no longer accept 24k as a processor |
| name. Please use 24kc, 24kf2_1 or 24kf1_1 instead. |
| * The -march and -mtune options now accept 24kf2_1, 24kef2_1 and |
| 34kf2_1 as synonyms for 24kf, 24kef and 34kf respectively. The |
| options also accept 24kf1_1, 24kef1_1 and 34kf1_1 as synonyms for |
| 24kx, 24kex and 34kx. |
| |
| New configurations |
| |
| GCC now supports the following configurations: |
| * mipsisa32r2*-linux-gnu*, which generates MIPS32 revision 2 code by |
| default. Earlier releases also recognized this configuration, but |
| they treated it in the same way as mipsisa32*-linux-gnu*. Note that |
| you can customize any mips*-linux-gnu* configuration to a |
| particular ISA or processor by passing an appropriate --with-arch |
| option to configure. |
| * mipsisa*-sde-elf*, which provides compatibility with MIPS |
| Technologies' SDE toolchains. The configuration uses the SDE |
| libraries by default, but you can use it like other newlib-based |
| ELF configurations by passing --with-newlib to configure. It is the |
| only configuration besides mips64vr*-elf* to build MIPS16 as well |
| as non-MIPS16 libraries. |
| * mipsisa*-elfoabi*, which is similar to the general mipsisa*-elf* |
| configuration, but uses the o32 and o64 ABIs instead of the 32-bit |
| and 64-bit forms of the EABI. |
| |
| New processors and application-specific extensions |
| |
| * Support for the SmartMIPS ASE is available through the new |
| -msmartmips option. |
| * Support for revision 2 of the DSP ASE is available through the new |
| -mdspr2 option. A new preprocessor macro called __mips_dsp_rev |
| indicates the revision of the ASE in use. |
| * Support for the 4KS and 74K families of processors is available |
| through the -march and -mtune options. |
| |
| Improved support for built-in functions |
| |
| * GCC can now use load-linked, store-conditional and sync |
| instructions to implement atomic built-in functions such as |
| __sync_fetch_and_add. The memory reference must be 4 bytes wide for |
| 32-bit targets and either 4 or 8 bytes wide for 64-bit targets. |
| * GCC can now use the clz and dclz instructions to implement the |
| __builtin_ctz and __builtin_ffs families of functions. |
| * There is a new __builtin___clear_cache function for flushing the |
| instruction cache. GCC expands this function inline on MIPS32 |
| revision 2 targets, otherwise it calls the function specified by |
| -mcache-flush-func. |
| |
| MIPS16 improvements |
| |
| * GCC can now compile objects that contain a mixture of MIPS16 and |
| non-MIPS16 code. There are two new attributes, mips16 and nomips16, |
| for specifying which mode a function should use. |
| * A new option called -minterlink-mips16 makes non-MIPS16 code |
| link-compatible with MIPS16 code. |
| * After many bug fixes, the long-standing MIPS16 -mhard-float support |
| should now work fairly reliably. |
| * GCC can now use the MIPS16e save and restore instructions. |
| * -fsection-anchors now works in MIPS16 mode. MIPS16 code compiled |
| with -G0 -fsection-anchors is often smaller than code compiled with |
| -G8. However, please note that you must usually compile all objects |
| in your application with the same -G option; see the documentation |
| of -G for details. |
| * A new option called-mcode-readable specifies which instructions are |
| allowed to load from the code segment. -mcode-readable=yes is the |
| default and says that any instruction may load from the code |
| segment. The other alternatives are -mcode-readable=pcrel, which |
| says that only PC-relative MIPS16 instructions may load from the |
| code segment, and -mcode-readable=no, which says that no |
| instruction may do so. Please see the documentation for more |
| details, including example uses. |
| |
| Small-data improvements |
| |
| There are three new options for controlling small data: |
| * -mno-extern-sdata, which disables small-data accesses for |
| externally-defined variables. Code compiled with -Gn |
| -mno-extern-sdata will be link-compatible with any -G setting |
| between -G0 and -Gn inclusive. |
| * -mno-local-sdata, which disables the use of small-data sections for |
| data that is not externally visible. This option can be a useful |
| way of reducing small-data usage in less performance-critical parts |
| of an application. |
| * -mno-gpopt, which disables the use of the $gp register while still |
| honoring the -G limit when placing externally-visible data. This |
| option implies -mno-extern-sdata and -mno-local-sdata and it can be |
| useful in situations where $gp does not necessarily hold the |
| expected value. |
| |
| Miscellaneous improvements |
| |
| * There is a new option called -mbranch-cost for tweaking the |
| perceived cost of branches. |
| * If GCC is configured to use a version of GAS that supports the |
| .gnu_attribute directive, it will use that directive to record |
| certain properties of the output code. .gnu_attribute is new to GAS |
| 2.18. |
| * There are two new function attributes, near and far, for overriding |
| the command-line setting of -mlong-calls on a function-by-function |
| basis. |
| * -mfp64, which previously required a 64-bit target, now works with |
| MIPS32 revision 2 targets as well. The mipsisa*-elfoabi* and |
| mipsisa*-sde-elf* configurations provide suitable library support. |
| * GCC now recognizes the -mdmx and -mmt options and passes them down |
| to the assembler. It does nothing else with the options at present. |
| |
| SPU (Synergistic Processor Unit) of the Cell Broadband Engine Architecture |
| (BEA) |
| |
| * Support has been added for this new architecture. |
| |
| RS6000 (POWER/PowerPC) |
| |
| * Support for the PowerPC 750CL paired-single instructions has been |
| added with a new powerpc-*-linux*paired* target configuration. It |
| is enabled by an associated -mpaired option and can be accessed |
| using new built-in functions. |
| * Support for auto-detecting architecture and system configuration to |
| auto-select processor optimization tuning. |
| * Support for VMX on AIX 5.3 has been added. |
| * Support for AIX Version 6.1 has been added. |
| |
| S/390, zSeries and System z9 |
| |
| * Support for the IBM System z9 EC/BC processor (z9 GA3) has been |
| added. When using the -march=z9-ec option, the compiler will |
| generate code making use of instructions provided by the decimal |
| floating point facility and the floating point conversion facility |
| (pfpo). Besides the instructions used to implement decimal floating |
| point operations these facilities also contain instructions to move |
| between general purpose and floating point registers and to modify |
| and copy the sign-bit of floating point values. |
| * When the -march=z9-ec option is used the new |
| -mhard-dfp/-mno-hard-dfp options can be used to specify whether the |
| decimal floating point hardware instructions will be used or not. |
| If none of them is given the hardware support is enabled by |
| default. |
| * The -mstack-guard option can now be omitted when using stack |
| checking via -mstack-size in order to let GCC choose a sensible |
| stack guard value according to the frame size of each function. |
| * Various changes to improve performance of generated code have been |
| implemented, including: |
| + The condition code set by an add logical with carry |
| instruction is now available for overflow checks like: a + b + |
| carry < b. |
| + The test data class instruction is now used to implement |
| sign-bit and infinity checks of binary and decimal floating |
| point numbers. |
| |
| Xtensa |
| |
| * Stack unwinding for exception handling now uses by default a |
| specialized version of DWARF unwinding. This is not |
| binary-compatible with the setjmp/longjmp (sjlj) unwinding used for |
| Xtensa with previous versions of GCC. |
| * For Xtensa processors that include the Conditional Store option, |
| the built-in functions for atomic memory access are now implemented |
| using S32C1I instructions. |
| * If the Xtensa NSA option is available, GCC will use it to implement |
| the __builtin_ctz and __builtin_clz functions. |
| |
| Documentation improvements |
| |
| * Existing libstdc++ documentation has been edited and restructured |
| into a single DocBook XML manual. The results can be viewed online |
| [24]here. |
| |
| Other significant improvements |
| |
| * The compiler's --help command-line option has been extended so that |
| it now takes an optional set of arguments. These arguments restrict |
| the information displayed to specific classes of command-line |
| options, and possibly only a subset of those options. It is also |
| now possible to replace the descriptive text associated with each |
| displayed option with an indication of its current value, or for |
| binary options, whether it has been enabled or disabled. |
| Here are some examples. The following will display all the options |
| controlling warning messages: |
| --help=warnings |
| |
| Whereas this will display all the undocumented, target specific |
| options: |
| --help=target,undocumented |
| |
| This sequence of commands will display the binary optimizations |
| that are enabled by -O3: |
| gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts |
| gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts |
| diff /tmp/O2-opts /tmp/O3-opts | grep enabled |
| |
| * The configure options --with-pkgversion and --with-bugurl have been |
| added. These allow distributors of GCC to include a |
| distributor-specific string in manuals and --version output and to |
| specify the URL for reporting bugs in their versions of GCC. |
| |
| GCC 4.3.1 |
| |
| This is the [25]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.3.1 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Target Specific Changes |
| |
| IA-32/x86-64 |
| |
| ABI changes |
| |
| * Starting with GCC 4.3.1, decimal floating point variables are |
| aligned to their natural boundaries when they are passed on the |
| stack for i386. |
| |
| Command-line changes |
| |
| * Starting with GCC 4.3.1, the -mcld option has been added to |
| automatically generate a cld instruction in the prologue of |
| functions that use string instructions. This option is used for |
| backward compatibility on some operating systems and can be enabled |
| by default for 32-bit x86 targets by configuring GCC with the |
| --enable-cld configure option. |
| |
| GCC 4.3.2 |
| |
| This is the [26]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.3.2 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| GCC 4.3.3 |
| |
| This is the [27]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.3.3 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| GCC 4.3.4 |
| |
| This is the [28]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.3.4 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Please send FSF & GNU inquiries & questions to [29]gnu@gnu.org. There |
| are also [30]other ways to contact the FSF. |
| |
| These pages are maintained by [31]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [32]GCC manuals. If that fails, the |
| [33]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [34]gcc@gnu.org or [35]gcc@gcc.gnu.org. |
| All of our lists have [36]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2009-08-13 [37]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.4 |
| 2. http://gmplib.org/ |
| 3. http://www.mpfr.org/ |
| 4. http://gcc.gnu.org/install/prerequisites.html |
| 5. http://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html |
| 6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options |
| 7. http://gcc.gnu.org/gcc-4.3/porting_to.html |
| 8. http://www.mpfr.org/ |
| 9. http://www.mpfr.org/ |
| 10. http://www.mpfr.org/ |
| 11. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html |
| 12. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html |
| 13. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html |
| 14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#m anual.intro.status.standard.tr1 |
| 15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html |
| 16. http://gmplib.org/ |
| 17. http://www.mpfr.org/ |
| 18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options |
| 19. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 |
| 20. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/GAMMA.html |
| 21. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html |
| 22. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html |
| 23. http://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html |
| 24. http://gcc.gnu.org/onlinedocs/libstdc++/ |
| 25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1 |
| 26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2 |
| 27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3 |
| 28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4 |
| 29. mailto:gnu@gnu.org |
| 30. http://www.gnu.org/home.html#ContactInfo |
| 31. http://gcc.gnu.org/about.html |
| 32. http://gcc.gnu.org/onlinedocs/ |
| 33. mailto:gcc-help@gcc.gnu.org |
| 34. mailto:gcc@gnu.org |
| 35. mailto:gcc@gcc.gnu.org |
| 36. http://gcc.gnu.org/lists.html |
| 37. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.2/index.html |
| GCC 4.2 Release Series |
| |
| May 19, 2008 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 4.2.4. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 4.2.3 relative to previous releases of GCC. |
| |
| Release History |
| |
| GCC 4.2.4 |
| May 19, 2008 ([2]changes) |
| |
| GCC 4.2.3 |
| February 1, 2008 ([3]changes) |
| |
| GCC 4.2.2 |
| October 7, 2007 ([4]changes) |
| |
| GCC 4.2.1 |
| July 18, 2007 ([5]changes) |
| |
| GCC 4.2.0 |
| May 13, 2007 ([6]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [7]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [8]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [9]GCC project |
| web site or contact the [10]GCC development mailing list. |
| |
| To obtain GCC please use [11]our mirror sites or [12]our SVN server. |
| |
| Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There |
| are also [14]other ways to contact the FSF. |
| |
| These pages are maintained by [15]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [16]GCC manuals. If that fails, the |
| [17]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. |
| All of our lists have [20]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-10-04 [21]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-4.2/changes.html |
| 3. http://gcc.gnu.org/gcc-4.2/changes.html |
| 4. http://gcc.gnu.org/gcc-4.2/changes.html |
| 5. http://gcc.gnu.org/gcc-4.2/changes.html |
| 6. http://gcc.gnu.org/gcc-4.2/changes.html |
| 7. http://gcc.gnu.org/gcc-4.2/buildstat.html |
| 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 9. http://gcc.gnu.org/index.html |
| 10. mailto:gcc@gcc.gnu.org |
| 11. http://gcc.gnu.org/mirrors.html |
| 12. http://gcc.gnu.org/svn.html |
| 13. mailto:gnu@gnu.org |
| 14. http://www.gnu.org/home.html#ContactInfo |
| 15. http://gcc.gnu.org/about.html |
| 16. http://gcc.gnu.org/onlinedocs/ |
| 17. mailto:gcc-help@gcc.gnu.org |
| 18. mailto:gcc@gnu.org |
| 19. mailto:gcc@gcc.gnu.org |
| 20. http://gcc.gnu.org/lists.html |
| 21. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.2/changes.html |
| GCC 4.2 Release Series |
| Changes, New Features, and Fixes |
| |
| Caveats |
| |
| * GCC no longer accepts the -fshared-data option. This option has had |
| no effect in any GCC 4 release; the targets to which the option |
| used to apply had been removed before GCC 4.0. |
| |
| General Optimizer Improvements |
| |
| * New command-line options specify the possible relationships among |
| parameters and between parameters and global data. For example, |
| -fargument-noalias-anything specifies that arguments do not alias |
| any other storage. |
| Each language will automatically use whatever option is required by |
| the language standard. You should not need to use these options |
| yourself. |
| |
| New Languages and Language specific improvements |
| |
| * [1]OpenMP is now supported for the C, C++ and Fortran compilers. |
| * New command-line options -fstrict-overflow and -Wstrict-overflow |
| have been added. -fstrict-overflow tells the compiler that it may |
| assume that the program follows the strict signed overflow |
| semantics permitted for the language: for C and C++ this means that |
| the compiler may assume that signed overflow does not occur. For |
| example, a loop like |
| for (i = 1; i > 0; i *= 2) |
| |
| is presumably intended to continue looping until i overflows. With |
| -fstrict-overflow, the compiler may assume that signed overflow |
| will not occur, and transform this into an infinite loop. |
| -fstrict-overflow is turned on by default at -O2, and may be |
| disabled via -fno-strict-overflow. The -Wstrict-overflow option may |
| be used to warn about cases where the compiler assumes that signed |
| overflow will not occur. It takes five different levels: |
| -Wstrict-overflow=1 to 5. See the [2]documentation for details. |
| -Wstrict-overflow=1 is enabled by -Wall. |
| * The new command-line option -fno-toplevel-reorder directs GCC to |
| emit top-level functions, variables, and asm statements in the same |
| order that they appear in the input file. This is intended to |
| support existing code which relies on a particular ordering (for |
| example, code which uses top-level asm statements to switch |
| sections). For new code, it is generally better to use function and |
| variable attributes. The -fno-toplevel-reorder option may be used |
| for most cases which currently use -fno-unit-at-a-time. The |
| -fno-unit-at-a-time option will be removed in some future version |
| of GCC. If you know of a case which requires -fno-unit-at-a-time |
| which is not fixed by -fno-toplevel-reorder, please open a bug |
| report. |
| |
| C family |
| |
| * The pragma redefine_extname will now macro expand its tokens for |
| compatibility with SunPRO. |
| * In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct |
| GCC to handle inline functions as specified in the C99 standard. In |
| preparation for this, GCC 4.2 will warn about any use of non-static |
| inline functions in gnu99 or c99 mode. This new warning may be |
| disabled with the new gnu_inline function attribute or the new |
| -fgnu89-inline command-line option. Also, GCC 4.2 and later will |
| define one of the preprocessor macros __GNUC_GNU_INLINE__ or |
| __GNUC_STDC_INLINE__ to indicate the semantics of inline functions |
| in the current compilation. |
| * A new command-line option -Waddress has been added to warn about |
| suspicious uses of memory addresses as, for example, using the |
| address of a function in a conditional expression, and comparisons |
| against the memory address of a string literal. This warning is |
| enabled by -Wall. |
| |
| C++ |
| |
| * C++ visibility handling has been overhauled. |
| Restricted visiblity is propagated from classes to members, from |
| functions to local statics, and from templates and template |
| arguments to instantiations, unless the latter has explicitly |
| declared visibility. |
| The visibility attribute for a class must come between the |
| class-key and the name, not after the closing brace. |
| Attributes are now allowed for enums and elaborated-type-specifiers |
| that only declare a type. |
| Members of the anonymous namespace are now local to a particular |
| translation unit, along with any other declarations which use them, |
| though they are still treated as having external linkage for |
| language semantics. |
| * The (undocumented) extension which permitted templates with default |
| arguments to be bound to template template parameters with fewer |
| parameters has been removed. For example: |
| template <template <typename> class C> |
| void f(C<double>) {} |
| |
| template <typename T, typename U = int> |
| struct S {}; |
| |
| template void f(S<double>); |
| |
| is no longer accepted by G++. The reason this code is not accepted |
| is that S is a template with two parameters; therefore, it cannot |
| be bound to C which has only one parameter. |
| * The <?, >?, <?=, and >?= operators, deprecated in previous GCC |
| releases, have been removed. |
| * The command-line option -fconst-strings, deprecated in previous GCC |
| releases, has been removed. |
| * The configure variable enable-__cxa_atexit is now enabled by |
| default for more targets. Enabling this variable is necessary in |
| order for static destructors to be executed in the correct order, |
| but it depends upon the presence of a non-standard C library in the |
| target library in order to work. The variable is now enabled for |
| more targets which are known to have suitable C libraries. |
| * -Wextra will produce warnings for if statements with a semicolon as |
| the only body, to catch code like: |
| if (a); |
| return 1; |
| return 0; |
| |
| To suppress the warning in valid cases, use { } instead. |
| * The C++ frontend now also produces strict aliasing warnings when |
| -fstrict-aliasing -Wstrict-aliasing is in effect. |
| |
| Runtime Library (libstdc++) |
| |
| * Added support for TR1 <random>, <complex>, and C compatibility |
| headers. In addition, a lock-free version of shared_ptr was |
| contributed as part of Phillip Jordan's Google Summer of Code |
| project on lock-free containers. ([3]Implementation status of TR1) |
| * In association with the Summer of Code work on lock-free |
| containers, the interface for atomic builtins was adjusted, |
| creating simpler alternatives for non-threaded code paths. Also, |
| usage was consolidated and all elements were moved from namespace |
| std to namespace__gnu_cxx. Affected interfaces are the functions |
| __exchange_and_add, __atomic_add, and the objects __mutex, |
| __recursive_mutex, and __scoped_lock. |
| * Support for versioning weak symbol names via namespace association |
| was added. However, as this changes the names of exported symbols, |
| this is turned off by default in the current ABI. Intrepid users |
| can enable this feature by using |
| --enable-symvers=gnu-versioned-namespace during configuration. |
| * Revised, simplified, and expanded policy-based associative |
| containers, including data types for tree and trie forms |
| (basic_tree, tree, trie), lists (list_update), and both |
| collision-chaining and probing hash-based containers |
| (basic_hash_table, cc_hash_table, gp_hash_table). More details per |
| the [4]documentation. |
| * The implementation of the debug mode was modified, whereby the |
| debug namespaces were nested inside of namespace std and namespace |
| __gnu_cxx in order to resolve some long standing corner cases |
| involving name lookup. Debug functionality from the policy-based |
| data structures was consolidated and enabled with the single macro, |
| _GLIBCXX_DEBUG. See PR 26142 for more information. |
| * Added extensions for type traits: __conditional_type, |
| __numeric_traits, __add_unsigned, __removed_unsigned, __enable_if. |
| * Added a typelist implementation for compile-time meta-programming. |
| Elements for typelist construction and operation can be found |
| within namespace __gnu_cxx::typelist. |
| * Added a new allocator, __gnu_cxx::throw_allocator, for testing |
| exception-safety. |
| * Enabled library-wide visibility control, allowing -fvisibility to |
| be used. |
| * Consolidated all nested namespaces and the conversion of |
| __gnu_internal implementation-private details to anonymous |
| namespaces whenever possible. |
| * Implemented LWG resolutions DR 431 and DR 538. |
| |
| Fortran |
| |
| * Support for allocatable components has been added (TR 15581 and |
| Fortran 2003). |
| * Support for the Fortran 2003 streaming IO extension has been added. |
| * The GNU Fortran compiler now uses 4-byte record markers by default |
| for unformatted files to be compatible with g77 and most other |
| compilers. The implementation allows for records greater than 2 GB |
| and is compatible with several other compilers. Older versions of |
| gfortran used 8-byte record markers by default (on most systems). |
| In order to change the length of the record markers, e.g. to read |
| unformatted files created by older gfortran versions, the |
| [5]-frecord-marker=8 option can be used. |
| |
| Java (GCJ) |
| |
| * A new command-line option -static-libgcj has been added for targets |
| that use a linker compatible with GNU Binutils. As its name |
| implies, this causes libgcj to be linked statically. In some cases |
| this causes the resulting executable to start faster and use less |
| memory than if the shared version of libgcj were used. However |
| caution should be used as it can also cause essential parts of the |
| library to be omitted. Some of these issues are discussed in: |
| [6]http://gcc.gnu.org/wiki/Statically_linking_libgcj |
| * fastjar is no longer bundled with GCC. To build libgcj, you will |
| need either InfoZIP (both zip and unzip) or an external jar |
| program. In the former case, the GCC build will install a jar shell |
| script that is based on InfoZIP and provides the same functionality |
| as fastjar. |
| |
| New Targets and Target Specific Improvements |
| |
| IA-32/x86-64 |
| |
| * -mtune=generic can now be used to generate code running well on |
| common x86 chips. This includes AMD Athlon, AMD Opteron, Intel |
| Pentium-M, Intel Pentium 4 and Intel Core 2. |
| * -mtune=native and -march=native will produce code optimized for the |
| host architecture as detected using the cpuid instruction. |
| * Added a new command-line option -fstackrealign and and |
| __attribute__ ((force_align_arg_pointer)) to realign the stack at |
| runtime. This allows functions compiled with a vector-aligned stack |
| to be invoked from legacy objects that keep only word-alignment. |
| |
| SPARC |
| |
| * The default CPU setting has been changed from V7 to V9 in 32-bit |
| mode on Solaris 7 and above. This is already the case in 64-bit |
| mode. It can be overridden by specifying --with-cpu at configure |
| time. |
| * Back-end support of built-in functions for atomic memory access has |
| been implemented. |
| * Support for the Sun UltraSPARC T1 (Niagara) processor has been |
| added. |
| |
| M32C |
| |
| * Various bug fixes have made some functions (notably, functions |
| returning structures) incompatible with previous releases. |
| Recompiling all libraries is recommended. Note that code quality |
| has considerably improved since 4.1, making a recompile even more |
| beneficial. |
| |
| MIPS |
| |
| * Added support for the Broadcom SB-1A core. |
| |
| IA-64 |
| |
| * Added support for IA-64 data and control speculation. By default |
| speculation is enabled only during second scheduler pass. A number |
| of machine flags was introduced to control the usage of speculation |
| for both scheduler passes. |
| |
| HPPA |
| |
| * Added Java language support (libffi and libjava) for 32-bit HP-UX |
| 11 target. |
| |
| Obsolete Systems |
| |
| Documentation improvements |
| |
| PDF Documentation |
| |
| * A make pdf target has been added to the top-level makefile, |
| enabling automated production of PDF documentation files. |
| (Front-ends external to GCC should modify their Make-lang.in file |
| to add a lang.pdf: target.) |
| |
| Other significant improvements |
| |
| Build system improvements |
| |
| * All the components of the compiler are now bootstrapped by default. |
| This improves the resilience to bugs in the system compiler or |
| binary compatibility problems, as well as providing better testing |
| of GCC 4.2 itself. In addition, if you build the compiler from a |
| combined tree, the assembler, linker, etc. will also be |
| bootstrapped (i.e. built with themselves). |
| You can disable this behavior, and go back to the pre-GCC 4.2 set |
| up, by configuring GCC with --disable-bootstrap. |
| * The rules that configure follows to find target tools resemble more |
| closely the locations that the built compiler will search. In |
| addition, you can use the new configure option --with-target-tools |
| to specify where to find the target tools used during the build, |
| without affecting what the built compiler will use. |
| This can be especially useful when building packages of GCC. For |
| example, you may want to build GCC with GNU as or ld, even if the |
| resulting compiler to work with the native assembler and linker. To |
| do so, you can use --with-target-tools to point to the native |
| tools. |
| |
| Incompatible changes to the build system |
| |
| * Front-ends external to GCC should modify their Make-lang.in file to |
| replace double-colon rules (e.g. dvi::) with normal rules (like |
| lang.dvi:). Front-end makefile hooks do not use double-colon rules |
| anymore. |
| * Up to GCC 4.1, a popular way to specify the target tools used |
| during the build was to create directories named gas, binutils, |
| etc. in the build tree, and create links to the tools from there. |
| This does not work any more when the compiler is bootstrapped. The |
| new configure option --with-target-tools provides a better way to |
| achieve the same effect, and works for all native and cross |
| settings. |
| |
| Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There |
| are also [8]other ways to contact the FSF. |
| |
| These pages are maintained by [9]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [10]GCC manuals. If that fails, the |
| [11]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. |
| All of our lists have [14]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2009-11-08 [15]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/projects/gomp/ |
| 2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html |
| 3. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1 |
| 4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html |
| 5. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html |
| 6. http://gcc.gnu.org/wiki/Statically_linking_libgcj |
| 7. mailto:gnu@gnu.org |
| 8. http://www.gnu.org/home.html#ContactInfo |
| 9. http://gcc.gnu.org/about.html |
| 10. http://gcc.gnu.org/onlinedocs/ |
| 11. mailto:gcc-help@gcc.gnu.org |
| 12. mailto:gcc@gnu.org |
| 13. mailto:gcc@gcc.gnu.org |
| 14. http://gcc.gnu.org/lists.html |
| 15. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.1/index.html |
| GCC 4.1 Release Series |
| |
| February 13, 2007 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 4.1.2. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 4.1.1 relative to previous releases of GCC. |
| |
| Release History |
| |
| GCC 4.1.2 |
| February 13, 2007 ([2]changes) |
| |
| GCC 4.1.1 |
| May 24, 2006 ([3]changes) |
| |
| GCC 4.1.0 |
| February 28, 2006 ([4]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [5]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [6]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [7]GCC project |
| web site or contact the [8]GCC development mailing list. |
| |
| To obtain GCC please use [9]our mirror sites or [10]our SVN server. |
| |
| Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There |
| are also [12]other ways to contact the FSF. |
| |
| These pages are maintained by [13]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [14]GCC manuals. If that fails, the |
| [15]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. |
| All of our lists have [18]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-10-04 [19]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 |
| 3. http://gcc.gnu.org/gcc-4.1/changes.html |
| 4. http://gcc.gnu.org/gcc-4.1/changes.html |
| 5. http://gcc.gnu.org/gcc-4.1/buildstat.html |
| 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 7. http://gcc.gnu.org/index.html |
| 8. mailto:gcc@gcc.gnu.org |
| 9. http://gcc.gnu.org/mirrors.html |
| 10. http://gcc.gnu.org/svn.html |
| 11. mailto:gnu@gnu.org |
| 12. http://www.gnu.org/home.html#ContactInfo |
| 13. http://gcc.gnu.org/about.html |
| 14. http://gcc.gnu.org/onlinedocs/ |
| 15. mailto:gcc-help@gcc.gnu.org |
| 16. mailto:gcc@gnu.org |
| 17. mailto:gcc@gcc.gnu.org |
| 18. http://gcc.gnu.org/lists.html |
| 19. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.1/changes.html |
| GCC 4.1 Release Series |
| Changes, New Features, and Fixes |
| |
| The latest release in the 4.1 release series is [1]GCC 4.1.2. |
| |
| Caveats |
| |
| General Optimizer Improvements |
| |
| * GCC now has infrastructure for inter-procedural optimizations and |
| the following inter-procedural optimizations are implemented: |
| + Profile guided inlining. When doing profile feedback guided |
| optimization, GCC can now use the profile to make better |
| informed decisions on whether inlining of a function is |
| profitable or not. This means that GCC will no longer inline |
| functions at call sites that are not executed very often, and |
| that functions at hot call sites are more likely to be |
| inlined. |
| A new parameter min-inline-recursive-probability is also now |
| available to throttle recursive inlining of functions with |
| small average recursive depths. |
| + Discovery of pure and const functions, a form of side-effects |
| analysis. While older GCC releases could also discover such |
| special functions, the new IPA-based pass runs earlier so that |
| the results are available to more optimizers. The pass is also |
| simply more powerful than the old one. |
| + Analysis of references to static variables and type escape |
| analysis, also forms of side-effects analysis. The results of |
| these passes allow the compiler to be less conservative about |
| call-clobbered variables and references. This results in more |
| redundant loads being eliminated and in making static |
| variables candidates for register promotion. |
| + Improvement of RTL-based alias analysis. The results of type |
| escape analysis are fed to the RTL type-based alias analyzer, |
| allowing it to disambiguate more memory references. |
| + Interprocedural constant propagation and function versioning. |
| This pass looks for functions that are always called with the |
| same constant value for one or more of the function arguments, |
| and propagates those constants into those functions. |
| + GCC will now eliminate static variables whose usage was |
| optimized out. |
| + -fwhole-program --combine can now be used to make all |
| functions in program static allowing whole program |
| optimization. As an exception, the main function and all |
| functions marked with the new externally_visible attribute are |
| kept global so that programs can link with runtime libraries. |
| * GCC can now do a form of partial dead code elimination (PDCE) that |
| allows code motion of expressions to the paths where the result of |
| the expression is actually needed. This is not always a win, so the |
| pass has been limited to only consider profitable cases. Here is an |
| example: |
| int foo (int *, int *); |
| int |
| bar (int d) |
| { |
| int a, b, c; |
| b = d + 1; |
| c = d + 2; |
| a = b + c; |
| if (d) |
| { |
| foo (&b, &c); |
| a = b + c; |
| } |
| printf ("%d\n", a); |
| } |
| |
| The a = b + c can be sunk to right before the printf. Normal code |
| sinking will not do this, it will sink the first one above into the |
| else-branch of the conditional jump, which still gives you two |
| copies of the code. |
| * GCC now has a value range propagation pass. This allows the |
| compiler to eliminate bounds checks and branches. The results of |
| the pass can also be used to accurately compute branch |
| probabilities. |
| * The pass to convert PHI nodes to straight-line code (a form of |
| if-conversion for GIMPLE) has been improved significantly. The two |
| most significant improvements are an improved algorithm to |
| determine the order in which the PHI nodes are considered, and an |
| improvement that allow the pass to consider if-conversions of basic |
| blocks with more than two predecessors. |
| * Alias analysis improvements. GCC can now differentiate between |
| different fields of structures in Tree-SSA's virtual operands form. |
| This lets stores/loads from non-overlapping structure fields not |
| conflict. A new algorithm to compute points-to sets was contributed |
| that can allows GCC to see now that p->a and p->b, where p is a |
| pointer to a structure, can never point to the same field. |
| * Various enhancements to auto-vectorization: |
| + Incrementally preserve SSA form when vectorizing. |
| + Incrementally preserve loop-closed form when vectorizing. |
| + Improvements to peeling for alignment: generate better code |
| when the misalignment of an access is known at compile time, |
| or when different accesses are known to have the same |
| misalignment, even if the misalignment amount itself is |
| unknown. |
| + Consider dependence distance in the vectorizer. |
| + Externalize generic parts of data reference analysis to make |
| this analysis available to other passes. |
| + Vectorization of conditional code. |
| + Reduction support. |
| * GCC can now partition functions in sections of hot and cold code. |
| This can significantly improve performance due to better |
| instruction cache locality. This feature works best together with |
| profile feedback driven optimization. |
| * A new pass to avoid saving of unneeded arguments to the stack in |
| vararg functions if the compiler can prove that they will not be |
| needed. |
| * Transition of basic block profiling to tree level implementation |
| has been completed. The new implementation should be considerably |
| more reliable (hopefully avoiding profile mismatch errors when |
| using -fprofile-use or -fbranch-probabilities) and can be used to |
| drive higher level optimizations, such as inlining. |
| The -ftree-based-profiling command-line option was removed and |
| -fprofile-use now implies disabling old RTL level loop optimizer |
| (-fno-loop-optimize). Speculative prefetching optimization |
| (originally enabled by -fspeculative-prefetching) was removed. |
| |
| New Languages and Language specific improvements |
| |
| C and Objective-C |
| |
| * The old Bison-based C and Objective-C parser has been replaced by a |
| new, faster hand-written recursive-descent parser. |
| |
| Ada |
| |
| * The build infrastructure for the Ada runtime library and tools has |
| been changed to be better integrated with the rest of the build |
| infrastructure of GCC. This should make doing cross builds of Ada a |
| bit easier. |
| |
| C++ |
| |
| * ARM-style name-injection of friend declarations is no longer the |
| default. For example: |
| struct S { |
| friend void f(); |
| }; |
| |
| void g() { f(); } |
| will not be accepted; instead a declaration of f will need to be |
| present outside of the scope of S. The new -ffriend-injection |
| option will enable the old behavior. |
| * The (undocumented) extension which permitted templates with default |
| arguments to be bound to template template parameters with fewer |
| parameters has been deprecated, and will be removed in the next |
| major release of G++. For example: |
| template <template <typename> class C> |
| void f(C<double>) {} |
| |
| template <typename T, typename U = int> |
| struct S {}; |
| |
| template void f(S<double>); |
| |
| makes use of the deprecated extension. The reason this code is not |
| valid ISO C++ is that S is a template with two parameters; |
| therefore, it cannot be bound to C which has only one parameter. |
| |
| Runtime Library (libstdc++) |
| |
| * Optimization work: |
| + A new implementation of std::search_n is provided, better |
| performing in case of random access iterators. |
| + Added further efficient specializations of istream functions, |
| i.e., character array and string extractors. |
| + Other smaller improvements throughout. |
| * Policy-based associative containers, designed for high-performance, |
| flexibility and semantic safety are delivered in ext/pb_assoc. |
| * A versatile string class, __gnu_cxx::__versa_string, providing |
| facilities conforming to the standard requirements for |
| basic_string, is delivered in <ext/vstring.h>. In particular: |
| + Two base classes are provided: the default one avoids |
| reference counting and is optimized for short strings; the |
| alternate one, still uses it while improving in a few low |
| level areas (e.g., alignment). See vstring_fwd.h for some |
| useful typedefs. |
| + Various algorithms have been rewritten (e.g., replace), the |
| code streamlined and simple optimizations added. |
| + Option 3 of DR 431 is implemented for both available bases, |
| thus improving the support for stateful allocators. |
| * As usual, many bugs have been fixed (e.g., libstdc++/13583, |
| libstdc++/23953) and LWG resolutions put into effect for the first |
| time (e.g., DR 280, DR 464, N1780 recommendations for DR 233, TR1 |
| Issue 6.19). The implementation status of TR1 is now tracked in the |
| docs in tr1.html. |
| |
| Objective-C++ |
| |
| * A new language front end for Objective-C++ has been added. This |
| language allows users to mix the object oriented features of |
| Objective-C with those of C++. |
| |
| Java (GCJ) |
| |
| * Core library (libgcj) updates based on GNU Classpath 0.15 - 0.19 |
| features (plus some 0.20 bug-fixes) |
| + Networking |
| o The java.net.HttpURLConnection implementation no longer |
| buffers the entire response body in memory. This means |
| that response bodies larger than available memory can now |
| be handled. |
| + (N)IO |
| o NIO FileChannel.map implementation, fast bulk put |
| implementation for DirectByteBuffer (speeds up this |
| method 10x). |
| o FileChannel.lock() and FileChannel.force() implemented. |
| + XML |
| o gnu.xml fix for nodes created outside a namespace |
| context. |
| o Add support for output indenting and |
| cdata-section-elements output instruction in |
| xml.transform. |
| o xml.xpath corrections for cases where elements/attributes |
| might have been created in non-namespace-aware mode. |
| Corrections to handling of XSL variables and minor |
| conformance updates. |
| + AWT |
| o GNU JAWT implementation, the AWT Native Interface, which |
| allows direct access to native screen resources from |
| within a Canvas's paint method. GNU Classpath Examples |
| comes with a Demo, see libjava/classpath/examples/README. |
| o awt.datatransfer updated to 1.5 with support for |
| FlavorEvents. The gtk+ awt peers now allow copy/paste of |
| text, images, URIs/files and serialized objects with |
| other applications and tracking clipboard change events |
| with gtk+ 2.6 (for gtk+ 2.4 only text and serialized |
| objects are supported). A GNU Classpath Examples |
| datatransfer Demo was added to show the new |
| functionality. |
| o Split gtk+ awt peers event handling in two threads and |
| improve gdk lock handling (solves several awt lock ups). |
| o Speed up awt Image loading. |
| o Better gtk+ scrollbar peer implementation when using gtk+ |
| >= 2.6. |
| o Handle image loading errors correctly for gdkpixbuf and |
| MediaTracker. |
| o Better handle GDK lock. Properly prefix gtkpeer native |
| functions (cp_gtk). |
| o GdkGraphics2D has been updated to use Cairo 0.5.x or |
| higher. |
| o BufferedImage and GtkImage rewrites. All image drawing |
| operations should now work correctly (flipping requires |
| gtk+ >= 2.6) |
| o Future Graphics2D, image and text work is documented at: |
| [2]http://developer.classpath.org/mediation/ClasspathGrap |
| hicsImagesText |
| o When gtk+ 2.6 or higher is installed the default log |
| handler will produce stack traces whenever a WARNING, |
| CRITICAL or ERROR message is produced. |
| + Free Swing |
| o The RepaintManager has been reworked for more efficient |
| painting, especially for large GUIs. |
| o The layout manager OverlayLayout has been implemented, |
| the BoxLayout has been rewritten to make use of the |
| SizeRequirements utility class and caching for more |
| efficient layout. |
| o Improved accessibility support. |
| o Significant progress has been made in the implementation |
| of the javax.swing.plaf.metal package, with most UI |
| delegates in a working state now. Please test this with |
| your own applications and provide feedback that will help |
| us to improve this package. |
| o The GUI demo (gnu.classpath.examples.swing.Demo) has been |
| extended to highlight various features in our Free Swing |
| implementation. And it includes a look and feel switcher |
| for Metal (default), Ocean and GNU themes. |
| o The javax.swing.plaf.multi package is now implemented. |
| o Editing and several key actions for JTree and JTable were |
| implemented. |
| o Lots of icons and look and feel improvements for Free |
| Swing basic and metal themes were added. Try running the |
| GNU Classpath Swing Demo in examples |
| (gnu.classpath.examples.swing.Demo) with: |
| -Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFee |
| l or |
| -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFee |
| l |
| o Start of styled text capabilites for java.swing.text. |
| o DefaultMutableTreeNode pre-order, post-order, depth-first |
| and breadth-first traversal enumerations implemented. |
| o JInternalFrame colors and titlebar draw properly. |
| o JTree is working up to par (icons, selection and keyboard |
| traversal). |
| o JMenus were made more compatible in visual and |
| programmatic behavior. |
| o JTable changeSelection and multiple selections |
| implemented. |
| o JButton and JToggleButton change states work properly |
| now. |
| o JFileChooser fixes. |
| o revalidate() and repaint() fixes which make Free Swing |
| much more responsive. |
| o MetalIconFactory implemented. |
| o Free Swing Top-Level Compatibility. JFrame, JDialog, |
| JApplet, JInternalFrame, and JWindow are now 1.5 |
| compatible in the sense that you can call add() and |
| setLayout() directly on them, which will have the same |
| effect as calling getContentPane().add() and |
| getContentPane().setLayout(). |
| o The JTree interface has been completed. JTrees now |
| recognizes mouse clicks and selections work. |
| o BoxLayout works properly now. |
| o Fixed GrayFilter to actually work. |
| o Metal SplitPane implemented. |
| o Lots of Free Swing text and editor stuff work now. |
| + Free RMI and Corba |
| o Andrew Watson, Vice President and Technical Director of |
| the Object Management Group, has officially assigned us |
| 20 bit Vendor Minor Code Id: 0x47430 ("GC") that will |
| mark remote classpath-specific system exceptions. |
| Obtaining the VMCID means that GNU Classpath now is a |
| recogniseable type of node in a highly interoperable |
| CORBA world. |
| o GNU Classpath now includes the first working draft to |
| support the RMI over IIOP protocol. The current |
| implementation is capable of remote invocations, |
| transferring various Serializables and Externalizables |
| via RMI-IIOP protocol. It can flatten graphs and, at |
| least for the simple cases, is interoperable with 1.5 |
| JDKs. |
| o org.omg.PortableInterceptor and related functionality in |
| other packages is now implemented: |
| # The sever and client interceptors work as required |
| since 1.4. |
| # The IOR interceptor works as needed for 1.5. |
| o The org.omg.DynamicAny package is completed and passes |
| the prepared tests. |
| o The Portable Object Adapter should now support the output |
| of the recent IDL to java compilers. These compilers now |
| generate servants and not CORBA objects as before, making |
| the output depend on the existing POA implementation. |
| Completing POA means that such code can already be tried |
| to run on Classpath. Our POA is tested for the following |
| usager scenarios: |
| # POA converts servant to the CORBA object. |
| # Servant provides to the CORBA object. |
| # POA activates new CORBA object with the given Object |
| Id (byte array) that is later accessible for the |
| servant. |
| # During the first call, the ServantActivator provides |
| servant for this and all subsequent calls on the |
| current object. |
| # During each call, the ServantLocator provides |
| servant for this call only. |
| # ServantLocator or ServantActivator forwards call to |
| another server. |
| # POA has a single servant, responsible for all |
| objects. |
| # POA has a default servant, but some objects are |
| explicitly connected to they specific servants. |
| The POA is verified using tests from the former |
| cost.omg.org. |
| o The CORBA implementation is now a working prototype that |
| should support features up to 1.3 inclusive. We invite |
| groups writing CORBA dependent applications to try |
| Classpath implementation, reporting any possible bugs. |
| The CORBA prototype is interoperable with Sun's |
| implementation v 1.4, transferring object references, |
| primitive types, narrow and wide strings, arrays, |
| structures, trees, abstract interfaces and value types |
| (feature of CORBA 2.3) between these two platforms. |
| Remote exceptions are transferred and handled correctly. |
| The stringified object references (IORs) from various |
| sources are parsed as required. The transient (for |
| current session) and permanent (till jre restart) |
| redirections work. Both Little and Big Endian encoded |
| messages are accepted. The implementation is verified |
| using tests from the former cost.omg.org. The current |
| release includes working examples (see the examples |
| directory), demonstrating the client-server |
| communication, using either CORBA Request or IDL-based |
| stub (usually generated by a IDL to java compiler). These |
| examples also show how to use the Classpath CORBA naming |
| service. The IDL to java compiler is not yet written, but |
| as our library must be compatible, it naturally accepts |
| the output of other idlj implementations. |
| + Misc |
| o Updated TimeZone data against Olson tzdata2005l. |
| o Make zip and jar packages UTF-8 clean. |
| o "native" code builds and compiles (warning free) on |
| Darwin and Solaris. |
| o java.util.logging.FileHandler now rotates files. |
| o Start of a generic JDWP framework in gnu/classpath/jdwp. |
| This is unfinished, but feedback (at classpath@gnu.org) |
| from runtime hackers is greatly appreciated. Although |
| most of the work is currently being done around gcj/gij |
| we want this framework to be as VM neutral as possible. |
| Early design is described in: |
| [3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html |
| o QT4 AWT peers, enable by giving configure |
| --enable-qt-peer. Included, but not ready for production |
| yet. They are explicitly disabled and not supported. But |
| if you want to help with the development of these new |
| features we are interested in feedback. You will have to |
| explicitly enable them to try them out (and they will |
| most likely contain bugs). |
| o Documentation fixes all over the place. See |
| [4]http://developer.classpath.org/doc/ |
| |
| New Targets and Target Specific Improvements |
| |
| IA-32/x86-64 |
| |
| * The x86-64 medium model (that allows building applications whose |
| data segment exceeds 4GB) was redesigned to match latest ABI draft. |
| New implementation split large datastructures into separate segment |
| improving performance of accesses to small datastructures and also |
| allows linking of small model libraries into medium model programs |
| as long as the libraries are not accessing the large datastructures |
| directly. Medium model is also supported in position independent |
| code now. |
| The ABI change results in partial incompatibility among medium |
| model objects. Linking medium model libraries (or objects) compiled |
| with new compiler into medium model program compiled with older |
| will likely result in exceeding ranges of relocations. |
| Binutils 2.16.91 or newer are required for compiling medium model |
| now. |
| |
| RS6000 (POWER/PowerPC) |
| |
| * The AltiVec vector primitives in <altivec.h> are now implemented in |
| a way that puts a smaller burden on the preprocessor, instead |
| processing the "overloading" in the front ends. This should benefit |
| compilation speed on AltiVec vector code. |
| * AltiVec initializers now are generated more efficiently. |
| * The popcountb instruction available on POWER5 now is generated. |
| * The floating point round to integer instructions available on |
| POWER5+ now is generated. |
| * Floating point divides can be synthesized using the floating point |
| reciprocal estimate instructions. |
| * Double precision floating point constants are initialized as single |
| precision values if they can be represented exactly. |
| |
| S/390, zSeries and System z9 |
| |
| * Support for the IBM System z9 109 processor has been added. When |
| using the -march=z9-109 option, the compiler will generate code |
| making use of instructions provided by the extended immediate |
| facility. |
| * Support for 128-bit IEEE floating point has been added. When using |
| the -mlong-double-128 option, the compiler will map the long double |
| data type to 128-bit IEEE floating point. Using this option |
| constitutes an ABI change, and requires glibc support. |
| * Various changes to improve performance of generated code have been |
| implemented, including: |
| + In functions that do not require a literal pool, register %r13 |
| (which is traditionally reserved as literal pool pointer), can |
| now be freely used for other purposes by the compiler. |
| + More precise tracking of register use allows the compiler to |
| generate more efficient function prolog and epilog code in |
| certain cases. |
| + The SEARCH STRING, COMPARE LOGICAL STRING, and MOVE STRING |
| instructions are now used to implement C string functions. |
| + The MOVE CHARACTER instruction with single byte overlap is now |
| used to implement the memset function with non-zero fill byte. |
| + The LOAD ZERO instructions are now used where appropriate. |
| + The INSERT CHARACTERS UNDER MASK, STORE CHARACTERS UNDER MASK, |
| and INSERT IMMEDIATE instructions are now used more frequently |
| to optimize bitfield operations. |
| + The BRANCH ON COUNT instruction is now used more frequently. |
| In particular, the fact that a loop contains a subroutine call |
| no longer prevents the compiler from using this instruction. |
| + The compiler is now aware that all shift and rotate |
| instructions implicitly truncate the shift count to six bits. |
| * Back-end support for the following generic features has been |
| implemented: |
| + The full set of [5]built-in functions for atomic memory |
| access. |
| + The -fstack-protector feature. |
| + The optimization pass avoiding unnecessary stores of incoming |
| argument registers in functions with variable argument list. |
| |
| SPARC |
| |
| * The default code model in 64-bit mode has been changed from |
| Medium/Anywhere to Medium/Middle on Solaris. |
| * TLS support is disabled by default on Solaris prior to release 10. |
| It can be enabled on TLS-capable Solaris 9 versions (4/04 release |
| and later) by specifying --enable-tls at configure time. |
| |
| MorphoSys |
| |
| * Support has been added for this new architecture. |
| |
| Obsolete Systems |
| |
| Documentation improvements |
| |
| Other significant improvements |
| |
| * GCC can now emit code for protecting applications from |
| stack-smashing attacks. The protection is realized by buffer |
| overflow detection and reordering of stack variables to avoid |
| pointer corruption. |
| * Some built-in functions have been fortified to protect them against |
| various buffer overflow (and format string) vulnerabilities. |
| Compared to the mudflap bounds checking feature, the safe builtins |
| have far smaller overhead. This means that programs built using |
| safe builtins should not experience any measurable slowdown. |
| |
| GCC 4.1.2 |
| |
| This is the [6]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.1.2 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| When generating code for a shared library, GCC now recognizes that |
| global functions may be replaced when the program runs. Therefore, it |
| is now more conservative in deducing information from the bodies of |
| functions. For example, in this example: |
| void f() {} |
| void g() { |
| try { f(); } |
| catch (...) { |
| cout << "Exception"; |
| } |
| } |
| |
| G++ would previously have optimized away the catch clause, since it |
| would have concluded that f cannot throw exceptions. Because users may |
| replace f with another function in the main body of the program, this |
| optimization is unsafe, and is no longer performed. If you wish G++ to |
| continue to optimize as before, you must add a throw() clause to the |
| declaration of f to make clear that it does not throw exceptions. |
| |
| Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There |
| are also [8]other ways to contact the FSF. |
| |
| These pages are maintained by [9]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [10]GCC manuals. If that fails, the |
| [11]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org. |
| All of our lists have [14]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2009-01-25 [15]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 |
| 2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText |
| 3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html |
| 4. http://developer.classpath.org/doc/ |
| 5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html |
| 6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2 |
| 7. mailto:gnu@gnu.org |
| 8. http://www.gnu.org/home.html#ContactInfo |
| 9. http://gcc.gnu.org/about.html |
| 10. http://gcc.gnu.org/onlinedocs/ |
| 11. mailto:gcc-help@gcc.gnu.org |
| 12. mailto:gcc@gnu.org |
| 13. mailto:gcc@gcc.gnu.org |
| 14. http://gcc.gnu.org/lists.html |
| 15. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.0/index.html |
| GCC 4.0 Release Series |
| |
| January 31, 2007 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 4.0.4. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 4.0.3 relative to previous releases of GCC. |
| |
| Release History |
| |
| GCC 4.0.4 |
| January 31, 2007 ([2]changes) |
| |
| GCC 4.0.3 |
| March 10, 2006 ([3]changes) |
| |
| GCC 4.0.2 |
| September 28, 2005 ([4]changes) |
| |
| GCC 4.0.1 |
| July 7, 2005 ([5]changes) |
| |
| GCC 4.0.0 |
| April 20, 2005 ([6]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [7]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [8]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [9]GCC project |
| web site or contact the [10]GCC development mailing list. |
| |
| To obtain GCC please use [11]our mirror sites, or [12]our SVN server. |
| |
| Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There |
| are also [14]other ways to contact the FSF. |
| |
| These pages are maintained by [15]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [16]GCC manuals. If that fails, the |
| [17]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. |
| All of our lists have [20]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [21]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 |
| 3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3 |
| 4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2 |
| 5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 |
| 6. http://gcc.gnu.org/gcc-4.0/changes.html |
| 7. http://gcc.gnu.org/gcc-4.0/buildstat.html |
| 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 9. http://gcc.gnu.org/index.html |
| 10. mailto:gcc@gcc.gnu.org |
| 11. http://gcc.gnu.org/mirrors.html |
| 12. http://gcc.gnu.org/svn.html |
| 13. mailto:gnu@gnu.org |
| 14. http://www.gnu.org/home.html#ContactInfo |
| 15. http://gcc.gnu.org/about.html |
| 16. http://gcc.gnu.org/onlinedocs/ |
| 17. mailto:gcc-help@gcc.gnu.org |
| 18. mailto:gcc@gnu.org |
| 19. mailto:gcc@gcc.gnu.org |
| 20. http://gcc.gnu.org/lists.html |
| 21. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-4.0/changes.html |
| GCC 4.0 Release Series |
| Changes, New Features, and Fixes |
| |
| The latest release in the 4.0 release series is [1]GCC 4.0.4. |
| |
| Caveats |
| |
| * GCC now generates location lists by default when compiling with |
| debug info and optimization. |
| + GDB 6.0 and older crashes when it sees location lists. GDB 6.1 |
| or later is needed to debug binaries containing location |
| lists. |
| + When you are trying to view a value of a variable in a part of |
| a function where it has no location (for example when the |
| variable is no longer used and thus its location was used for |
| something else) GDB will say that it is not available. |
| You can disable generating location lists by -fno-var-tracking. |
| * GCC no longer accepts the -fwritable-strings option. Use named |
| character arrays when you need a writable string. |
| * The options -freduce-all-givs and -fmove-all-movables have been |
| discontinued. They were used to circumvent a shortcoming in the |
| heuristics of the old loop optimization code with respect to common |
| Fortran constructs. The new (tree) loop optimizer works differently |
| and doesn't need those work-arounds. |
| * The graph-coloring register allocator, formerly enabled by the |
| option -fnew-ra, has been discontinued. |
| * -I- has been deprecated. -iquote is meant to replace the need for |
| this option. |
| * The MIPS -membedded-pic and -mrnames options have been removed. |
| * All MIPS targets now require the GNU assembler. In particular, IRIX |
| configurations can no longer use the MIPSpro assemblers, although |
| they do still support the MIPSpro linkers. |
| * The SPARC option -mflat has been removed. |
| * English-language diagnostic messages will now use Unicode quotation |
| marks in UTF-8 locales. (Non-English messages already used the |
| quotes appropriate for the language in previous releases.) If your |
| terminal does not support UTF-8 but you are using a UTF-8 locale |
| (such locales are the default on many GNU/Linux systems) then you |
| should set LC_CTYPE=C in the environment to disable that locale. |
| Programs that parse diagnostics and expect plain ASCII |
| English-language messages should set LC_ALL=C. See [2]Markus Kuhn's |
| explanation of Unicode quotation marks for more information. |
| * The specs file is no longer installed on most platforms. Most users |
| will be totally unaffected. However, if you are accustomed to |
| editing the specs file yourself, you will now have to use the |
| -dumpspecs option to generate the specs file, and then edit the |
| resulting file. |
| |
| General Optimizer Improvements |
| |
| * The [3]tree ssa branch has been merged. This merge has brought in a |
| completely new optimization framework based on a higher level |
| intermediate representation than the existing RTL representation. |
| Numerous new code transformations based on the new framework are |
| available in GCC 4.0, including: |
| + Scalar replacement of aggregates |
| + Constant propagation |
| + Value range propagation |
| + Partial redundancy elimination |
| + Load and store motion |
| + Strength reduction |
| + Dead store elimination |
| + Dead and unreachable code elimination |
| + [4]Autovectorization |
| + Loop interchange |
| + Tail recursion by accumulation |
| Many of these passes outperform their counterparts from previous |
| GCC releases. |
| * [5]Swing Modulo Scheduling (SMS). An RTL level instruction |
| scheduling optimization intended for loops that perform heavy |
| computations. |
| |
| New Languages and Language specific improvements |
| |
| C family |
| |
| * The sentinel attribute has been added to GCC. This function |
| attribute allows GCC to warn when variadic functions such as execl |
| are not NULL terminated. See the GCC manual for a complete |
| description of its behavior. |
| * Given __attribute__((alias("target"))) it is now an error if target |
| is not a symbol, defined in the same translation unit. This also |
| applies to aliases created by #pragma weak alias=target. This is |
| because it's meaningless to define an alias to an undefined symbol. |
| On Solaris, the native assembler would have caught this error, but |
| GNU as does not. |
| |
| C and Objective-C |
| |
| * The -Wstrict-aliasing=2 option has been added. This warning catches |
| all unsafe cases, but it may also give a warning for some cases |
| that are safe. |
| * The cast-as-lvalue, conditional-expression-as-lvalue and |
| compound-expression-as-lvalue extensions, which were deprecated in |
| 3.3.4 and 3.4, have been removed. |
| * The -fwritable-strings option, which was deprecated in 3.4, has |
| been removed. |
| * #pragma pack() semantics have been brought closer to those used by |
| other compilers. This also applies to C++. |
| * Taking the address of a variable with register storage is invalid |
| in C. GCC now issues an error instead of a warning. |
| * Arrays of incomplete element type are invalid in C. GCC now issues |
| an error for such arrays. Declarations such as extern struct s x[]; |
| (where struct s has not been defined) can be moved after the |
| definition of struct s. Function parameters declared as arrays of |
| incomplete type can instead be declared as pointers. |
| |
| C++ |
| |
| * When compiling without optimizations (-O0), the C++ frontend is |
| much faster than in any previous versions of GCC. Independent |
| testers have measured speed-ups up to 25% in real-world production |
| code, compared to the 3.4 family (which was already the fastest |
| version to date). Upgrading from older versions might show even |
| bigger improvements. |
| * ELF visibility attributes can now be applied to a class type, so |
| that it affects every member function of a class at once, without |
| having to specify each individually: |
| class __attribute__ ((visibility("hidden"))) Foo |
| { |
| int foo1(); |
| void foo2(); |
| }; |
| The syntax is deliberately similar to the __declspec() system used |
| by Microsoft Windows based compilers, allowing cross-platform |
| projects to easily reuse their existing macro system for denoting |
| exports and imports. By explicitly marking internal classes never |
| used outside a binary as hidden, one can completely avoid PLT |
| indirection overheads during their usage by the compiler. You can |
| find out more about the advantages of this at |
| [6]http://people.redhat.com/drepper/dsohowto.pdf |
| * The -fvisibility-inlines-hidden option has been added which marks |
| all inlineable functions as having hidden ELF visibility, thus |
| removing their symbol and typeinfo from the exported symbol table |
| of the output ELF binary. Using this option can reduce the exported |
| symbol count of template-heavy code by up to 40% with no code |
| change at all, thus notably improving link and load times for the |
| binary as well as a reduction in size of up to 10%. Also, check the |
| new [7]-fvisibility option. |
| * The compiler now uses the library interface specified by the [8]C++ |
| ABI for thread-safe initialization of function-scope static |
| variables. Most users should leave this alone, but embedded |
| programmers may want to disable this by specifying |
| -fno-threadsafe-statics for a small savings in code size. |
| * Taking the address of an explicit register variable is no longer |
| supported. Note that C++ allows taking the address of variables |
| with register storage so this will continue to compile with a |
| warning. For example, assuming that r0 is a machine register: |
| register int foo asm ("r0"); |
| register int bar; |
| &foo; // error, no longer accepted |
| &bar; // OK, with a warning |
| * G++ has an undocumented extension to virtual function covariancy |
| rules that allowed the overrider to return a type that was |
| implicitly convertable to the overridden function's return type. |
| For instance a function returning void * could be overridden by a |
| function returning T *. This is now deprecated and will be removed |
| in a future release. |
| * The G++ minimum and maximum operators (<? and >?) and their |
| compound forms (<?=) and >?=) have been deprecated and will be |
| removed in a future version. Code using these operators should be |
| modified to use std::min and std::max instead. |
| * Declaration of nested classes of class templates as friends are |
| supported: |
| template <typename T> struct A { |
| class B {}; |
| }; |
| class C { |
| template <typename T> friend class A<T>::B; |
| }; |
| This complements the feature member functions of class templates as |
| friends introduced in GCC 3.4.0. |
| * When declaring a friend class using an unqualified name, classes |
| outside the innermost non-class scope are not searched: |
| class A; |
| namespace N { |
| class B { |
| friend class A; // Refer to N::A which has not been declared yet |
| // because name outside namespace N are not searched |
| friend class ::A; // Refer to ::A |
| }; |
| } |
| Hiding the friend name until declaration is still not implemented. |
| * Friends of classes defined outside their namespace are correctly |
| handled: |
| namespace N { |
| class A; |
| } |
| class N::A { |
| friend class B; // Refer to N::B in GCC 4.0.0 |
| // but ::B in earlier versions of GCC |
| }; |
| |
| Runtime Library (libstdc++) |
| |
| * Optimization work: |
| + Added efficient specializations of istream functions for char |
| and wchar_t. |
| + Further performance tuning of strings, in particular wrt |
| single-char append and getline. |
| + iter_swap - and therefore most of the mutating algorithms - |
| now makes an unqualified call to swap when the value_type of |
| the two iterators is the same. |
| * A large subset of the features in Technical Report 1 (TR1 for |
| short) is experimentally delivered (i.e., no guarantees about the |
| implementation are provided. In particular it is not promised that |
| the library will remain link-compatible when code using TR1 is |
| used): |
| + General utilities such as reference_wrapper and shared_ptr. |
| + Function objects, i.e., result_of, mem_fn, bind, function. |
| + Support for metaprogramming. |
| + New containers such as tuple, array, unordered_set, |
| unordered_map, unordered_multiset, unordered_multimap. |
| * As usual, many bugs have been fixed and LWG resolutions implemented |
| for the first time (e.g., DR 409). |
| |
| Java |
| |
| * In order to prevent naming conflicts with other implementations of |
| these tools, some GCJ binaries have been renamed: |
| + rmic is now grmic, |
| + rmiregistry is now grmiregistry, and |
| + jar is now fastjar. |
| In particular, these names were problematic for the jpackage.org |
| packaging conventions which install symlinks in /usr/bin that point |
| to the preferred versions of these tools. |
| * The -findirect-dispatch argument to the compiler now works and |
| generates code following a new "binary compatibility" ABI. Code |
| compiled this way follows the binary compatibility rules of the |
| Java Language Specification. |
| * libgcj now has support for using GCJ as a JIT, using the |
| gnu.gcj.jit family of system properties. |
| * libgcj can now find a shared library corresponding to the bytecode |
| representation of a class. See the documentation for the new |
| gcj-dbtool program, and the new gnu.gcj.precompiled.db.path system |
| property. |
| * There have been many improvements to the class library. Here are |
| some highlights: |
| + Much more of AWT and Swing exist. |
| + Many new packages and classes were added, including |
| java.util.regex, java.net.URI, javax.crypto, |
| javax.crypto.interfaces, javax.crypto.spec, javax.net, |
| javax.net.ssl, javax.security.auth, |
| javax.security.auth.callback, javax.security.auth.login, |
| javax.security.auth.x500, javax.security.sasl, org.ietf.jgss, |
| javax.imageio, javax.imageio.event, javax.imageio.spi, |
| javax.print, javax.print.attribute, |
| javax.print.attribute.standard, javax.print.event, and |
| javax.xml |
| + Updated SAX and DOM, and imported GNU JAXP |
| |
| Fortran |
| |
| * A new [9]Fortran front end has replaced the aging GNU Fortran 77 |
| front end. The new front end supports Fortran 90 and Fortran 95. It |
| may not yet be as stable as the old Fortran front end. |
| |
| Ada |
| |
| * Ada (with tasking and Zero Cost Exceptions) is now available on |
| many more targets, including but not limited to: alpha-linux, |
| hppa-hpux, hppa-linux, powerpc-darwin, powerpc-linux, s390-linux, |
| s390x-linux, sparc-linux. |
| * Some of the new Ada 2005 features are now implemented like |
| Wide_Wide_Character and Ada.Containers. |
| * Many bugs have been fixed, tools and documentation improved. |
| * To compile Ada from the sources, install an older working Ada |
| compiler and then use --enable-languages=ada at configuration time, |
| since the Ada frontend is not currently activated by default. See |
| the [10]Installing GCC for details. |
| |
| New Targets and Target Specific Improvements |
| |
| H8/300 |
| |
| * The frame layout has changed. In the new layout, the prologue of a |
| function first saves registers and then allocate space for locals, |
| resulting in an 1% improvement on code size. |
| |
| IA-32/x86-64 (AMD64) |
| |
| * The acos, asin, drem, exp10, exp2, expm1, fmod, ilogb, log10, |
| log1p, log2, logb and tan mathematical builtins (and their float |
| and long double variants) are now implemented as inline x87 |
| intrinsics when using -ffast-math. |
| * The ceil, floor, nearbyint, rint and trunc mathematical builtins |
| (and their float and long double variants) are now implemented as |
| inline x87 intrinsics when using -ffast-math. |
| * The x87's fsincos instruction is now used automatically with |
| -ffast-math when calculating both the sin and cos of the same |
| argument. |
| * Instruction selection for multiplication and division by constants |
| has been improved. |
| |
| IA-64 |
| |
| * Floating point division, integer division and sqrt are now inlined, |
| resulting in significant performance improvements on some codes. |
| |
| MIPS |
| |
| * Division by zero checks now use conditional traps if the target |
| processor supports them. This decreases code size by one word per |
| division operation. The old behavior (branch and break) can be |
| obtained either at configure time by passing --with-divide=breaks |
| to configure or at runtime by passing -mdivide-breaks to GCC. |
| * Support for MIPS64 paired-single instructions has been added. It is |
| enabled by -mpaired-single and can be accessed using both the |
| target-independent vector extensions and new MIPS-specific built-in |
| functions. |
| * Support for the MIPS-3D ASE has been added. It is enabled by |
| -mips3d and provides new MIPS-3D-specific built-in functions. |
| * The -mexplicit-relocs option now supports static n64 code (as is |
| used, for example, in 64-bit linux kernels). -mexplicit-relocs |
| should now be feature-complete and is enabled by default when GCC |
| is configured to use a compatible assembler. |
| * Support for the NEC VR4130 series has been added. This support |
| includes the use of VR-specific instructions and a new VR4130 |
| scheduler. Full VR4130 support can be selected with -march=vr4130 |
| while code for any ISA can be tuned for the VR4130 using |
| -mtune=vr4130. There is also a new -mvr4130-align option that |
| produces better schedules at the cost of increased code size. |
| * Support for the Broadcom SB-1 has been extended. There is now an |
| SB-1 scheduler as well as support for the SB-1-specific |
| paired-single instructions. Full SB-1 support can be selected with |
| -march=sb1 while code for any ISA can be optimized for the SB-1 |
| using -mtune=sb1. |
| * The compiler can now work around errata in R4000, R4400, VR4120 and |
| VR4130 processors. These workarounds are enabled by -mfix-r4000, |
| -mfix-r4400, -mfix-vr4120 and -mfix-vr4130 respectively. The VR4120 |
| and VR4130 workarounds need binutils 2.16 or above. |
| * IRIX shared libraries are now installed into the standard library |
| directories: o32 libraries go into lib/, n32 libraries go into |
| lib32/ and n64 libraries go into lib64/. |
| * The compiler supports a new -msym32 option. It can be used to |
| optimize n64 code in which all symbols are known to have 32-bit |
| values. |
| |
| S/390 and zSeries |
| |
| * New command-line options help to generate code intended to run in |
| an environment where stack space is restricted, e.g. Linux kernel |
| code: |
| + -mwarn-framesize and -mwarn-dynamicstack trigger compile-time |
| warnings for single functions that require large or dynamic |
| stack frames. |
| + -mstack-size and -mstack-guard generate code that checks for |
| stack overflow at run time. |
| + -mpacked-stack generates code that reduces the stack frame |
| size of many functions by reusing unneeded parts of the stack |
| bias area. |
| * The -msoft-float option now ensures that generated code never |
| accesses floating point registers. |
| * The s390x-ibm-tpf target now fully supports C++, including |
| exceptions and threads. |
| * Various changes to improve performance of the generated code have |
| been implemented, including: |
| + GCC now uses sibling calls where possible. |
| + Condition code handling has been optimized, allowing GCC to |
| omit redundant comparisons in certain cases. |
| + The cost function guiding many optimizations has been refined |
| to more accurately represent the z900 and z990 processors. |
| + The ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW |
| instructions are now used to avoid conditional branches in |
| certain cases. |
| + The back end now uses the LEGITIMIZE_RELOAD_ADDRESS feature to |
| optimize address arithmetic required to access large stack |
| frames. |
| + GCC now makes more efficient use of memory-to-memory type |
| instructions (MVC, CLC, ...). |
| + More precise tracking of special register use allows better |
| instruction scheduling, in particular of the function prologue |
| and epilogue sequences. |
| + The Java front end now generates inline code to implement |
| integer division, instead of calling library routines. |
| |
| SPARC |
| |
| * The options -mv8, -msparclite, -mcypress, -msupersparc, -mf930 and |
| -mf934 have been removed. They have been replaced with -mcpu=xxx. |
| * The internal model used to estimate the relative cost of each |
| instruction has been updated. It is expected to give better results |
| on recent UltraSPARC processors. |
| * Code generation for function prologues and epilogues has been |
| improved, resulting in better scheduling and allowing multiple exit |
| points in functions. |
| * Support for Sun's Visual Instruction Set (VIS) has been enhanced. |
| It is enabled by -mvis and provides new built-in functions for VIS |
| instructions on UltraSPARC processors. |
| * The option -mapp-regs has been turned on by default on Solaris too. |
| |
| NetWare |
| |
| * Novell NetWare (on ix86, no other hardware platform was ever really |
| supported by this OS) has been re-enabled and the ABI supported by |
| GCC has been brought into sync with that of MetroWerks CodeWarrior |
| (the ABI previously supported was that of some Unix systems, which |
| NetWare never tried to support). |
| |
| Obsolete Systems |
| |
| Support for a number of older systems has been declared obsolete in GCC |
| 4.0. Unless there is activity to revive them, the next release of GCC |
| will have their sources permanently removed. |
| |
| All GCC ports for the following processor architectures have been |
| declared obsolete: |
| * Intel i860 |
| * Ubicom IP2022 |
| * National Semiconductor NS32K |
| * Texas Instruments TMS320C[34]x |
| |
| Also, those for some individual systems have been obsoleted: |
| * SPARC family |
| + SPARClite-based systems (sparclite-*-coff, sparclite-*-elf, |
| sparc86x-*-elf) |
| + OpenBSD 32-bit (sparc-*-openbsd*) |
| |
| Documentation improvements |
| |
| Other significant improvements |
| |
| * Location lists are now generated by default when compiling with |
| debug info and optimization. Location lists provide more accurate |
| debug info about locations of variables and they allow debugging |
| code compiled with -fomit-frame-pointer. |
| * The -fvisibility option has been added which allows the default ELF |
| visibility of all symbols to be set per compilation and the new |
| #pragma GCC visibility preprocessor command allows the setting of |
| default ELF visibility for a region of code. Using |
| -fvisibility=hidden especially in combination with the new |
| -fvisibility-inlines-hidden can yield substantial improvements in |
| output binary quality including avoiding PLT indirection overheads, |
| reduction of the exported symbol count by up to 60% (with resultant |
| improvements to link and load times), better scope for the |
| optimizer to improve code and up to a 20% reduction in binary size. |
| Using these options correctly yields a binary with a similar symbol |
| count to a Windows DLL. |
| Perhaps more importantly, this new feature finally allows (with |
| careful planning) complete avoidance of symbol clashes when |
| manually loading shared objects with RTLD_GLOBAL, thus finally |
| solving problems many projects such as python were forced to use |
| RTLD_LOCAL for (with its resulting issues for C++ correctness). You |
| can find more information about using these options at |
| [11]http://gcc.gnu.org/wiki/Visibility. |
| __________________________________________________________________ |
| |
| GCC 4.0.1 |
| |
| This is the [12]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.0.1 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| GCC 4.0.2 |
| |
| This is the [13]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.0.2 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Unfortunately, due to a release engineering failure, this release has a |
| regression on Solaris that will affect some C++ programs. We suggest |
| that Solaris users apply a [14]patch that corrects the problem. Users |
| who do not wish to apply the patch should explicitly link C++ programs |
| with the -pthreads option, even if they do not use threads. This |
| problem has been corrected in the current 4.0 branch sources and will |
| not be present in GCC 4.0.3. |
| |
| GCC 4.0.3 |
| |
| Starting with this release, the function getcontext is recognized by |
| the compiler as having the same semantics as the setjmp function. In |
| particular, the compiler will ensure that all registers are dead before |
| calling such a function and will emit a warning about the variables |
| that may be clobbered after the second return from the function. |
| |
| GCC 4.0.4 |
| |
| This is the [15]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 4.0.4 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| The 4.0.4 release is provided for those that require a high degree of |
| binary compatibility with previous 4.0.x releases. For most users, the |
| GCC team recommends that version 4.1.1 or later be used instead." |
| |
| Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There |
| are also [17]other ways to contact the FSF. |
| |
| These pages are maintained by [18]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [19]GCC manuals. If that fails, the |
| [20]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. |
| All of our lists have [23]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2009-01-25 [24]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 |
| 2. http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html |
| 3. http://gcc.gnu.org/projects/tree-ssa/ |
| 4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html |
| 5. http://gcc.gnu.org/news/sms.html |
| 6. http://people.redhat.com/drepper/dsohowto.pdf |
| 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility |
| 8. http://www.codesourcery.com/public/cxx-abi/ |
| 9. http://gcc.gnu.org/fortran/ |
| 10. http://gcc.gnu.org/install/ |
| 11. http://gcc.gnu.org/wiki/Visibility |
| 12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 |
| 13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2 |
| 14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html |
| 15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4 |
| 16. mailto:gnu@gnu.org |
| 17. http://www.gnu.org/home.html#ContactInfo |
| 18. http://gcc.gnu.org/about.html |
| 19. http://gcc.gnu.org/onlinedocs/ |
| 20. mailto:gcc-help@gcc.gnu.org |
| 21. mailto:gcc@gnu.org |
| 22. mailto:gcc@gcc.gnu.org |
| 23. http://gcc.gnu.org/lists.html |
| 24. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.4/index.html |
| GCC 3.4 Release Series |
| |
| May 26, 2006 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 3.4.6. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 3.4.4 relative to previous releases of GCC. This is the last of the |
| 3.4.x series. |
| |
| The GCC 3.4 release series includes numerous [2]new features, |
| improvements, bug fixes, and other changes, thanks to an [3]amazing |
| group of volunteers. |
| |
| Release History |
| |
| GCC 3.4.6 |
| March 6, 2006 ([4]changes) |
| |
| GCC 3.4.5 |
| November 30, 2005 ([5]changes) |
| |
| GCC 3.4.4 |
| May 18, 2005 ([6]changes) |
| |
| GCC 3.4.3 |
| November 4, 2004 ([7]changes) |
| |
| GCC 3.4.2 |
| September 6, 2004 ([8]changes) |
| |
| GCC 3.4.1 |
| July 1, 2004 ([9]changes) |
| |
| GCC 3.4.0 |
| April 18, 2004 ([10]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [11]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [12]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [13]GCC |
| project web site or contact the [14]GCC development mailing list. |
| |
| To obtain GCC please use [15]our mirror sites, or [16]our SVN server. |
| |
| Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There |
| are also [18]other ways to contact the FSF. |
| |
| These pages are maintained by [19]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [20]GCC manuals. If that fails, the |
| [21]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. |
| All of our lists have [24]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [25]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-3.4/changes.html |
| 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 |
| 5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 |
| 6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 |
| 7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 |
| 8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 |
| 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 |
| 10. http://gcc.gnu.org/gcc-3.4/changes.html |
| 11. http://gcc.gnu.org/gcc-3.4/buildstat.html |
| 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 13. http://gcc.gnu.org/index.html |
| 14. mailto:gcc@gcc.gnu.org |
| 15. http://gcc.gnu.org/mirrors.html |
| 16. http://gcc.gnu.org/svn.html |
| 17. mailto:gnu@gnu.org |
| 18. http://www.gnu.org/home.html#ContactInfo |
| 19. http://gcc.gnu.org/about.html |
| 20. http://gcc.gnu.org/onlinedocs/ |
| 21. mailto:gcc-help@gcc.gnu.org |
| 22. mailto:gcc@gnu.org |
| 23. mailto:gcc@gcc.gnu.org |
| 24. http://gcc.gnu.org/lists.html |
| 25. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.4/changes.html |
| GCC 3.4 Release Series |
| Changes, New Features, and Fixes |
| |
| The final release in the 3.4 release series is [1]GCC 3.4.6. The series |
| is now closed. |
| |
| GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting |
| a bug, please make sure it's really GCC, and not your code, that is |
| broken. |
| |
| Caveats |
| |
| * GNU Make is now required to build GCC. |
| * With -nostdinc the preprocessor used to ignore both standard |
| include paths and include paths contained in environment variables. |
| It was neither documented nor intended that environment variable |
| paths be ignored, so this has been corrected. |
| * GCC no longer accepts the options -fvolatile, -fvolatile-global and |
| -fvolatile-static. It is unlikely that they worked correctly in any |
| 3.x release. |
| * GCC no longer ships <varargs.h>. Use <stdarg.h> instead. |
| * Support for all the systems [3]obsoleted in GCC 3.3 has been |
| removed from GCC 3.4. See below for a [4]list of systems which are |
| obsoleted in this release. |
| * GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C |
| compilers will not work. |
| * The implementation of the [5]MIPS ABIs has changed. As a result, |
| the code generated for certain MIPS targets will not be binary |
| compatible with earlier releases. |
| * In previous releases, the MIPS port had a fake "hilo" register with |
| the user-visible name accum. This register has been removed. |
| * The implementation of the [6]SPARC ABIs has changed. As a result, |
| the code generated will not be binary compatible with earlier |
| releases in certain cases. |
| * The configure option --enable-threads=pthreads has been removed; |
| use --enable-threads=posix instead, which should have the same |
| effect. |
| * Code size estimates used by inlining heuristics for C, Objective-C, |
| C++ and Java have been redesigned significantly. As a result the |
| parameters of -finline-insns, --param max-inline-insns-single and |
| --param max-inline-insns-auto need to be reconsidered. |
| * --param max-inline-slope and --param min-inline-insns have been |
| removed; they are not needed for the new bottom-up inlining |
| heuristics. |
| * The new unit-at-a-time compilation scheme has several compatibility |
| issues: |
| + The order in which functions, variables, and top-level asm |
| statements are emitted may have changed. Code relying on some |
| particular ordering needs to be updated. The majority of such |
| top-level asm statements can be replaced by section |
| attributes. |
| + Unreferenced static variables and functions are removed. This |
| may result in undefined references when an asm statement |
| refers to the variable/function directly. In that case either |
| the variable/function shall be listed in asm statement operand |
| or in the case of top-level asm statements the attribute used |
| shall be used to force function/variable to be always output |
| and considered as a possibly used by unknown code. |
| For variables the attribute is accepted only by GCC 3.4 and |
| newer, while for earlier versions it is sufficient to use |
| unused to silence warnings about the variables not being |
| referenced. To keep code portable across different GCC |
| versions, you can use appropriate preprocessor conditionals. |
| + Static functions now can use non-standard passing conventions |
| that may break asm statements calling functions directly. |
| Again the attribute used shall be used to prevent this |
| behavior. |
| As a temporary workaround, -fno-unit-at-a-time can be used, but |
| this scheme may not be supported by future releases of GCC. |
| * GCC 3.4 automatically places zero-initialized variables in the .bss |
| section on some operating systems. Versions of GNU Emacs up to (and |
| including) 21.3 will not work correctly when using this |
| optimization; you can use -fno-zero-initialized-in-bss to disable |
| it. |
| * If GCC 3.4 is configured with --enable-threads=posix (the default |
| on most targets that support pthreads) then _REENTRANT will be |
| defined unconditionally by some libstdc++ headers. C++ code which |
| relies on that macro to detect whether multi-threaded code is being |
| compiled might change in meaning, possibly resulting in linker |
| errors for single-threaded programs. Affected users of [7]Boost |
| should compile single-threaded code with -DBOOST_DISABLE_THREADS. |
| See Bugzilla for [8]more information. |
| |
| General Optimizer Improvements |
| |
| * Usability of the profile feedback and coverage testing has been |
| improved. |
| + Performance of profiled programs has been improved by faster |
| profile merging code. |
| + Better use of the profile feedback for optimization (loop |
| unrolling and loop peeling). |
| + File locking support allowing fork() calls and parallel runs |
| of profiled programs. |
| + Coverage file format has been redesigned. |
| + gcov coverage tool has been improved. |
| + make profiledbootstrap available to build a faster compiler. |
| Experiments made on i386 hardware showed an 11% speedup on -O0 |
| and a 7.5% speedup on -O2 compilation of a [9]large C++ |
| testcase. |
| + New value profiling pass enabled via -fprofile-values |
| + New value profile transformations pass enabled via -fvpt aims |
| to optimize some code sequences by exploiting knowledge about |
| value ranges or other properties of the operands. At the |
| moment a conversion of expensive divisions into cheaper |
| operations has been implemented. |
| + New -fprofile-generate and -fprofile-use command-line options |
| to simplify the use of profile feedback. |
| * A new unit-at-a-time compilation scheme for C, Objective-C, C++ and |
| Java which is enabled via -funit-at-a-time (and implied by -O2). In |
| this scheme a whole file is parsed first and optimized later. The |
| following basic inter-procedural optimizations are implemented: |
| + Removal of unreachable functions and variables |
| + Discovery of local functions (functions with static linkage |
| whose address is never taken) |
| + On i386, these local functions use register parameter passing |
| conventions. |
| + Reordering of functions in topological order of the call graph |
| to enable better propagation of optimizing hints (such as the |
| stack alignments needed by functions) in the back end. |
| + Call graph based out-of-order inlining heuristics which allows |
| to limit overall compilation unit growth (--param |
| inline-unit-growth). |
| Overall, the unit-at-a-time scheme produces a 1.3% improvement for |
| the SPECint2000 benchmark on the i386 architecture (AMD Athlon |
| CPU). |
| * More realistic code size estimates used by inlining for C, |
| Objective-C, C++ and Java. The growth of large functions can now be |
| limited via --param large-function-insns and --param |
| large-function-growth. |
| * A new cfg-level loop optimizer pass replaces the old loop unrolling |
| pass and adds two other loop transformations -- loop peeling and |
| loop unswitching -- and also uses the profile feedback to limit |
| code growth. (The three optimizations are enabled by |
| -funroll-loops, -fpeel-loops and -funswitch-loops flags, |
| respectively). |
| The old loop unroller still can be enabled by -fold-unroll-loops |
| and may produce better code in some cases, especially when the |
| webizer optimization pass is not run. |
| * A new web construction pass enabled via -fweb (and implied by -O3) |
| improves the quality of register allocation, CSE, first scheduling |
| pass and some other optimization passes by avoiding re-use of |
| pseudo registers with non-overlapping live ranges. The pass almost |
| always improves code quality but does make debugging difficult and |
| thus is not enabled by default by -O2 |
| The pass is especially effective as cleanup after code duplication |
| passes, such as the loop unroller or the tracer. |
| * Experimental implementations of superblock or trace scheduling in |
| the second scheduling pass can be enabled via |
| -fsched2-use-superblocks and -fsched2-use-traces, respectively. |
| |
| New Languages and Language specific improvements |
| |
| Ada |
| |
| * The Ada front end has been updated to include numerous bug fixes |
| and enhancements. These include: |
| + Improved project file support |
| + Additional set of warnings about potential wrong code |
| + Improved error messages |
| + Improved code generation |
| + Improved cross reference information |
| + Improved inlining |
| + Better run-time check elimination |
| + Better error recovery |
| + More efficient implementation of unbounded strings |
| + Added features in GNAT.Sockets, GNAT.OS_Lib, GNAT.Debug_Pools, |
| ... |
| + New GNAT.xxxx packages (e.g. GNAT.Strings, |
| GNAT.Exception_Action) |
| + New pragmas |
| + New -gnatS switch replacing gnatpsta |
| + Implementation of new Ada features (in particular limited |
| with, limited aggregates) |
| |
| C/Objective-C/C++ |
| |
| * Precompiled headers are now supported. Precompiled headers can |
| dramatically speed up compilation of some projects. There are some |
| known defects in the current precompiled header implementation that |
| will result in compiler crashes in relatively rare situations. |
| Therefore, precompiled headers should be considered a "technology |
| preview" in this release. Read the manual for details about how to |
| use precompiled headers. |
| * File handling in the preprocessor has been rewritten. GCC no longer |
| gets confused by symlinks and hardlinks, and now has a correct |
| implementation of #import and #pragma once. These two directives |
| have therefore been un-deprecated. |
| * The undocumented extension that allowed C programs to have a label |
| at the end of a compound statement, which has been deprecated since |
| GCC 3.0, has been removed. |
| * The cast-as-lvalue extension has been removed for C++ and |
| deprecated for C and Objective-C. In particular, code like this: |
| int i; |
| (char) i = 5; |
| |
| or this: |
| char *p; |
| ((int *) p)++; |
| |
| is no longer accepted for C++ and will not be accepted for C and |
| Objective-C in a future version. |
| * The conditional-expression-as-lvalue extension has been deprecated |
| for C and Objective-C. In particular, code like this: |
| int a, b, c; |
| (a ? b : c) = 2; |
| |
| will not be accepted for C and Objective-C in a future version. |
| * The compound-expression-as-lvalue extension has been deprecated for |
| C and Objective-C. In particular, code like this: |
| int a, b; |
| (a, b) = 2; |
| |
| will not be accepted for C and Objective-C in a future version. A |
| possible non-intrusive workaround is the following: |
| (*(a, &b)) = 2; |
| |
| * Several [10]built-in functions such as __builtin_popcount for |
| counting bits, finding the highest and lowest bit in a word, and |
| parity have been added. |
| * The -fwritable-strings option has been deprecated and will be |
| removed. |
| * Many C math library functions are now recognized as built-ins and |
| optimized. |
| * The C, C++, and Objective-C compilers can now handle source files |
| written in any character encoding supported by the host C library. |
| The default input character set is taken from the current locale, |
| and may be overridden with the -finput-charset command line option. |
| In the future we will add support for inline encoding markers. |
| |
| C++ |
| |
| * G++ is now much closer to full conformance to the ISO/ANSI C++ |
| standard. This means, among other things, that a lot of invalid |
| constructs which used to be accepted in previous versions will now |
| be rejected. It is very likely that existing C++ code will need to |
| be fixed. This document lists some of the most common issues. |
| * A hand-written recursive-descent C++ parser has replaced the |
| YACC-derived C++ parser from previous GCC releases. The new parser |
| contains much improved infrastructure needed for better parsing of |
| C++ source codes, handling of extensions, and clean separation |
| (where possible) between proper semantics analysis and parsing. The |
| new parser fixes many bugs that were found in the old parser. |
| * You must now use the typename and template keywords to disambiguate |
| dependent names, as required by the C++ standard. |
| struct K { |
| typedef int mytype_t; |
| }; |
| |
| template <class T1> struct A { |
| template <class T2> struct B { |
| void callme(void); |
| }; |
| |
| template <int N> void bar(void) |
| { |
| // Use 'typename' to tell the parser that T1::mytype_t names |
| // a type. This is needed because the name is dependent (in |
| // this case, on template parameter T1). |
| typename T1::mytype_t x; |
| x = 0; |
| } |
| }; |
| |
| template <class T> void template_func(void) |
| { |
| // Use 'template' to prefix member templates within |
| // dependent types (a has type A<T>, which depends on |
| // the template parameter T). |
| A<T> a; |
| a.template bar<0>(); |
| |
| // Use 'template' to tell the parser that B is a nested |
| // template class (dependent on template parameter T), and |
| // 'typename' because the whole A<T>::B<int> is |
| // the name of a type (again, dependent). |
| typename A<T>::template B<int> b; |
| b.callme(); |
| } |
| |
| void non_template_func(void) |
| { |
| // Outside of any template class or function, no names can be |
| // dependent, so the use of the keyword 'typename' and 'template' |
| // is not needed (and actually forbidden). |
| A<K> a; |
| a.bar<0>(); |
| A<K>::B<float> b; |
| b.callme(); |
| } |
| * In a template definition, unqualified names will no longer find |
| members of a dependent base (as specified by [temp.dep]/3 in the |
| C++ standard). For example, |
| template <typename T> struct B { |
| int m; |
| int n; |
| int f (); |
| int g (); |
| }; |
| int n; |
| int g (); |
| template <typename T> struct C : B<T> { |
| void h () |
| { |
| m = 0; // error |
| f (); // error |
| n = 0; // ::n is modified |
| g (); // ::g is called |
| } |
| }; |
| You must make the names dependent, e.g. by prefixing them with |
| this->. Here is the corrected definition of C<T>::h, |
| template <typename T> void C<T>::h () |
| { |
| this->m = 0; |
| this->f (); |
| this->n = 0 |
| this->g (); |
| } |
| As an alternative solution (unfortunately not backwards compatible |
| with GCC 3.3), you may use using declarations instead of this->: |
| template <typename T> struct C : B<T> { |
| using B<T>::m; |
| using B<T>::f; |
| using B<T>::n; |
| using B<T>::g; |
| void h () |
| { |
| m = 0; |
| f (); |
| n = 0; |
| g (); |
| } |
| }; |
| * In templates, all non-dependent names are now looked up and bound |
| at definition time (while parsing the code), instead of later when |
| the template is instantiated. For instance: |
| void foo(int); |
| |
| template <int> struct A { |
| static void bar(void){ |
| foo('a'); |
| } |
| }; |
| |
| void foo(char); |
| |
| int main() |
| { |
| A<0>::bar(); // Calls foo(int), used to call foo(char). |
| } |
| |
| * In an explicit instantiation of a class template, you must use |
| class or struct before the template-id: |
| template <int N> |
| class A {}; |
| |
| template A<0>; // error, not accepted anymore |
| template class A<0>; // OK |
| * The "named return value" and "implicit typename" extensions have |
| been removed. |
| * Default arguments in function types have been deprecated and will |
| be removed. |
| * ARM-style name-injection of friend declarations has been deprecated |
| and will be removed. For example: struct S { friend void f(); }; |
| void g() { f(); } will not be accepted by future versions of G++; |
| instead a declaration of "f" will need to be present outside of the |
| scope of "S". |
| * Covariant returns are implemented for all but varadic functions |
| that require an adjustment. |
| * When -pedantic is used, G++ now issues errors about spurious |
| semicolons. For example, |
| namespace N {}; // Invalid semicolon. |
| void f() {}; // Invalid semicolon. |
| * G++ no longer accepts attributes for a declarator after the |
| initializer associated with that declarator. For example, |
| X x(1) __attribute__((...)); |
| is no longer accepted. Instead, use: |
| X x __attribute__((...)) (1); |
| * Inside the scope of a template class, the name of the class itself |
| can be treated as either a class or a template. So GCC used to |
| accept the class name as argument of type template, and template |
| template parameter. However this is not C++ standard compliant. Now |
| the name is not treated as a valid template template argument |
| unless you qualify the name by its scope. For example, the code |
| below no longer compiles. |
| template <template <class> class TT> class X {}; |
| template <class T> class Y { |
| X<Y> x; // Invalid, Y is always a type template parameter. |
| }; |
| The valid code for the above example is |
| X< ::Y> x; // Valid. |
| (Notice the space between < and : to prevent GCC to interpret this |
| as a digraph for [.) |
| * Friend declarations that refer to template specializations are |
| rejected if the template has not already been declared. For |
| example, |
| template <typename T> |
| class C { |
| friend void f<> (C&); |
| }; |
| is rejected. You must first declare f as a template, |
| template <typename T> |
| void f(T); |
| * In case of friend declarations, every name used in the friend |
| declaration must be accessible at the point of that declaration. |
| Previous versions of G++ used to be less strict about this and |
| allowed friend declarations for private class members, for example. |
| See the ISO C++ Standard Committee's [11]defect report #209 for |
| details. |
| * Declaration of member functions of class templates as friends are |
| supported. For example, |
| template <typename T> struct A { |
| void f(); |
| }; |
| class C { |
| template <typename T> friend void A<T>::f(); |
| }; |
| * You must use template <> to introduce template specializations, as |
| required by the standard. For example, |
| template <typename T> |
| struct S; |
| |
| struct S<int> { }; |
| is rejected. You must write, |
| template <> struct S<int> {}; |
| * G++ used to accept code like this, |
| struct S { |
| int h(); |
| void f(int i = g()); |
| int g(int i = h()); |
| }; |
| This behavior is not mandated by the standard. Now G++ issues an |
| error about this code. To avoid the error, you must move the |
| declaration of g before the declaration of f. The default arguments |
| for g must be visible at the point where it is called. |
| * The C++ ABI Section 3.3.3 specifications for the array construction |
| routines __cxa_vec_new2 and __cxa_vec_new3 were changed to return |
| NULL when the allocator argument returns NULL. These changes are |
| incorporated into the libstdc++ runtime library. |
| * Using a name introduced by a typedef in a friend declaration or in |
| an explicit instantiation is now rejected, as specified by the ISO |
| C++ standard. |
| class A; |
| typedef A B; |
| class C { |
| friend class B; // error, no typedef name here |
| friend B; // error, friend always needs class/struct/enum |
| friend class A; // OK |
| }; |
| |
| template <int> class Q {}; |
| typedef Q<0> R; |
| template class R; // error, no typedef name here |
| template class Q<0>; // OK |
| * When allocating an array with a new expression, GCC used to allow |
| parentheses around the type name. This is actually ill-formed and |
| it is now rejected: |
| int* a = new (int)[10]; // error, not accepted anymore |
| int* a = new int[10]; // OK |
| * When binding an rvalue of class type to a reference, the copy |
| constructor of the class must be accessible. For instance, consider |
| the following code: |
| class A |
| { |
| public: |
| A(); |
| |
| private: |
| A(const A&); // private copy ctor |
| }; |
| |
| A makeA(void); |
| void foo(const A&); |
| |
| void bar(void) |
| { |
| foo(A()); // error, copy ctor is not accessible |
| foo(makeA()); // error, copy ctor is not accessible |
| |
| A a1; |
| foo(a1); // OK, a1 is a lvalue |
| } |
| This might be surprising at first sight, especially since most |
| popular compilers do not correctly implement this rule ([12]further |
| details). |
| * When forming a pointer to member or a pointer to member function, |
| access checks for class visibility (public, protected, private) are |
| now performed using the qualifying scope of the name itself. This |
| is better explained with an example: |
| class A |
| { |
| public: |
| void pub_func(); |
| protected: |
| void prot_func(); |
| private: |
| void priv_func(); |
| }; |
| |
| class B : public A |
| { |
| public: |
| void foo() |
| { |
| &A::pub_func; // OK, pub_func is accessible through A |
| &A::prot_func; // error, cannot access prot_func through A |
| &A::priv_func; // error, cannot access priv_func through A |
| |
| &B::pub_func; // OK, pub_func is accessible through B |
| &B::prot_func; // OK, can access prot_func through B (within B) |
| &B::priv_func; // error, cannot access priv_func through B |
| } |
| }; |
| |
| Runtime Library (libstdc++) |
| |
| * Optimization work: |
| + Streamlined streambuf, filebuf, separate synched with C |
| Standard I/O streambuf. |
| + All formatted I/O now uses cached locale information. |
| + STL optimizations (memory/speed for list, red-black trees as |
| used by sets and maps). |
| + More use of GCC builtins. |
| + String optimizations (avoid contention on |
| increment/decrement-and-test of the reference count in the |
| empty-string object, constructor from input_iterators |
| speedup). |
| * Static linkage size reductions. |
| * Large File Support (files larger than 2 GB on 32-bit systems). |
| * Wide character and variable encoding filebuf work (UTF-8, Unicode). |
| * Generic character traits. |
| * Also support wchar_t specializations on Mac OS 10.3.x, FreeBSD 5.x, |
| Solaris 2.7 and above, AIX 5.x, Irix 6.5. |
| * The allocator class is now standard-conformant, and two additional |
| extension allocators have been added, mt_alloc and |
| bitmap_allocator. |
| * PCH support: -include bits/stdc++.h (2x compile speedup). |
| * Rewrote __cxa_demangle with support for C++ style allocators. |
| * New debug modes for STL containers and iterators. |
| * Testsuite rewrite: five times as many tests, plus increasingly |
| sophisticated tests, including I/O, MT, multi-locale, wide and |
| narrow characters. |
| * Use current versions of GNU "autotools" for build/configuration. |
| |
| Objective-C |
| |
| * The Objective-C front end has been updated to include the numerous |
| bug fixes and enhancements previously available only in Apple's |
| version of GCC. These include: |
| + Structured exception (@try... @catch... @finally, @throw) and |
| synchronization (@synchronized) support. These are accessible |
| via the -fobjc-exceptions switch; as of this writing, they may |
| only be used in conjunction with -fnext-runtime on Mac OS X |
| 10.3 and later. See [13]Options Controlling Objective-C |
| Dialect for more information. |
| + An overhaul of @encode logic. The C99 _Bool and C++ bool type |
| may now be encoded as 'B'. In addition, the back-end/codegen |
| dependencies have been removed. |
| + An overhaul of message dispatch construction, ensuring that |
| the various receiver types (and casts thereof) are handled |
| properly, and that correct diagnostics are issued. |
| + Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue" |
| (-freplace-objc-classes) debugging modes, currently available |
| on Mac OS X 10.3 and later. See [14]Options Controlling |
| Objective-C Dialect for more information. |
| + Access to optimized runtime entry points (-fno-nil-receivers ) |
| on the assumption that message receivers are never nil. This |
| is currently available on Mac OS X 10.3 and later. See |
| [15]Options Controlling Objective-C Dialect for more |
| information. |
| |
| Java |
| |
| * Compiling a .jar file will now cause non-.class entries to be |
| automatically compiled as resources. |
| * libgcj has been ported to Darwin. |
| * Jeff Sturm has adapted Jan Hubicka's call graph optimization code |
| to gcj. |
| * libgcj has a new gcjlib URL type; this lets URLClassLoader load |
| code from shared libraries. |
| * libgcj has been much more completely merged with [16]GNU Classpath. |
| * Class loading is now much more correct; in particular the caller's |
| class loader is now used when that is required. |
| * [17]Eclipse 2.x will run out of the box using gij. |
| * Parts of java.nio have been implemented. Direct and indirect |
| buffers work, as do fundamental file and socket operations. |
| * java.awt has been improved, though it is still not ready for |
| general use. |
| * The HTTP protocol handler now uses HTTP/1.1 and can handle the POST |
| method. |
| * The MinGW port has matured. Enhancements include socket timeout |
| support, thread interruption, improved Runtime.exec() handling and |
| support for accented characters in filenames. |
| |
| Fortran |
| |
| * Fortran improvements are listed in the [18]Fortran documentation. |
| |
| New Targets and Target Specific Improvements |
| |
| Alpha |
| |
| * Several [19]built-in functions have been added such as |
| __builtin_alpha_zap to allow utilizing the more obscure |
| instructions of the CPU. |
| * Parameter passing of complex arguments has changed to match the |
| [20]ABI. This change is incompatible with previous GCC versions, |
| but does fix compatibility with the Tru64 compiler and several |
| corner cases where GCC was incompatible with itself. |
| |
| ARM |
| |
| * Nicolas Pitre has contributed his hand-coded floating-point support |
| code for ARM. It is both significantly smaller and faster than the |
| existing C-based implementation, even when building applications |
| for Thumb. The arm-elf configuration has been converted to use the |
| new code. |
| * Support for the Intel's iWMMXt architecture, a second generation |
| XScale processor, has been added. Enabled at run time with the |
| -mcpu=iwmmxt command line switch. |
| * A new ARM target has been added: arm-wince-pe. This is similar to |
| the arm-pe target, but it defaults to using the APCS32 ABI. |
| * The existing ARM pipeline description has been converted to the use |
| the [21]DFA processor pipeline model. There is not much change in |
| code performance, but the description is now [22]easier to |
| understand. |
| * Support for the Cirrus EP9312 Maverick floating point co-processor |
| added. Enabled at run time with the -mcpu=ep9312 command line |
| switch. Note however that the multilibs to support this chip are |
| currently disabled in gcc/config/arm/t-arm-elf, so if you want to |
| enable their production you will have to uncomment the entries in |
| that file. |
| |
| H8/300 |
| |
| * Support for long long has been added. |
| * Support for saveall attribute has been added. |
| * Pavel Pisa contributed hand-written 32-bit-by-32-bit division code |
| for H8/300H and H8S, which is much faster than the previous |
| implementation. |
| * A lot of small performance improvements. |
| |
| IA-32/AMD64 (x86-64) |
| |
| * Tuning for K8 (AMD Opteron/Athlon64) core is available via |
| -march=k8 and -mcpu=k8. |
| * Scalar SSE code generation carefully avoids reformatting penalties, |
| hidden dependencies and minimizes the number of uops generated on |
| both Intel and AMD CPUs. |
| * Vector MMX and SSE operands are now passed in registers to improve |
| performance and match the argument passing convention used by the |
| Intel C++ Compiler. As a result it is not possible to call |
| functions accepting vector arguments compiled by older GCC version. |
| * Conditional jump elimination is now more aggressive on modern CPUs. |
| * The Athlon ports has been converted to use the DFA processor |
| pipeline description. |
| * Optimization of indirect tail calls is now possible in a similar |
| fashion as direct sibcall optimization. |
| * Further small performance improvements. |
| * -m128bit-long-double is now less buggy. |
| * __float128 support in 64-bit compilation. |
| * Support for data structures exceeding 2GB in 64-bit mode. |
| * -mcpu has been renamed to -mtune. |
| |
| IA-64 |
| |
| * Tuning code for the Itanium 2 processor has been added. The |
| generation of code tuned for Itanium 2 (option -mtune=itanium2) is |
| enabled by default now. To generate code tuned for Itanium 1 the |
| option -mtune=itanium1 should be used. |
| * [23]DFA processor pipeline descriptions for the IA-64 processors |
| have been added. This resulted in about 3% improvement on the |
| SPECInt2000 benchmark for Itanium 2. |
| * Instruction bundling for the IA-64 processors has been rewritten |
| using the DFA pipeline hazard recognizer. It resulted in about 60% |
| compiler speedup on the SPECInt2000 C programs. |
| |
| M32R |
| |
| * Support for the M32R/2 processor has been added by Renesas. |
| * Support for an M32R Linux target and PIC code generation has been |
| added by Renesas. |
| |
| M68000 |
| |
| * Bernardo Innocenti (Develer S.r.l.) has contributed the |
| m68k-uclinux target, based on former work done by Paul Dale |
| (SnapGear Inc.). Code generation for the ColdFire processors family |
| has been enhanced and extended to support the MCF 53xx and MCF 54xx |
| cores, integrating former work done by Peter Barada (Motorola). |
| |
| MIPS |
| |
| Processor-specific changes |
| |
| * Support for the RM7000 and RM9000 processors has been added. It can |
| be selected using the -march compiler option and should work with |
| any MIPS I (mips-*) or MIPS III (mips64-*) configuration. |
| * Support for revision 2 of the MIPS32 ISA has been added. It can be |
| selected with the command-line option -march=mips32r2. |
| * There is a new option, -mfix-sb1, to work around certain SB-1 |
| errata. |
| |
| Configuration |
| |
| * It is possible to customize GCC using the following configure-time |
| options: |
| + --with-arch, which specifies the default value of the -march |
| option. |
| + --with-tune, which specifies the default value of the -mtune |
| option. |
| + --with-abi, which specifies the default ABI. |
| + --with-float=soft, which tells GCC to use software floating |
| point by default. |
| + --with-float=hard, which tells GCC to use hardware floating |
| point by default. |
| * A 64-bit GNU/Linux port has been added. The associated |
| configurations are mips64-linux-gnu and mips64el-linux-gnu. |
| * The 32-bit GNU/Linux port now supports Java. |
| * The IRIX 6 configuration now supports the o32 ABI and will build |
| o32 multilibs by default. This support is compatible with both |
| binutils and the SGI tools, but note that several features, |
| including debugging information and DWARF2 exception handling, are |
| only available when using the GNU assembler. Use of the GNU |
| assembler and linker (version 2.15 or above) is strongly |
| recommended. |
| * The IRIX 6 configuration now supports 128-bit long doubles. |
| * There are two new RTEMS-specific configurations, mips-rtems and |
| mipsel-rtems. |
| * There are two new *-elf configurations, mipsisa32r2-elf and |
| mipsisa32r2el-elf. |
| |
| General |
| |
| * Several [24]ABI bugs have been fixed. Unfortunately, these changes |
| will break binary compatibility with earlier releases. |
| * GCC can now use explicit relocation operators when generating |
| -mabicalls code. This behavior is controlled by -mexplicit-relocs |
| and can have several performance benefits. For example: |
| + It allows for more optimization of GOT accesses, including |
| better scheduling and redundancy elimination. |
| + It allows sibling calls to be implemented as jumps. |
| + n32 and n64 leaf functions can use a call-clobbered global |
| pointer instead of $28. |
| + The code to set up $gp can be removed from functions that |
| don't need it. |
| * A new option, -mxgot, allows the GOT to be bigger than 64k. This |
| option is equivalent to the assembler's -xgot option and should be |
| used instead of -Wa,-xgot. |
| * Frame pointer elimination is now supported when generating 64-bit |
| MIPS16 code. |
| * Inline block moves have been optimized to take more account of |
| alignment information. |
| * Many internal changes have been made to the MIPS port, mostly aimed |
| at reducing the reliance on assembler macros. |
| |
| PowerPC |
| |
| * GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64 |
| [25]ABI incompatibilities regarding the way parameters are passed |
| during functions calls. These changes may result in incompatibility |
| between code compiled with GCC 3.3 and GCC 3.4. |
| |
| PowerPC Darwin |
| |
| * Support for shared/dylib gcc libraries has been added. It is |
| enabled by default on powerpc-apple-darwin7.0.0 and up. |
| * Libgcj is enabled by default. On systems older than |
| powerpc-apple-darwin7.0.0 you need to install dlcompat. |
| * 128-bit IBM extended precision format support added for long |
| double. |
| |
| PowerPC64 GNU/Linux |
| |
| * By default, PowerPC64 GNU/Linux now uses natural alignment of |
| structure elements. The old four byte alignment for double, with |
| special rules for a struct starting with a double, can be chosen |
| with -malign-power. This change may result in incompatibility |
| between code compiled with GCC 3.3 and GCC 3.4. |
| * -mabi=altivec is now the default rather than -mabi=no-altivec. |
| * 128-bit IBM extended precision format support added for long |
| double. |
| |
| S/390 and zSeries |
| |
| * New command-line options allow to specify the intended execution |
| environment for generated code: |
| + -mesa/-mzarch allows to specify whether to generate code |
| running in ESA/390 mode or in z/Architecture mode (this is |
| applicable to 31-bit code only). |
| + -march allows to specify a minimum processor architecture |
| level (g5, g6, z900, or z990). |
| + -mtune allows to specify which processor to tune for. |
| * It is possible to customize GCC using the following configure-time |
| options: |
| + --with-mode, which specifies whether to default to assuming |
| ESA/390 or z/Architecture mode. |
| + --with-arch, which specifies the default value of the -march |
| option. |
| + --with-tune, which specifies the default value of the -mtune |
| option. |
| * Support for the z990 processor has been added, and can be selected |
| using -march=z990 or -mtune=z990. This includes instruction |
| scheduling tuned for the superscalar instruction pipeline of the |
| z990 processor as well as support for all new instructions provided |
| by the long-displacement facility. |
| * Support to generate 31-bit code optimized for zSeries processors |
| (running in ESA/390 or in z/Architecture mode) has been added. This |
| can be selected using -march=z900 and -mzarch respectively. |
| * Instruction scheduling for the z900 and z990 processors now uses |
| the DFA pipeline hazard recognizer. |
| * GCC no longer generates code to maintain a stack backchain, |
| previously used to generate stack backtraces for debugging |
| purposes. As replacement that does not incur runtime overhead, |
| DWARF-2 call frame information is provided by GCC; this is |
| supported by GDB 6.1. The old behavior can be restored using the |
| -mbackchain option. |
| * The stack frame size of functions may now exceed 2 GB in 64-bit |
| code. |
| * A port for the 64-bit IBM TPF operating system has been added; the |
| configuration is s390x-ibm-tpf. This configuration is supported as |
| cross-compilation target only. |
| * Various changes to improve the generated code have been |
| implemented, including: |
| + GCC now uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT |
| instructions to significantly speed up many floating-point |
| applications. |
| + GCC now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL |
| WITH BORROW instructions to speed up long long arithmetic. |
| + GCC now uses the SEARCH STRING instruction to implement |
| strlen(). |
| + In many cases, function call overhead for 31-bit code has been |
| reduced by placing the literal pool after the function code |
| instead of after the function prolog. |
| + Register 14 is no longer reserved in 64-bit code. |
| + Handling of global register variables has been improved. |
| |
| SPARC |
| |
| * The option -mflat is deprecated. |
| * Support for large (> 2GB) frames has been added to the 64-bit port. |
| * Several [26]ABI bugs have been fixed. Unfortunately, these changes |
| will break binary compatibility with earlier releases. |
| * The default debugging format has been switched from STABS to |
| DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already |
| the default debugging format for 64-bit code on Solaris. |
| |
| SuperH |
| |
| * Support for the SH2E processor has been added. Enabled at run time |
| with the -m2e command line switch, or at configure time by |
| specifying sh2e as the machine part of the target triple. |
| |
| V850 |
| |
| * Support for the Mitsubishi V850E1 processor has been added. This is |
| a variant of the V850E processor with some additional debugging |
| instructions. |
| |
| Xtensa |
| |
| * Several ABI bugs have been fixed. Unfortunately, these changes |
| break binary compatibility with earlier releases. |
| + For big-endian processors, the padding of aggregate return |
| values larger than a word has changed. If the size of an |
| aggregate return value is not a multiple of 32 bits, previous |
| versions of GCC inserted padding in the most-significant bytes |
| of the first return value register. Aggregates larger than a |
| word are now padded in the least-significant bytes of the last |
| return value register used. Aggregates smaller than a word are |
| still padded in the most-significant bytes. The return value |
| padding has not changed for little-endian processors. |
| + Function arguments with 16-byte alignment are now properly |
| aligned. |
| + The implementation of the va_list type has changed. A va_list |
| value created by va_start from a previous release cannot be |
| used with va_arg from this release, or vice versa. |
| * More processor configuration options for Xtensa processors are |
| supported: |
| + the ABS instruction is now optional; |
| + the ADDX* and SUBX* instructions are now optional; |
| + an experimental CONST16 instruction can be used to synthesize |
| constants instead of loading them from constant pools. |
| These and other Xtensa processor configuration options can no |
| longer be enabled or disabled by command-line options; the |
| processor configuration must be specified by the xtensa-config.h |
| header file when building GCC. Additionally, the |
| -mno-serialize-volatile option is no longer supported. |
| |
| Obsolete Systems |
| |
| Support for a number of older systems has been declared obsolete in GCC |
| 3.4. Unless there is activity to revive them, the next release of GCC |
| will have their sources permanently removed. |
| |
| All configurations of the following processor architectures have been |
| declared obsolete: |
| * Mitsubishi D30V, d30v-* |
| * AT&T DSP1600 and DSP1610, dsp16xx-* |
| * Intel 80960, i960 |
| |
| Also, some individual systems have been obsoleted: |
| * ARM Family |
| + Support for generating code for operation in APCS/26 mode |
| (-mapcs-26). |
| * IBM ESA/390 |
| + "Bigfoot" port, i370-*. (The other port, s390-*, is actively |
| maintained and supported.) |
| * Intel 386 family |
| + MOSS, i?86-moss-msdos and i?86-*-moss* |
| + NCR 3000 running System V r.4, i?86-ncr-sysv4* |
| + FreeBSD with a.out object format, i?86-*-freebsd*aout* and |
| i?86-*-freebsd2* |
| + Linux with a.out object format, i?86-linux*aout* |
| + Linux with libc5, a.k.a. glibc1, i?86-linux*libc1* |
| + Interix versions before Interix 3, i?86-*-interix |
| + Mach microkernel, i?86-mach* |
| + SCO UnixWare with UDK, i?86-*-udk* |
| + Generic System V releases 1, 2, and 3, i?86-*-sysv[123]* |
| + VSTa microkernel, i386-*-vsta |
| * Motorola M68000 family |
| + HPUX, m68k-hp-hpux* and m68000-hp-hpux* |
| + NetBSD with a.out object format (before NetBSD 1.4), |
| m68k-*-*-netbsd* except m68k-*-*-netbsdelf* |
| + Generic System V r.4, m68k-*-sysv4* |
| * VAX |
| + Generic VAX, vax-*-* (This is generic VAX only; we have not |
| obsoleted any VAX triples for specific operating systems.) |
| |
| Documentation improvements |
| |
| Other significant improvements |
| |
| * The build system has undergone several significant cleanups. |
| Subdirectories will only be configured if they are being built, and |
| all subdirectory configures are run from the make command. The top |
| level has been autoconfiscated. |
| * Building GCC no longer writes to its source directory. This should |
| help those wishing to share a read-only source directory over NFS |
| or build from a CD. The exceptions to this feature are if you |
| configure with either --enable-maintainer-mode or |
| --enable-generated-files-in-srcdir. |
| * The -W warning option has been renamed to -Wextra, which is more |
| easily understood. The older spelling will be retained for |
| backwards compatibility. |
| * Substantial improvements in compile time have been made, |
| particularly for non-optimizing compilations. |
| __________________________________________________________________ |
| |
| GCC 3.4.0 |
| |
| Bug Fixes |
| |
| A vast number of bugs have been fixed in 3.4.0, too many to publish a |
| complete list here. [27]Follow this link to query the Bugzilla database |
| for the list of over 900 bugs fixed in 3.4.0. This is the list of all |
| bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4 |
| regressions. |
| __________________________________________________________________ |
| |
| GCC 3.4.1 |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.4.1 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Bootstrap failures |
| |
| * [28]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler |
| emitted - PIC related |
| * [29]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf |
| * [30]14760 A bug in configure.in prevents using both |
| --program-suffix and --program-prefix |
| * [31]14671 [hppa64] bootstrap fails: ICE in |
| save_call_clobbered_regs, in caller_save.c |
| * [32]15093 [alpha][Java] make bootstrap fails to configure libffi on |
| Alpha |
| * [33]15178 Solaris 9/x86 fails linking after stage 3 |
| |
| Multi-platform internal compiler errors (ICEs) |
| |
| * [34]12753 (preprocessor) Memory corruption in preprocessor on bad |
| input |
| * [35]13985 ICE in gcc.c-torture/compile/930621-1.c |
| * [36]14810 (c++) tree check failures with invalid code involving |
| templates |
| * [37]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in |
| cp/parser.c |
| * [38]15044 (c++) ICE on syntax error, template header |
| * [39]15057 (c++) Compiling of conditional value throw constructs |
| cause a segmentation violation |
| * [40]15064 (c++) typeid of template parameter gives ICE |
| * [41]15142 (c++) ICE when passing a string where a char* is expected |
| in a throw statement |
| * [42]15159 ICE in rtl_verify_flow_info_1 |
| * [43]15165 (c++) ICE in instantiate_template |
| * [44]15193 Unary minus using pointer to V4SF vector causes |
| -fforce-mem to exhaust all memory |
| * [45]15209 (c++) Runs out of memory with packed structs |
| * [46]15227 (c++) Trouble with invalid function definition |
| * [47]15285 (c++) instantiate_type ICE when forming pointer to |
| template function |
| * [48]15299 (c++) ICE in resolve_overloaded_unification |
| * [49]15329 (c++) ICE on constructor of member template |
| * [50]15550 ICE in extract_insn, in recog.c |
| * [51]15554 (c++) ICE in tsubst_copy, in cp/pt.c |
| * [52]15640 (c++) ICE on invalid code in arg_assoc, in |
| cp/name-lookup.c |
| * [53]15666 [unit-at-a-time] Gcc abort on valid code |
| * [54]15696 (c++) ICE with bad pointer-to-member code |
| * [55]15701 (c++) ICE with friends and template template parameter |
| * [56]15761 ICE in do_SUBST, in combine.c |
| * [57]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops |
| |
| Ada |
| |
| * [58]14538 All RTEMS targets broken for gnat |
| |
| C front end |
| |
| * [59]12391 missing warning about assigning to an incomplete type |
| * [60]14649 atan(1.0) should not be a constant expression |
| * [61]15004 [unit-at-a-time] no warning for unused paramater in |
| static function |
| * [62]15749 --pedantic-errors behaves differently from --pedantic |
| with C-compiler on GNU/Linux |
| |
| C++ compiler and library |
| |
| * [63]10646 non-const reference is incorrectly matched in a "const T" |
| partial specialization |
| * [64]12077 wcin.rdbuf()->in_avail() return value too high |
| * [65]13598 enc_filebuf doesn't work |
| * [66]14211 const_cast returns lvalue but should be rvalue |
| * [67]14220 num_put::do_put() undesired float/double behavior |
| * [68]14245 problem with user-defined allocators in std::basic_string |
| * [69]14340 libstdc++ Debug mode: failure to convert iterator to |
| const_iterator |
| * [70]14600 __gnu_cxx::stdio_sync_filebuf should expose internal |
| FILE* |
| * [71]14668 no warning anymore for reevaluation of declaration |
| * [72]14775 LFS (large file support) tests missing |
| * [73]14821 Duplicate namespace alias declaration should not conflict |
| * [74]14930 Friend declaration ignored |
| * [75]14932 cannot use offsetof to get offsets of array elements in |
| g++ 3.4.0 |
| * [76]14950 [non unit-at-a-time] always_inline does not mix with |
| templates and -O0 |
| * [77]14962 g++ ignores #pragma redefine_extname |
| * [78]14975 Segfault on low-level write error during imbue |
| * [79]15002 Linewise stream input is unusably slow (std::string slow) |
| * [80]15025 compiler accepts redeclaration of template as |
| non-template |
| * [81]15046 [arm] Math functions misdetected by cross configuration |
| * [82]15069 a bit test on a variable of enum type is miscompiled |
| * [83]15074 g++ -lsupc++ still links against libstdc++ |
| * [84]15083 spurious "statement has no effect" warning |
| * [85]15096 parse error with templates and pointer to const member |
| * [86]15287 combination of operator[] and operator .* fails in |
| templates |
| * [87]15317 __attribute__ unused in first parameter of constructor |
| gives error |
| * [88]15337 sizeof on incomplete type diagnostic |
| * [89]15361 bitset<>::_Find_next fails |
| * [90]15412 _GLIBCXX_ symbols symbols defined and used in different |
| namespaces |
| * [91]15427 valid code results in incomplete type error |
| * [92]15471 Incorrect member pointer offsets in anonymous |
| structs/unions |
| * [93]15503 nested template problem |
| * [94]15507 compiler hangs while laying out union |
| * [95]15542 operator & and template definitions |
| * [96]15565 SLES9: leading + sign for unsigned int with showpos |
| * [97]15625 friend defined inside a template fails to find static |
| function |
| * [98]15629 Function templates, overloads, and friend name injection |
| * [99]15742 'noreturn' attribute ignored in method of template |
| functions. |
| * [100]15775 Allocator::pointer consistently ignored |
| * [101]15821 Duplicate namespace alias within namespace rejected |
| * [102]15862 'enum yn' fails (confict with undeclared builtin) |
| * [103]15875 rejects pointer to member in template |
| * [104]15877 valid code using templates and anonymous enums is |
| rejected |
| * [105]15947 Puzzling error message for wrong destructor declaration |
| in template class |
| * [106]16020 cannot copy __gnu_debug::bitset |
| * [107]16154 input iterator concept too restrictive |
| * [108]16174 deducing top-level consts |
| |
| Java |
| |
| * [109]14315 Java compiler is not parallel make safe |
| |
| Fortran |
| |
| * [110]15151 [g77] incorrect logical i/o in 64-bit mode |
| |
| Objective-C |
| |
| * [111]7993 private variables cannot be shadowed in subclasses |
| |
| Optimization bugs |
| |
| * [112]15228 useless copies of floating point operands |
| * [113]15345 [non-unit-at-a-time] unreferenced nested inline |
| functions not optimized away |
| * [114]15945 Incorrect floating point optimization |
| * [115]15526 ftrapv aborts on 0 * (-1) |
| * [116]14690 Miscompiled POOMA tests |
| * [117]15112 GCC generates code to write to unchanging memory |
| |
| Preprocessor |
| |
| * [118]15067 Minor glitch in the source of cpp |
| |
| Main driver program bugs |
| |
| * [119]1963 collect2 interprets -oldstyle_liblookup as -o |
| ldstyle_liblookup |
| |
| x86-specific (Intel/AMD) |
| |
| * [120]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND* |
| section} |
| |
| HPPA-specific |
| |
| * [121]14782 GCC produces an unaligned data access at -O2 |
| * [122]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2 |
| * [123]15202 ICE in reload_cse_simplify_operands, in postreload.c |
| |
| IA64-specific |
| |
| * [124]14610 __float80 constants incorrectly emitted |
| * [125]14813 init_array sections are initialized in the wrong order |
| * [126]14857 GCC segfault on duplicated asm statement |
| * [127]15598 Gcc 3.4 ICE on valid code |
| * [128]15653 Gcc 3.4 ICE on valid code |
| |
| MIPS-specific |
| |
| * [129]15189 wrong filling of delay slot with -march=mips1 -G0 |
| -mno-split-addresses -mno-explicit-relocs |
| * [130]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as |
| 2.14.91 |
| * [131]16144 Bogus reference to __divdf3 when -O1 |
| * [132]16176 Miscompilation of unaligned data in MIPS backend |
| |
| PowerPC-specific |
| |
| * [133]11591 ICE in gcc.dg/altivec-5.c |
| * [134]12028 powerpc-eabispe produces bad sCOND operation |
| * [135]14478 rs6000 geu/ltu patterns generate incorrect code |
| * [136]14567 long double and va_arg complex args |
| * [137]14715 Altivec stack layout may overlap gpr save with stack |
| temps |
| * [138]14902 (libstdc++) Stream checking functions fail when -pthread |
| option is used. |
| * [139]14924 Compiler ICE on valid code |
| * [140]14960 -maltivec affects vector return with -mabi=no-altivec |
| * [141]15106 vector varargs failure passing from altivec to |
| non-altivec code for -m32 |
| * [142]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 & |
| half-word operation |
| * [143]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx |
| and stvx |
| * [144]15662 Segmentation fault when an exception is thrown - even if |
| try and catch are specified |
| |
| s390-specific |
| |
| * [145]15054 Bad code due to overlapping stack temporaries |
| |
| SPARC-specific |
| |
| * [146]15783 ICE with union assignment in 64-bit mode |
| * [147]15626 GCC 3.4 emits "ld: warning: relocation error: |
| R_SPARC_UA32" |
| |
| x86-64-specific |
| |
| * [148]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64 |
| * [149]14723 Backported -march=nocona from mainline |
| * [150]15290 __float128 failed to pass to function properly |
| |
| Cygwin/Mingw32-specific |
| |
| * [151]15250 Option -mms-bitfields support on GCC 3.4 is not |
| conformant to MS layout |
| * [152]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe |
| worker on windows32 targets |
| |
| Bugs specific to embedded processors |
| |
| * [153]8309 [m68k] -m5200 produces erroneous SImode set of short |
| varaible on stack |
| * [154]13250 [SH] Gcc code for rotation clobbers the register, but |
| gcc continues to use the register as if it was not clobbered |
| * [155]13803 [coldfire] movqi operand constraints too restrictivefor |
| TARGET_COLDFIRE |
| * [156]14093 [SH] ICE for code when using -mhitachi option in SH |
| * [157]14457 [m6811hc] ICE with simple c++ source |
| * [158]14542 [m6811hc] ICE on simple source |
| * [159]15100 [SH] cc1plus got hang-up on |
| libstdc++-v3/testsuite/abi_check.cc |
| * [160]15296 [CRIS] Delayed branch scheduling causing invalid code on |
| cris-* |
| * [161]15396 [SH] ICE with -O2 -fPIC |
| * [162]15782 [coldfire] m68k_output_mi_thunk emits wrong code for |
| ColdFire |
| |
| Testsuite problems (compiler not affected) |
| |
| * [163]11610 libstdc++ testcases 27_io/* don't work properly remotely |
| * [164]15488 (libstdc++) possibly insufficient file permissions for |
| executing test suite |
| * [165]15489 (libstdc++) testsuite_files determined incorrectly |
| |
| Documentation bugs |
| |
| * [166]13928 (libstdc++) no whatis info in some man pages generated |
| by doxygen |
| * [167]14150 Ada documentation out of date |
| * [168]14949 (c++) Need to document method visibility changes |
| * [169]15123 libstdc++-doc: Allocators.3 manpage is empty |
| __________________________________________________________________ |
| |
| GCC 3.4.2 |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.4.2 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Bootstrap failures and issues |
| |
| * [170]16469 [mips-sgi-irix5.3] bootstrap fails in |
| libstdc++-v3/testsuite |
| * [171]16344 [hppa-linux-gnu] libstdc++'s PCH built by |
| profiledbootstrap does not work with the built compiler |
| * [172]16842 [Solaris/x86] mkheaders can not find mkheaders.conf |
| |
| Multi-platform internal compiler errors (ICEs) |
| |
| * [173]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in |
| cp_parser_class_specifier, in cp/parser.c |
| * [174]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c |
| * [175]15461 (c++) ICE due to NRV and inlining |
| * [176]15890 (c++) ICE in c_expand_expr, in c-common.c |
| * [177]16180 ICE: segmentation fault in RTL optimization |
| * [178]16224 (c++) ICE in write_unscoped_name (template/namespace) |
| * [179]16408 ICE: in delete_insn, in cfgrtl.c |
| * [180]16529 (c++) ICE for: namespace-alias shall not be declared as |
| the name of any other entity |
| * [181]16698 (c++) ICE with exceptions and declaration of __cxa_throw |
| * [182]16706 (c++) ICE in finish_member_declaration, in |
| cp/semantics.c |
| * [183]16810 (c++) Legal C++ program with cast gives ICE in |
| build_ptrmemfunc |
| * [184]16851 (c++) ICE when throwing a comma expression |
| * [185]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c |
| * [186]16904 (c++) ICE in finish_class_member_access_expr, in |
| cp/typeck.c |
| * [187]16905 (c++) ICE (segfault) with exceptions |
| * [188]16964 (c++) ICE in cp_parser_class_specifier due to |
| redefinition |
| * [189]17068 (c++) ICE: tree check: expected class 'd', have 'x' |
| (identifier_node) in dependent_template_p, in cp/pt.c |
| |
| Preprocessor bugs |
| |
| * [190]16366 Preprocessor option -remap causes memory corruption |
| |
| Optimization |
| |
| * [191]15345 unreferenced nested inline functions not optimized away |
| * [192]16590 Incorrect execution when compiling with -O2 |
| * [193]16693 Bitwise AND is lost when used within a cast to an enum |
| of the same precision |
| * [194]17078 Jump into if(0) substatement fails |
| |
| Problems in generated debug information |
| |
| * [195]13956 incorrect stabs for nested local variables |
| |
| C front end bugs |
| |
| * [196]16684 GCC should not warn about redundant redeclarations of |
| built-ins |
| |
| C++ compiler and library |
| |
| * [197]12658 Thread safety problems in locale::global() and |
| locale::locale() |
| * [198]13092 g++ accepts invalid pointer-to-member conversion |
| * [199]15320 Excessive memory consumption |
| * [200]16246 Incorrect template argument deduction |
| * [201]16273 Memory exhausted when using nested classes and virtual |
| functions |
| * [202]16401 ostringstream in gcc 3.4.x very slow for big data |
| * [203]16411 undefined reference to |
| __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> |
| >::file() |
| * [204]16489 G++ incorrectly rejects use of a null constant integral |
| expression as a null constant pointer |
| * [205]16618 offsetof fails with constant member |
| * [206]16637 syntax error reported for valid input code |
| * [207]16717 __attribute__((constructor)) broken in C++ |
| * [208]16813 compiler error in DEBUG version of range insertion |
| std::map::insert |
| * [209]16853 pointer-to-member initialization from incompatible one |
| accepted |
| * [210]16889 ambiguity is not detected |
| * [211]16959 Segmentation fault in ios_base::sync_with_stdio |
| |
| Java compiler and library |
| |
| * [212]7587 direct threaded interpreter not thread-safe |
| * [213]16473 ServerSocket accept() leaks file descriptors |
| * [214]16478 Hash synchronization deadlock with finalizers |
| |
| Alpha-specific |
| |
| * [215]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c |
| * [216]16974 could not split insn (ice in final_scan_insn, in |
| final.c) |
| |
| x86-specific |
| |
| * [217]16298 ICE in output_operand |
| * [218]17113 ICE with SSE2 intrinsics |
| |
| x86-64 specific |
| |
| * [219]14697 libstdc++ couldn't find 32bit libgcc_s |
| |
| MIPS-specific |
| |
| * [220]15869 [mips64] No NOP after LW (with -mips1 -O0) |
| * [221]16325 [mips64] value profiling clobbers gp on mips |
| * [222]16357 [mipsisa64-elf] ICE copying 7 bytes between extern |
| char[]s |
| * [223]16380 [mips64] Use of uninitialised register after dbra |
| conversion |
| * [224]16407 [mips64] Unaligned access to local variables |
| * [225]16643 [mips64] verify_local_live_at_start ICE after |
| crossjumping & cfgcleanup |
| |
| ARM-specific |
| |
| * [226]15927 THUMB -O2: strength-reduced iteration variable ends up |
| off by 1 |
| * [227]15948 THUMB: ICE with non-commutative cbranch |
| * [228]17019 THUMB: bad switch statement in md code for |
| addsi3_cbranch_scratch |
| |
| IA64-specific |
| |
| * [229]16130 ICE on valid code: in bundling, in config/ia64/ia64.c |
| (-mtune=merced) |
| * [230]16142 ICE on valid code: in bundling, in config/ia64/ia64.c |
| (-mtune=itanium) |
| * [231]16278 Gcc failed to build Linux kernel with -mtune=merced |
| * [232]16414 ICE on valid code: typo in comparison of asm_noperands |
| result |
| * [233]16445 ICE on valid code: don't count ignored insns |
| * [234]16490 ICE (segfault) while compiling with -fprofile-use |
| * [235]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS |
| |
| PowerPC-specific |
| |
| * [236]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x |
| * [237]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions |
| issue) |
| |
| SPARC-specific |
| |
| * [238]16199 ICE while compiling apache 2.0.49 |
| * [239]16416 -m64 doesn't imply -mcpu=v9 anymore |
| * [240]16430 ICE when returning non-C aggregates larger than 16 bytes |
| |
| Bugs specific to embedded processors |
| |
| * [241]16379 [m32r] can't output large model function call of memcpy |
| * [242]17093 [m32r] ICE with -msdata=use -O0 |
| * [243]17119 [m32r] ICE at switch case 0x8000 |
| |
| DJGPP-specific |
| |
| * [244]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp |
| |
| Alpha Tru64-specific |
| |
| * [245]16210 libstdc++ gratuitously omits "long long" I/O |
| |
| Testsuite, documentation issues (compiler is not affected): |
| |
| * [246]15488 (libstdc++) possibly insufficient file permissions for |
| executing test suite |
| * [247]16250 ada/doctools runs makeinfo even in release tarball |
| __________________________________________________________________ |
| |
| GCC 3.4.3 |
| |
| This is the [248]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.4.3 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Bootstrap failures |
| |
| * [249]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1 |
| * [250]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold |
| when undeclared |
| |
| Internal compiler errors (ICEs) affecting multiple platforms |
| |
| * [251]13948 (java) GCJ segmentation fault while compiling GL4Java |
| .class files |
| * [252]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c |
| * [253]16301 (c++) ICE when "strong" attribute is attached to a using |
| directive |
| * [254]16566 ICE with flexible arrays |
| * [255]17023 ICE with nested functions in parameter declaration |
| * [256]17027 ICE with noreturn function in loop at -O2 |
| * [257]17524 ICE in grokdeclarator, in cp/decl.c |
| * [258]17826 (c++) ICE in cp_tree_equal |
| |
| C and optimization bugs |
| |
| * [259]15526 -ftrapv aborts on 0 * (-1) |
| * [260]16999 #ident stopped working |
| * [261]17503 quadratic behaviour in invalid_mode_change_p |
| * [262]17581 Long long arithmetic fails inside a switch/case |
| statement when compiled with -O2 |
| * [263]18129 -fwritable-strings doesn't work |
| |
| C++ compiler and library bugs |
| |
| * [264]10975 incorrect initial ostringstream::tellp() |
| * [265]11722 Unbuffered filebuf::sgetn is slow |
| * [266]14534 Unrecognizing static function as a template parameter |
| when its return value is also templated |
| * [267]15172 Copy constructor optimization in aggregate |
| initialization |
| * [268]15786 Bad error message for frequently occuring error. |
| * [269]16162 Rejects valid member-template-definition |
| * [270]16612 empty basic_strings can't live in shared memory |
| * [271]16715 std::basic_iostream is instantiated when used, even |
| though instantiations are already contained in libstdc++ |
| * [272]16848 code in /ext/demangle.h appears broken |
| * [273]17132 GCC fails to eliminate function template specialization |
| when argument deduction fails |
| * [274]17259 One more _S_leaf incorrectly qualified with _RopeRep:: |
| in ropeimpl.h |
| * [275]17327 use of `enumeral_type' in template type unification |
| * [276]17393 "unused variable '._0'" warning with -Wall |
| * [277]17501 Confusion with member templates |
| * [278]17537 g++ not passing -lstdc++ to linker when all command line |
| arguments are libraries |
| * [279]17585 usage of unqualified name of static member from within |
| class not allowed |
| * [280]17821 Poor diagnostic for using "." instead of "->" |
| * [281]17829 wrong error: call of overloaded function is ambiguous |
| * [282]17851 Misleading diagnostic for invalid function declarations |
| with undeclared types |
| * [283]17976 Destructor is called twice |
| * [284]18020 rejects valid definition of enum value in template |
| * [285]18093 bogus conflict in namespace aliasing |
| * [286]18140 C++ parser bug when using >> in templates |
| |
| Fortran |
| |
| * [287]17541 data statements with double precision constants fail |
| |
| x86-specific |
| |
| * [288]17853 -O2 ICE for MMX testcase |
| |
| SPARC-specific |
| |
| * [289]17245 ICE compiling gsl-1.5 statistics/lag1.c |
| |
| Darwin-specific |
| |
| * [290]17167 FATAL:Symbol L_foo$stub already defined. |
| |
| AIX-specific |
| |
| * [291]17277 could not catch an exception when specified -maix64 |
| |
| Solaris-specific |
| |
| * [292]17505 <cmath> calls acosf(), ceilf(), and other functions |
| missing from system libraries |
| |
| HP/UX specific: |
| |
| * [293]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl |
| |
| ARM-specific |
| |
| * [294]17384 ICE with mode attribute on structures |
| |
| MIPS-specific |
| |
| * [295]17770 No NOP after LWL with -mips1 |
| |
| Other embedded target specific |
| |
| * [296]11476 [arc-elf] gcc ICE on newlib's vfprintf.c |
| * [297]14064 [avr-elf] -fdata-sections triggers ICE |
| * [298]14678 [m68hc11-elf] gcc ICE |
| * [299]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__ |
| * [300]15790 [i686-coff] Alignment error building gcc with i686-coff |
| target |
| * [301]15886 [SH] Miscompilation with -O2 -fPIC |
| * [302]16884 [avr-elf] [fweb related] bug while initializing |
| variables |
| |
| Bugs relating to debugger support |
| |
| * [303]13841 missing debug info for _Complex function arguments |
| * [304]15860 [big-endian targets] No DW_AT_location debug info is |
| emitted for formal arguments to a function that uses "register" |
| qualifiers |
| |
| Testsuite issues (compiler not affected) |
| |
| * [305]17465 Testsuite in libffi overrides LD_LIBRARY_PATH |
| * [306]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH |
| * [307]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit |
| testsuite |
| |
| Documentation |
| |
| * [308]15498 typo in gcc manual: non-existing locale example en_UK, |
| should be en_GB |
| * [309]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: |
| document broken shell |
| * [310]16406 USE_LD_AS_NEEDED undocumented |
| __________________________________________________________________ |
| |
| GCC 3.4.4 |
| |
| This is the [311]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.4.4 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| __________________________________________________________________ |
| |
| GCC 3.4.5 |
| |
| This is the [312]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.4.5 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Bootstrap issues |
| |
| * [313]24688 sco_math fixincl breaks math.h |
| |
| C compiler bugs |
| |
| * [314]17188 struct Foo { } redefinition |
| * [315]20187 wrong code for ((unsigned char)(unsigned long |
| long)((a?a:1)&(a*b)))?0:1) |
| * [316]21873 infinite warning loop on bad array initializer |
| * [317]21899 enum definition accepts values to be overriden |
| * [318]22061 ICE in find_function_data, in function.c |
| * [319]22308 Failure to diagnose violation of constraint 6.516p2 |
| * [320]22458 ICE on missing brace |
| * [321]22589 ICE casting to long long |
| * [322]24101 Segfault with preprocessed source |
| |
| C++ compiler and library bugs |
| |
| * [323]10611 operations on vector mode not recognized in C++ |
| * [324]13377 unexpected behavior of namespace usage directive |
| * [325]16002 Strange error message with new parser |
| * [326]17413 local classes as template argument |
| * [327]17609 spurious error message after using keyword |
| * [328]17618 ICE in cp_convert_to_pointer, in cp/cvt.c |
| * [329]18124 ICE with invalid template template parameter |
| * [330]18155 typedef in template declaration not rejected |
| * [331]18177 ICE with const_cast for undeclared variable |
| * [332]18368 C++ error message regression |
| * [333]16378 ICE when returning a copy of a packed member |
| * [334]18466 int ::i; accepted |
| * [335]18512 ICE on invalid usage of template base class |
| * [336]18454 ICE when returning undefined type |
| * [337]18738 typename not allowed with non-dependent qualified name |
| * [338]18803 rejects access to operator() in template |
| * [339]19004 ICE in uses_template_parms, in cp/pt.c |
| * [340]19208 Spurious error about variably modified type |
| * [341]18253 bad error message / ICE for invalid template parameter |
| * [342]19608 ICE after friend function definition in local class |
| * [343]19884 ICE on explicit instantiation of a non-template |
| constructor |
| * [344]20153 ICE when C++ template function contains anonymous union |
| * [345]20563 Infinite loop in diagnostic (and ice after error |
| message) |
| * [346]20789 ICE with incomplete type in template |
| * [347]21336 Internal compiler error when using custom new operators |
| * [348]21768 ICE in error message due to violation of coding |
| conventions |
| * [349]21853 constness of pointer to data member ignored |
| * [350]21903 Default argument of template function causes a |
| compile-time error |
| * [351]21983 multiple diagnostics |
| * [352]21987 New testsuite failure |
| g++.dg/warn/conversion-function-1.C |
| * [353]22153 ICE on invalid template specialization |
| * [354]22172 Internal compiler error, seg fault. |
| * [355]21286 filebuf::xsgetn vs pipes |
| * [356]22233 ICE with wrong number of template parameters |
| * [357]22508 ICE after invalid operator new |
| * [358]22545 ICE with pointer to class member & user defined |
| conversion operator |
| * [359]23528 Wrong default allocator in ext/hash_map |
| * [360]23550 char_traits requirements/1.cc test bad math |
| * [361]23586 Bad diagnostic for invalid namespace-name |
| * [362]23624 ICE in invert_truthvalue, in fold-const.c |
| * [363]23639 Bad error message: not a member of '<declaration error>' |
| * [364]23797 ICE on typename outside template |
| * [365]23965 Bogus error message: no matching function for call to |
| 'foo(<type error>)' |
| * [366]24052 &#`label_decl' not supported by dump_expr#<expression |
| error> |
| * [367]24580 virtual base class cause exception not to be caught |
| |
| Problems in generated debug information |
| |
| * [368]24267 Bad DWARF for altivec vectors |
| |
| Optimizations issues |
| |
| * [369]17810 ICE in verify_local_live_at_start |
| * [370]17860 Wrong generated code for loop with varying bound |
| * [371]21709 ICE on compile-time complex NaN |
| * [372]21964 broken tail call at -O2 or more |
| * [373]22167 Strange optimization bug when using -Os |
| * [374]22619 Compilation failure for real_const_1.f and |
| real_const_2.f90 |
| * [375]23241 Invalid code generated for comparison of uchar to 255 |
| * [376]23478 Miscompilation due to reloading of a var that is also |
| used in EH pad |
| * [377]24470 segmentation fault in cc1plus when compiling with -O |
| * [378]24950 ICE in operand_subword_force |
| |
| Precompiled headers problems |
| |
| * [379]14400 Cannot compile qt-x11-free-3.3.0 |
| * [380]14940 PCH largefile test fails on various platforms |
| |
| Preprocessor bugs |
| |
| * [381]20239 ICE on empty preprocessed input |
| * [382]15220 "gcc -E -MM -MG" reports missing system headers in |
| source directory |
| |
| Testsuite issues |
| |
| * [383]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on |
| i686-pc-linux-gnu |
| |
| Alpha specific |
| |
| * [384]21888 bootstrap failure with linker relaxation enabled |
| |
| ARM specific |
| |
| * [385]15342 [arm-linux]: ICE in verify_local_live_at_start |
| * [386]23985 Memory aliasing information incorrect in inlined memcpy |
| |
| ColdFile specific |
| |
| * [387]16719 Illegal move of byte into address register causes |
| compiler to ICE |
| |
| HPPA specific |
| |
| * [388]21723 ICE while building libgfortran |
| * [389]21841 -mhp-ld/-mgnu-ld documentation |
| |
| IA-64 specific |
| |
| * [390]23644 IA-64 hardware models and configuration options |
| documentation error |
| * [391]24718 Shared libgcc not used for linking by default |
| |
| M68000 specific |
| |
| * [392]18421 ICE in reload_cse_simplify_operands, in postreload.c |
| |
| MIPS specific |
| |
| * [393]20621 ICE in change_address_1, in emit-rtl.c |
| |
| PowerPC and PowerPC64 specific |
| |
| * [394]18583 error on valid code: const |
| __attribute__((altivec(vector__))) doesn't work in arrays |
| * [395]20191 ICE in reload_cse_simplify_operands |
| * [396]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined |
| * [397]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set |
| * [398]23404 gij trashes args of functions with more than 8 fp args |
| * [399]23539 C & C++ compiler generating misaligned references |
| regardless of compiler flags |
| * [400]24102 floatdisf2_internal2 broken |
| * [401]24465 -mminimal-toc miscompilation of __thread vars |
| |
| Solaris specific |
| |
| * [402]19933 Problem with define of HUGE_VAL in math_c99 |
| * [403]21889 Native Solaris assembler cannot grok DTP-relative debug |
| symbols |
| |
| SPARC specific |
| |
| * [404]19300 PCH failures on sparc-linux |
| * [405]20301 Assembler labels have a leading "-" |
| * [406]20673 C PCH testsuite assembly comparison failure |
| |
| x86 and x86_64 specific |
| |
| * [407]18582 ICE with arrays of type V2DF |
| * [408]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2 |
| -fsched2-use-traces |
| * [409]21716 ICE in reg-stack.c's swap_rtx_condition |
| * [410]24315 amd64 fails -fpeephole2 |
| __________________________________________________________________ |
| |
| GCC 3.4.6 |
| |
| This is the [411]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.4.6 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Please send FSF & GNU inquiries & questions to [412]gnu@gnu.org. There |
| are also [413]other ways to contact the FSF. |
| |
| These pages are maintained by [414]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [415]GCC manuals. If that fails, the |
| [416]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [417]gcc@gnu.org or |
| [418]gcc@gcc.gnu.org. All of our lists have [419]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2009-11-08 [420]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 |
| 2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus |
| 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems |
| 4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems |
| 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html |
| 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html |
| 7. http://www.boost.org/ |
| 8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953 |
| 9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361 |
| 10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins |
| 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 |
| 12. http://gcc.gnu.org/bugs/#cxx_rvalbind |
| 13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html |
| 14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html |
| 15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html |
| 16. http://www.gnu.org/software/classpath/ |
| 17. http://www.eclipse.org/ |
| 18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html |
| 19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html |
| 20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure |
| 21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html |
| 22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html |
| 23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html |
| 24. http://gcc.gnu.org/gcc-3.4/mips-abi.html |
| 25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html |
| 26. http://gcc.gnu.org/gcc-3.4/sparc-abi.html |
| 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 |
| 28. http://gcc.gnu.org/PR10129 |
| 29. http://gcc.gnu.org/PR14576 |
| 30. http://gcc.gnu.org/PR14760 |
| 31. http://gcc.gnu.org/PR14671 |
| 32. http://gcc.gnu.org/PR15093 |
| 33. http://gcc.gnu.org/PR15178 |
| 34. http://gcc.gnu.org/PR12753 |
| 35. http://gcc.gnu.org/PR13985 |
| 36. http://gcc.gnu.org/PR14810 |
| 37. http://gcc.gnu.org/PR14883 |
| 38. http://gcc.gnu.org/PR15044 |
| 39. http://gcc.gnu.org/PR15057 |
| 40. http://gcc.gnu.org/PR15064 |
| 41. http://gcc.gnu.org/PR15142 |
| 42. http://gcc.gnu.org/PR15159 |
| 43. http://gcc.gnu.org/PR15165 |
| 44. http://gcc.gnu.org/PR15193 |
| 45. http://gcc.gnu.org/PR15209 |
| 46. http://gcc.gnu.org/PR15227 |
| 47. http://gcc.gnu.org/PR15285 |
| 48. http://gcc.gnu.org/PR15299 |
| 49. http://gcc.gnu.org/PR15329 |
| 50. http://gcc.gnu.org/PR15550 |
| 51. http://gcc.gnu.org/PR15554 |
| 52. http://gcc.gnu.org/PR15640 |
| 53. http://gcc.gnu.org/PR15666 |
| 54. http://gcc.gnu.org/PR15696 |
| 55. http://gcc.gnu.org/PR15701 |
| 56. http://gcc.gnu.org/PR15761 |
| 57. http://gcc.gnu.org/PR15829 |
| 58. http://gcc.gnu.org/PR14538 |
| 59. http://gcc.gnu.org/PR12391 |
| 60. http://gcc.gnu.org/PR14649 |
| 61. http://gcc.gnu.org/PR15004 |
| 62. http://gcc.gnu.org/PR15749 |
| 63. http://gcc.gnu.org/PR10646 |
| 64. http://gcc.gnu.org/PR12077 |
| 65. http://gcc.gnu.org/PR13598 |
| 66. http://gcc.gnu.org/PR14211 |
| 67. http://gcc.gnu.org/PR14220 |
| 68. http://gcc.gnu.org/PR14245 |
| 69. http://gcc.gnu.org/PR14340 |
| 70. http://gcc.gnu.org/PR14600 |
| 71. http://gcc.gnu.org/PR14668 |
| 72. http://gcc.gnu.org/PR14775 |
| 73. http://gcc.gnu.org/PR14821 |
| 74. http://gcc.gnu.org/PR14930 |
| 75. http://gcc.gnu.org/PR14932 |
| 76. http://gcc.gnu.org/PR14950 |
| 77. http://gcc.gnu.org/PR14962 |
| 78. http://gcc.gnu.org/PR14975 |
| 79. http://gcc.gnu.org/PR15002 |
| 80. http://gcc.gnu.org/PR15025 |
| 81. http://gcc.gnu.org/PR15046 |
| 82. http://gcc.gnu.org/PR15069 |
| 83. http://gcc.gnu.org/PR15074 |
| 84. http://gcc.gnu.org/PR15083 |
| 85. http://gcc.gnu.org/PR15096 |
| 86. http://gcc.gnu.org/PR15287 |
| 87. http://gcc.gnu.org/PR15317 |
| 88. http://gcc.gnu.org/PR15337 |
| 89. http://gcc.gnu.org/PR15361 |
| 90. http://gcc.gnu.org/PR15412 |
| 91. http://gcc.gnu.org/PR15427 |
| 92. http://gcc.gnu.org/PR15471 |
| 93. http://gcc.gnu.org/PR15503 |
| 94. http://gcc.gnu.org/PR15507 |
| 95. http://gcc.gnu.org/PR15542 |
| 96. http://gcc.gnu.org/PR15565 |
| 97. http://gcc.gnu.org/PR15625 |
| 98. http://gcc.gnu.org/PR15629 |
| 99. http://gcc.gnu.org/PR15742 |
| 100. http://gcc.gnu.org/PR15775 |
| 101. http://gcc.gnu.org/PR15821 |
| 102. http://gcc.gnu.org/PR15862 |
| 103. http://gcc.gnu.org/PR15875 |
| 104. http://gcc.gnu.org/PR15877 |
| 105. http://gcc.gnu.org/PR15947 |
| 106. http://gcc.gnu.org/PR16020 |
| 107. http://gcc.gnu.org/PR16154 |
| 108. http://gcc.gnu.org/PR16174 |
| 109. http://gcc.gnu.org/PR14315 |
| 110. http://gcc.gnu.org/PR15151 |
| 111. http://gcc.gnu.org/PR7993 |
| 112. http://gcc.gnu.org/PR15228 |
| 113. http://gcc.gnu.org/PR15345 |
| 114. http://gcc.gnu.org/PR15945 |
| 115. http://gcc.gnu.org/PR15526 |
| 116. http://gcc.gnu.org/PR14690 |
| 117. http://gcc.gnu.org/PR15112 |
| 118. http://gcc.gnu.org/PR15067 |
| 119. http://gcc.gnu.org/PR1963 |
| 120. http://gcc.gnu.org/PR15717 |
| 121. http://gcc.gnu.org/PR14782 |
| 122. http://gcc.gnu.org/PR14828 |
| 123. http://gcc.gnu.org/PR15202 |
| 124. http://gcc.gnu.org/PR14610 |
| 125. http://gcc.gnu.org/PR14813 |
| 126. http://gcc.gnu.org/PR14857 |
| 127. http://gcc.gnu.org/PR15598 |
| 128. http://gcc.gnu.org/PR15653 |
| 129. http://gcc.gnu.org/PR15189 |
| 130. http://gcc.gnu.org/PR15331 |
| 131. http://gcc.gnu.org/PR16144 |
| 132. http://gcc.gnu.org/PR16176 |
| 133. http://gcc.gnu.org/PR11591 |
| 134. http://gcc.gnu.org/PR12028 |
| 135. http://gcc.gnu.org/PR14478 |
| 136. http://gcc.gnu.org/PR14567 |
| 137. http://gcc.gnu.org/PR14715 |
| 138. http://gcc.gnu.org/PR14902 |
| 139. http://gcc.gnu.org/PR14924 |
| 140. http://gcc.gnu.org/PR14960 |
| 141. http://gcc.gnu.org/PR15106 |
| 142. http://gcc.gnu.org/PR16026 |
| 143. http://gcc.gnu.org/PR15191 |
| 144. http://gcc.gnu.org/PR15662 |
| 145. http://gcc.gnu.org/PR15054 |
| 146. http://gcc.gnu.org/PR15783 |
| 147. http://gcc.gnu.org/PR15626 |
| 148. http://gcc.gnu.org/PR14326 |
| 149. http://gcc.gnu.org/PR14723 |
| 150. http://gcc.gnu.org/PR15290 |
| 151. http://gcc.gnu.org/PR15250 |
| 152. http://gcc.gnu.org/PR15551 |
| 153. http://gcc.gnu.org/PR8309 |
| 154. http://gcc.gnu.org/PR13250 |
| 155. http://gcc.gnu.org/PR13803 |
| 156. http://gcc.gnu.org/PR14093 |
| 157. http://gcc.gnu.org/PR14457 |
| 158. http://gcc.gnu.org/PR14542 |
| 159. http://gcc.gnu.org/PR15100 |
| 160. http://gcc.gnu.org/PR15296 |
| 161. http://gcc.gnu.org/PR15396 |
| 162. http://gcc.gnu.org/PR15782 |
| 163. http://gcc.gnu.org/PR11610 |
| 164. http://gcc.gnu.org/PR15488 |
| 165. http://gcc.gnu.org/PR15489 |
| 166. http://gcc.gnu.org/PR13928 |
| 167. http://gcc.gnu.org/PR14150 |
| 168. http://gcc.gnu.org/PR14949 |
| 169. http://gcc.gnu.org/PR15123 |
| 170. http://gcc.gnu.org/PR16469 |
| 171. http://gcc.gnu.org/PR16344 |
| 172. http://gcc.gnu.org/PR16842 |
| 173. http://gcc.gnu.org/PR12608 |
| 174. http://gcc.gnu.org/PR14492 |
| 175. http://gcc.gnu.org/PR15461 |
| 176. http://gcc.gnu.org/PR15890 |
| 177. http://gcc.gnu.org/PR16180 |
| 178. http://gcc.gnu.org/PR16224 |
| 179. http://gcc.gnu.org/PR16408 |
| 180. http://gcc.gnu.org/PR16529 |
| 181. http://gcc.gnu.org/PR16698 |
| 182. http://gcc.gnu.org/PR16706 |
| 183. http://gcc.gnu.org/PR16810 |
| 184. http://gcc.gnu.org/PR16851 |
| 185. http://gcc.gnu.org/PR16870 |
| 186. http://gcc.gnu.org/PR16904 |
| 187. http://gcc.gnu.org/PR16905 |
| 188. http://gcc.gnu.org/PR16964 |
| 189. http://gcc.gnu.org/PR17068 |
| 190. http://gcc.gnu.org/PR16366 |
| 191. http://gcc.gnu.org/PR15345 |
| 192. http://gcc.gnu.org/PR16590 |
| 193. http://gcc.gnu.org/PR16693 |
| 194. http://gcc.gnu.org/PR17078 |
| 195. http://gcc.gnu.org/PR13956 |
| 196. http://gcc.gnu.org/PR16684 |
| 197. http://gcc.gnu.org/PR12658 |
| 198. http://gcc.gnu.org/PR13092 |
| 199. http://gcc.gnu.org/PR15320 |
| 200. http://gcc.gnu.org/PR16246 |
| 201. http://gcc.gnu.org/PR16273 |
| 202. http://gcc.gnu.org/PR16401 |
| 203. http://gcc.gnu.org/PR16411 |
| 204. http://gcc.gnu.org/PR16489 |
| 205. http://gcc.gnu.org/PR16618 |
| 206. http://gcc.gnu.org/PR16637 |
| 207. http://gcc.gnu.org/PR16717 |
| 208. http://gcc.gnu.org/PR16813 |
| 209. http://gcc.gnu.org/PR16853 |
| 210. http://gcc.gnu.org/PR16889 |
| 211. http://gcc.gnu.org/PR16959 |
| 212. http://gcc.gnu.org/PR7587 |
| 213. http://gcc.gnu.org/PR16473 |
| 214. http://gcc.gnu.org/PR16478 |
| 215. http://gcc.gnu.org/PR10695 |
| 216. http://gcc.gnu.org/PR16974 |
| 217. http://gcc.gnu.org/PR16298 |
| 218. http://gcc.gnu.org/PR17113 |
| 219. http://gcc.gnu.org/PR14697 |
| 220. http://gcc.gnu.org/PR15869 |
| 221. http://gcc.gnu.org/PR16325 |
| 222. http://gcc.gnu.org/PR16357 |
| 223. http://gcc.gnu.org/PR16380 |
| 224. http://gcc.gnu.org/PR16407 |
| 225. http://gcc.gnu.org/PR16643 |
| 226. http://gcc.gnu.org/PR15927 |
| 227. http://gcc.gnu.org/PR15948 |
| 228. http://gcc.gnu.org/PR17019 |
| 229. http://gcc.gnu.org/PR16130 |
| 230. http://gcc.gnu.org/PR16142 |
| 231. http://gcc.gnu.org/PR16278 |
| 232. http://gcc.gnu.org/PR16414 |
| 233. http://gcc.gnu.org/PR16445 |
| 234. http://gcc.gnu.org/PR16490 |
| 235. http://gcc.gnu.org/PR16683 |
| 236. http://gcc.gnu.org/PR16195 |
| 237. http://gcc.gnu.org/PR16239 |
| 238. http://gcc.gnu.org/PR16199 |
| 239. http://gcc.gnu.org/PR16416 |
| 240. http://gcc.gnu.org/PR16430 |
| 241. http://gcc.gnu.org/PR16379 |
| 242. http://gcc.gnu.org/PR17093 |
| 243. http://gcc.gnu.org/PR17119 |
| 244. http://gcc.gnu.org/PR15928 |
| 245. http://gcc.gnu.org/PR16210 |
| 246. http://gcc.gnu.org/PR15488 |
| 247. http://gcc.gnu.org/PR16250 |
| 248. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3 |
| 249. http://gcc.gnu.org/PR17369 |
| 250. http://gcc.gnu.org/PR17850 |
| 251. http://gcc.gnu.org/PR13948 |
| 252. http://gcc.gnu.org/PR14492 |
| 253. http://gcc.gnu.org/PR16301 |
| 254. http://gcc.gnu.org/PR16566 |
| 255. http://gcc.gnu.org/PR17023 |
| 256. http://gcc.gnu.org/PR17027 |
| 257. http://gcc.gnu.org/PR17524 |
| 258. http://gcc.gnu.org/PR17826 |
| 259. http://gcc.gnu.org/PR15526 |
| 260. http://gcc.gnu.org/PR16999 |
| 261. http://gcc.gnu.org/PR17503 |
| 262. http://gcc.gnu.org/PR17581 |
| 263. http://gcc.gnu.org/PR18129 |
| 264. http://gcc.gnu.org/PR10975 |
| 265. http://gcc.gnu.org/PR11722 |
| 266. http://gcc.gnu.org/PR14534 |
| 267. http://gcc.gnu.org/PR15172 |
| 268. http://gcc.gnu.org/PR15786 |
| 269. http://gcc.gnu.org/PR16162 |
| 270. http://gcc.gnu.org/PR16612 |
| 271. http://gcc.gnu.org/PR16715 |
| 272. http://gcc.gnu.org/PR16848 |
| 273. http://gcc.gnu.org/PR17132 |
| 274. http://gcc.gnu.org/PR17259 |
| 275. http://gcc.gnu.org/PR17327 |
| 276. http://gcc.gnu.org/PR17393 |
| 277. http://gcc.gnu.org/PR17501 |
| 278. http://gcc.gnu.org/PR17537 |
| 279. http://gcc.gnu.org/PR17585 |
| 280. http://gcc.gnu.org/PR17821 |
| 281. http://gcc.gnu.org/PR17829 |
| 282. http://gcc.gnu.org/PR17851 |
| 283. http://gcc.gnu.org/PR17976 |
| 284. http://gcc.gnu.org/PR18020 |
| 285. http://gcc.gnu.org/PR18093 |
| 286. http://gcc.gnu.org/PR18140 |
| 287. http://gcc.gnu.org/PR17541 |
| 288. http://gcc.gnu.org/PR17853 |
| 289. http://gcc.gnu.org/PR17245 |
| 290. http://gcc.gnu.org/PR17167 |
| 291. http://gcc.gnu.org/PR17277 |
| 292. http://gcc.gnu.org/PR17505 |
| 293. http://gcc.gnu.org/PR17684 |
| 294. http://gcc.gnu.org/PR17384 |
| 295. http://gcc.gnu.org/PR17770 |
| 296. http://gcc.gnu.org/PR11476 |
| 297. http://gcc.gnu.org/PR14064 |
| 298. http://gcc.gnu.org/PR14678 |
| 299. http://gcc.gnu.org/PR15583 |
| 300. http://gcc.gnu.org/PR15790 |
| 301. http://gcc.gnu.org/PR15886 |
| 302. http://gcc.gnu.org/PR16884 |
| 303. http://gcc.gnu.org/PR13841 |
| 304. http://gcc.gnu.org/PR15860 |
| 305. http://gcc.gnu.org/PR17465 |
| 306. http://gcc.gnu.org/PR17469 |
| 307. http://gcc.gnu.org/PR18138 |
| 308. http://gcc.gnu.org/PR15498 |
| 309. http://gcc.gnu.org/PR15747 |
| 310. http://gcc.gnu.org/PR16406 |
| 311. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4 |
| 312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5 |
| 313. http://gcc.gnu.org/PR24688 |
| 314. http://gcc.gnu.org/PR17188 |
| 315. http://gcc.gnu.org/PR20187 |
| 316. http://gcc.gnu.org/PR21873 |
| 317. http://gcc.gnu.org/PR21899 |
| 318. http://gcc.gnu.org/PR22061 |
| 319. http://gcc.gnu.org/PR22208 |
| 320. http://gcc.gnu.org/PR22458 |
| 321. http://gcc.gnu.org/PR22589 |
| 322. http://gcc.gnu.org/PR24101 |
| 323. http://gcc.gnu.org/PR10611 |
| 324. http://gcc.gnu.org/PR13377 |
| 325. http://gcc.gnu.org/PR16002 |
| 326. http://gcc.gnu.org/PR17413 |
| 327. http://gcc.gnu.org/PR17609 |
| 328. http://gcc.gnu.org/PR17618 |
| 329. http://gcc.gnu.org/PR18124 |
| 330. http://gcc.gnu.org/PR18155 |
| 331. http://gcc.gnu.org/PR18177 |
| 332. http://gcc.gnu.org/PR18368 |
| 333. http://gcc.gnu.org/PR18378 |
| 334. http://gcc.gnu.org/PR18466 |
| 335. http://gcc.gnu.org/PR18512 |
| 336. http://gcc.gnu.org/PR18545 |
| 337. http://gcc.gnu.org/PR18738 |
| 338. http://gcc.gnu.org/PR18803 |
| 339. http://gcc.gnu.org/PR19004 |
| 340. http://gcc.gnu.org/PR19208 |
| 341. http://gcc.gnu.org/PR19253 |
| 342. http://gcc.gnu.org/PR19608 |
| 343. http://gcc.gnu.org/PR19884 |
| 344. http://gcc.gnu.org/PR20153 |
| 345. http://gcc.gnu.org/PR20563 |
| 346. http://gcc.gnu.org/PR20789 |
| 347. http://gcc.gnu.org/PR21336 |
| 348. http://gcc.gnu.org/PR21768 |
| 349. http://gcc.gnu.org/PR21853 |
| 350. http://gcc.gnu.org/PR21903 |
| 351. http://gcc.gnu.org/PR21983 |
| 352. http://gcc.gnu.org/PR21987 |
| 353. http://gcc.gnu.org/PR22153 |
| 354. http://gcc.gnu.org/PR22172 |
| 355. http://gcc.gnu.org/PR21286 |
| 356. http://gcc.gnu.org/PR22233 |
| 357. http://gcc.gnu.org/PR22508 |
| 358. http://gcc.gnu.org/PR22545 |
| 359. http://gcc.gnu.org/PR23528 |
| 360. http://gcc.gnu.org/PR23550 |
| 361. http://gcc.gnu.org/PR23586 |
| 362. http://gcc.gnu.org/PR23624 |
| 363. http://gcc.gnu.org/PR23639 |
| 364. http://gcc.gnu.org/PR23797 |
| 365. http://gcc.gnu.org/PR23965 |
| 366. http://gcc.gnu.org/PR24052 |
| 367. http://gcc.gnu.org/PR24580 |
| 368. http://gcc.gnu.org/PR24267 |
| 369. http://gcc.gnu.org/PR17810 |
| 370. http://gcc.gnu.org/PR17860 |
| 371. http://gcc/gnu.org/PR21709 |
| 372. http://gcc.gnu.org/PR21964 |
| 373. http://gcc.gnu.org/PR22167 |
| 374. http://gcc.gnu.org/PR22619 |
| 375. http://gcc.gnu.org/PR23241 |
| 376. http://gcc.gnu.org/PR23478 |
| 377. http://gcc.gnu.org/PR24470 |
| 378. http://gcc.gnu.org/PR24950 |
| 379. http://gcc.gnu.org/PR14400 |
| 380. http://gcc.gnu.org/PR14940 |
| 381. http://gcc.gnu.org/PR20239 |
| 382. http://gcc.gnu.org/PR15220 |
| 383. http://gcc.gnu.org/PR19275 |
| 384. http://gcc.gnu.org/PR21888 |
| 385. http://gcc.gnu.org/PR15342 |
| 386. http://gcc.gnu.org/PR23985 |
| 387. http://gcc.gnu.org/PR16719 |
| 388. http://gcc.gnu.org/PR21723 |
| 389. http://gcc.gnu.org/PR21841 |
| 390. http://gcc.gnu.org/PR23644 |
| 391. http://gcc.gnu.org/PR24718 |
| 392. http://gcc.gnu.org/PR18421 |
| 393. http://gcc.gnu.org/PR20621 |
| 394. http://gcc.gnu.org/PR18583 |
| 395. http://gcc.gnu.org/PR20191 |
| 396. http://gcc.gnu.org/PR22083 |
| 397. http://gcc.gnu.org/PR23070 |
| 398. http://gcc.gnu.org/PR23404 |
| 399. http://gcc.gnu.org/PR23539 |
| 400. http://gcc.gnu.org/PR24102 |
| 401. http://gcc.gnu.org/PR24465 |
| 402. http://gcc.gnu.org/PR19933 |
| 403. http://gcc.gnu.org/PR21889 |
| 404. http://gcc.gnu.org/PR19300 |
| 405. http://gcc.gnu.org/PR20301 |
| 406. http://gcc.gnu.org/PR20673 |
| 407. http://gcc.gnu.org/PR18582 |
| 408. http://gcc.gnu.org/PR19340 |
| 409. http://gcc.gnu.org/PR21716 |
| 410. http://gcc.gnu.org/PR24315 |
| 411. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6 |
| 412. mailto:gnu@gnu.org |
| 413. http://www.gnu.org/home.html#ContactInfo |
| 414. http://gcc.gnu.org/about.html |
| 415. http://gcc.gnu.org/onlinedocs/ |
| 416. mailto:gcc-help@gcc.gnu.org |
| 417. mailto:gcc@gnu.org |
| 418. mailto:gcc@gcc.gnu.org |
| 419. http://gcc.gnu.org/lists.html |
| 420. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.3/index.html |
| GCC 3.3 Release Series |
| |
| May 03, 2005 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 3.3.6. |
| |
| This release is a bug-fix release, containing fixes for regressions in |
| GCC 3.3.5 relative to previous releases of GCC. |
| |
| This release is the last of the series 3.3.x. |
| |
| The GCC 3.3 release series includes numerous [2]new features, |
| improvements, bug fixes, and other changes, thanks to an [3]amazing |
| group of volunteers. |
| |
| Release History |
| |
| GCC 3.3.6 |
| May 3, 2005 ([4]changes) |
| |
| GCC 3.3.5 |
| September 30, 2004 ([5]changes) |
| |
| GCC 3.3.4 |
| May 31, 2004 ([6]changes) |
| |
| GCC 3.3.3 |
| February 14, 2004 ([7]changes) |
| |
| GCC 3.3.2 |
| October 16, 2003 ([8]changes) |
| |
| GCC 3.3.1 |
| August 8, 2003 ([9]changes) |
| |
| GCC 3.3 |
| May 14, 2003 ([10]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [11]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [12]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [13]GCC |
| project web site or contact the [14]GCC development mailing list. |
| |
| To obtain GCC please use [15]our mirror sites, or our CVS server. |
| |
| Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There |
| are also [17]other ways to contact the FSF. |
| |
| These pages are maintained by [18]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [19]GCC manuals. If that fails, the |
| [20]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org. |
| All of our lists have [23]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [24]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-3.3/changes.html |
| 3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 |
| 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 |
| 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 |
| 7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3 |
| 8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2 |
| 9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 |
| 10. http://gcc.gnu.org/gcc-3.3/changes.html |
| 11. http://gcc.gnu.org/gcc-3.3/buildstat.html |
| 12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 13. http://gcc.gnu.org/index.html |
| 14. mailto:gcc@gcc.gnu.org |
| 15. http://gcc.gnu.org/mirrors.html |
| 16. mailto:gnu@gnu.org |
| 17. http://www.gnu.org/home.html#ContactInfo |
| 18. http://gcc.gnu.org/about.html |
| 19. http://gcc.gnu.org/onlinedocs/ |
| 20. mailto:gcc-help@gcc.gnu.org |
| 21. mailto:gcc@gnu.org |
| 22. mailto:gcc@gcc.gnu.org |
| 23. http://gcc.gnu.org/lists.html |
| 24. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.3/changes.html |
| GCC 3.3 Release Series |
| Changes, New Features, and Fixes |
| |
| The latest release in the 3.3 release series is [1]GCC 3.3.6. |
| |
| Caveats |
| |
| * The preprocessor no longer accepts multi-line string literals. They |
| were deprecated in 3.0, 3.1, and 3.2. |
| * The preprocessor no longer supports the -A- switch when appearing |
| alone. -A- followed by an assertion is still supported. |
| * Support for all the systems [2]obsoleted in GCC 3.1 has been |
| removed from GCC 3.3. See below for a [3]list of systems which are |
| obsoleted in this release. |
| * Checking for null format arguments has been decoupled from the rest |
| of the format checking mechanism. Programs which use the format |
| attribute may regain this functionality by using the new [4]nonnull |
| function attribute. Note that all functions for which GCC has a |
| built-in format attribute, an appropriate built-in nonnull |
| attribute is also applied. |
| * The DWARF (version 1) debugging format has been deprecated and will |
| be removed in a future version of GCC. Version 2 of the DWARF |
| debugging format will continue to be supported for the foreseeable |
| future. |
| * The C and Objective-C compilers no longer accept the "Naming Types" |
| extension (typedef foo = bar); it was already unavailable in C++. |
| Code which uses it will need to be changed to use the "typeof" |
| extension instead: typedef typeof(bar) foo. (We have removed this |
| extension without a period of deprecation because it has caused the |
| compiler to crash since version 3.0 and no one noticed until very |
| recently. Thus we conclude it is not in widespread use.) |
| * The -traditional C compiler option has been removed. It was |
| deprecated in 3.1 and 3.2. (Traditional preprocessing remains |
| available.) The <varargs.h> header, used for writing variadic |
| functions in traditional C, still exists but will produce an error |
| message if used. |
| * GCC 3.3.1 automatically places zero-initialized variables in the |
| .bss section on some operating systems. Versions of GNU Emacs up to |
| (and including) 21.3 will not work correctly when using this |
| optimization; you can use -fno-zero-initialized-in-bss to disable |
| it. |
| |
| General Optimizer Improvements |
| |
| * A new scheme for accurately describing processor pipelines, the |
| [5]DFA scheduler, has been added. |
| * Pavel Nejedly, Charles University Prague, has contributed new file |
| format used by the edge coverage profiler (-fprofile-arcs). |
| The new format is robust and diagnoses common mistakes where |
| profiles from different versions (or compilations) of the program |
| are combined resulting in nonsensical profiles and slow code to |
| produced with profile feedback. Additionally this format allows |
| extra data to be gathered. Currently, overall statistics are |
| produced helping optimizers to identify hot spots of a program |
| globally replacing the old intra-procedural scheme and resulting in |
| better code. Note that the gcov tool from older GCC versions will |
| not be able to parse the profiles generated by GCC 3.3 and vice |
| versa. |
| * Jan Hubicka, SuSE Labs, has contributed a new superblock formation |
| pass enabled using -ftracer. This pass simplifies the control flow |
| of functions allowing other optimizations to do better job. |
| He also contributed the function reordering pass |
| (-freorder-functions) to optimize function placement using profile |
| feedback. |
| |
| New Languages and Language specific improvements |
| |
| C/ObjC/C++ |
| |
| * The preprocessor now accepts directives within macro arguments. It |
| processes them just as if they had not been within macro arguments. |
| * The separate ISO and traditional preprocessors have been completely |
| removed. The front end handles either type of preprocessed output |
| if necessary. |
| * In C99 mode preprocessor arithmetic is done in the precision of the |
| target's intmax_t, as required by that standard. |
| * The preprocessor can now copy comments inside macros to the output |
| file when the macro is expanded. This feature, enabled using the |
| -CC option, is intended for use by applications which place |
| metadata or directives inside comments, such as lint. |
| * The method of constructing the list of directories to be searched |
| for header files has been revised. If a directory named by a -I |
| option is a standard system include directory, the option is |
| ignored to ensure that the default search order for system |
| directories and the special treatment of system header files are |
| not defeated. |
| * A few more [6]ISO C99 features now work correctly. |
| * A new function attribute, nonnull, has been added which allows |
| pointer arguments to functions to be specified as requiring a |
| non-null value. The compiler currently uses this information to |
| issue a warning when it detects a null value passed in such an |
| argument slot. |
| * A new type attribute, may_alias, has been added. Accesses to |
| objects with types with this attribute are not subjected to |
| type-based alias analysis, but are instead assumed to be able to |
| alias any other type of objects, just like the char type. |
| |
| C++ |
| |
| * Type based alias analysis has been implemented for C++ aggregate |
| types. |
| |
| Objective-C |
| |
| * Generate an error if Objective-C objects are passed by value in |
| function and method calls. |
| * When -Wselector is used, check the whole list of selectors at the |
| end of compilation, and emit a warning if a @selector() is not |
| known. |
| * Define __NEXT_RUNTIME__ when compiling for the NeXT runtime. |
| * No longer need to include objc/objc-class.h to compile self calls |
| in class methods (NeXT runtime only). |
| * New -Wundeclared-selector option. |
| * Removed selector bloating which was causing object files to be 10% |
| bigger on average (GNU runtime only). |
| * Using at run time @protocol() objects has been fixed in certain |
| situations (GNU runtime only). |
| * Type checking has been fixed and improved in many situations |
| involving protocols. |
| |
| Java |
| |
| * The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK |
| 1.4) API. |
| * The JDK 1.4 assert facility has been implemented. |
| * The bytecode interpreter is now direct threaded and thus faster. |
| |
| Fortran |
| |
| * Fortran improvements are listed in [7]the Fortran documentation. |
| |
| Ada |
| |
| * Ada tasking now works with glibc 2.3.x threading libraries. |
| |
| New Targets and Target Specific Improvements |
| |
| * The following changes have been made to the HP-PA port: |
| + The port now defaults to scheduling for the PA8000 series of |
| processors. |
| + Scheduling support for the PA7300 processor has been added. |
| + The 32-bit port now supports weak symbols under HP-UX 11. |
| + The handling of initializers and finalizers has been improved |
| under HP-UX 11. The 64-bit port no longer uses collect2. |
| + Dwarf2 EH support has been added to the 32-bit linux port. |
| + ABI fixes to correct the passing of small structures by value. |
| * The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to |
| use the DFA processor pipeline description. |
| * The following NetBSD configurations for the SuperH processor family |
| have been added: |
| + SH3, big-endian, sh-*-netbsdelf* |
| + SH3, little-endian, shle-*-netbsdelf* |
| + SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd* |
| + SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd* |
| + SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd* |
| + SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd* |
| * The following changes have been made to the IA-32/x86-64 port: |
| + SSE2 and 3dNOW! intrinsics are now supported. |
| + Support for thread local storage has been added to the IA-32 |
| and x86-64 ports. |
| + The x86-64 port has been significantly improved. |
| * The following changes have been made to the MIPS port: |
| + All configurations now accept the -mabi switch. Note that you |
| will need appropriate multilibs for this option to work |
| properly. |
| + ELF configurations will always pass an ABI flag to the |
| assembler, except when the MIPS EABI is selected. |
| + -mabi=64 no longer selects MIPS IV code. |
| + The -mcpu option, which was deprecated in 3.1 and 3.2, has |
| been removed from this release. |
| + -march now changes the core ISA level. In previous releases, |
| it would change the use of processor-specific extensions, but |
| would leave the core ISA unchanged. For example, mips64-elf |
| -march=r8000 will now generate MIPS IV code. |
| + Under most configurations, -mipsN now acts as a synonym for |
| -march. |
| + There are some new preprocessor macros to describe the -march |
| and -mtune settings. See the documentation of those options |
| for details. |
| + Support for the NEC VR-Series processors has been added. This |
| includes the 54xx, 5500, and 41xx series. |
| + Support for the Sandcraft sr71k processor has been added. |
| * The following changes have been made to the S/390 port: |
| + Support to build the Java runtime libraries has been added. |
| Java is now enabled by default on s390-*-linux* and |
| s390x-*-linux* targets. |
| + Multilib support for the s390x-*-linux* target has been added; |
| this allows to build 31-bit binaries using the -m31 option. |
| + Support for thread local storage has been added. |
| + Inline assembler code may now use the 'Q' constraint to |
| specify memory operands without index register. |
| + Various platform-specific performance improvements have been |
| implemented; in particular, the compiler now uses the BRANCH |
| ON COUNT family of instructions and makes more frequent use of |
| the TEST UNDER MASK family of instructions. |
| * The following changes have been made to the PowerPC port: |
| + Support for IBM Power4 processor added. |
| + Support for Motorola e500 SPE added. |
| + Support for AIX 5.2 added. |
| + Function and Data sections now supported on AIX. |
| + Sibcall optimizations added. |
| * The support for H8 Tiny is added to the H8/300 port with -mn. |
| |
| Obsolete Systems |
| |
| Support for a number of older systems has been declared obsolete in GCC |
| 3.3. Unless there is activity to revive them, the next release of GCC |
| will have their sources permanently removed. |
| |
| All configurations of the following processor architectures have been |
| declared obsolete: |
| * Matsushita MN10200, mn10200-*-* |
| * Motorola 88000, m88k-*-* |
| * IBM ROMP, romp-*-* |
| |
| Also, some individual systems have been obsoleted: |
| * Alpha |
| + Interix, alpha*-*-interix* |
| + Linux libc1, alpha*-*-linux*libc1* |
| + Linux ECOFF, alpha*-*-linux*ecoff* |
| * ARM |
| + Generic a.out, arm*-*-aout* |
| + Conix, arm*-*-conix* |
| + "Old ABI," arm*-*-oabi |
| + StrongARM/COFF, strongarm-*-coff* |
| * HPPA (PA-RISC) |
| + Generic OSF, hppa1.0-*-osf* |
| + Generic BSD, hppa1.0-*-bsd* |
| + HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]* |
| + HiUX, hppa*-*-hiux* |
| + Mach Lites, hppa*-*-lites* |
| * Intel 386 family |
| + Windows NT 3.x, i?86-*-win32 |
| * MC68000 family |
| + HP systems, m68000-hp-bsd* and m68k-hp-bsd* |
| + Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and |
| m68k-sun-mach* |
| + AT&T systems, m68000-att-sysv* |
| + Atari systems, m68k-atari-sysv* |
| + Motorola systems, m68k-motorola-sysv* |
| + NCR systems, m68k-ncr-sysv* |
| + Plexus systems, m68k-plexus-sysv* |
| + Commodore systems, m68k-cbm-sysv* |
| + Citicorp TTI, m68k-tti-* |
| + Unos, m68k-crds-unos* |
| + Concurrent RTU, m68k-ccur-rtu* |
| + Linux a.out, m68k-*-linux*aout* |
| + Linux libc1, m68k-*-linux*libc1* |
| + pSOS, m68k-*-psos* |
| * MIPS |
| + Generic ECOFF, mips*-*-ecoff* |
| + SINIX, mips-sni-sysv4 |
| + Orion RTEMS, mips64orion-*-rtems* |
| * National Semiconductor 32000 |
| + OpenBSD, ns32k-*-openbsd* |
| * POWER (aka RS/6000) and PowerPC |
| + AIX versions 1, 2, and 3, rs6000-ibm-aix[123]* |
| + Bull BOSX, rs6000-bull-bosx |
| + Generic Mach, rs6000-*-mach* |
| + Generic SysV, powerpc*-*-sysv* |
| + Linux libc1, powerpc*-*-linux*libc1* |
| * Sun SPARC |
| + Generic a.out, sparc-*-aout*, sparclet-*-aout*, |
| sparclite-*-aout*, and sparc86x-*-aout* |
| + NetBSD a.out, sparc-*-netbsd*aout* |
| + Generic BSD, sparc-*-bsd* |
| + ChorusOS, sparc-*-chorusos* |
| + Linux a.out, sparc-*-linux*aout* |
| + Linux libc1, sparc-*-linux*libc1* |
| + LynxOS, sparc-*-lynxos* |
| + Solaris on HAL hardware, sparc-hal-solaris2* |
| + SunOS versions 3 and 4, sparc-*-sunos[34]* |
| * NEC V850 |
| + RTEMS, v850-*-rtems* |
| * VAX |
| + VMS, vax-*-vms* |
| |
| Documentation improvements |
| |
| Other significant improvements |
| |
| * Almost all front-end dependencies in the compiler have been |
| separated out into a set of language hooks. This should make adding |
| a new front end clearer and easier. |
| * One effect of removing the separate preprocessor is a small |
| increase in the robustness of the compiler in general, and the |
| maintainability of target descriptions. Previously target-specific |
| built-in macros and others, such as __FAST_MATH__, had to be |
| handled with so-called specs that were hard to maintain. Often they |
| would fail to behave properly when conflicting options were |
| supplied on the command line, and define macros in the user's |
| namespace even when strict ISO compliance was requested. |
| Integrating the preprocessor has cleanly solved these issues. |
| * The Makefile suite now supports redirection of make install by |
| means of the variable DESTDIR. |
| __________________________________________________________________ |
| |
| GCC 3.3 |
| |
| Detailed release notes for the GCC 3.3 release follow. |
| |
| Bug Fixes |
| |
| bootstrap failures |
| |
| * [8]10140 cross compiler build failures: missing __mempcpy (DUP: |
| [9]10198,[10]10338) |
| |
| Internal compiler errors (multi-platform) |
| |
| * [11]3581 large string causes segmentation fault in cc1 |
| * [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler |
| * [13]5533 (c++) ICE when processing std::accumulate(begin, end, |
| init, invalid_op) |
| * [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out |
| * [15]6412 (c++) ICE in retrieve_specialization |
| * [16]6620 (c++) partial template specialization causes an ICE |
| (segmentation fault) |
| * [17]6663 (c++) ICE with attribute aligned |
| * [18]7068 ICE with incomplete types |
| * [19]7083 (c++) ICE using -gstabs with dodgy class derivation |
| * [20]7647 (c++) ICE when data member has the name of the enclosing |
| class |
| * [21]7675 ICE in fixup_var_refs_1 |
| * [22]7718 'complex' template instantiation causes ICE |
| * [23]8116 (c++) ICE in member template function |
| * [24]8358 (ada) Ada compiler accesses freed memory, crashes |
| * [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation |
| fault |
| * [26]8564 (c++) ICE in find_function_data, in function.c |
| * [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c |
| * [28]8766 (c++) ICE after failed initialization of static template |
| variable |
| * [29]8803 ICE in instantiate_virtual_regs_1, in function.c |
| * [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set |
| * [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class |
| definition |
| * [32]9216 (c++) ICE on missing template parameter |
| * [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c |
| * [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO |
| loop |
| * [35]9429 (c++) ICE in template instantiation with a pointered new |
| operator |
| * [36]9516 Internal error when using a big array |
| * [37]9600 (c++) ICE with typedefs in template class |
| * [38]9629 (c++) virtual inheritance segfault |
| * [39]9672 (c++) ICE: Error reporting routines re-entered |
| * [40]9749 (c++) ICE in write_expression on invalid function |
| prototype |
| * [41]9794 (fortran) ICE: floating point exception during constant |
| folding |
| * [42]9829 (c++) Missing colon in nested namespace usage causes ICE |
| * [43]9916 (c++) ICE with noreturn function in ?: statement |
| * [44]9936 ICE with local function and variable-length 2d array |
| * [45]10262 (c++) cc1plus crashes with large generated code |
| * [46]10278 (c++) ICE in parser for invalid code |
| * [47]10446 (c++) ICE on definition of nonexistent member function of |
| nested class in a class template |
| * [48]10451 (c++) ICE in grokdeclarator on spurious mutable |
| declaration |
| * [49]10506 (c++) ICE in build_new at cp/init.c with |
| -fkeep-inline-functions and multiple inheritance |
| * [50]10549 (c++) ICE in store_bit_field on bitfields that exceed the |
| precision of the declared type |
| |
| Optimization bugs |
| |
| * [51]2001 Inordinately long compile times in reload CSE regs |
| * [52]2391 Exponential compilation time explosion in combine |
| * [53]2960 Duplicate loop conditions even with -Os |
| * [54]4046 redundant conditional branch |
| * [55]6405 Loop-unrolling related performance regressions |
| * [56]6798 very long compile time with large case-statement |
| * [57]6871 const objects shouldn't be moved to .bss |
| * [58]6909 problem w/ -Os on modified loop-2c.c test case |
| * [59]7189 gcc -O2 -Wall does not print ``control reaches end of |
| non-void function'' warning |
| * [60]7642 optimization problem with signbit() |
| * [61]8634 incorrect code for inlining of memcpy under -O2 |
| * [62]8750 Cygwin prolog generation erroneously emitting __alloca as |
| regular function call |
| |
| C front end |
| |
| * [63]2161 long if-else cascade overflows parser stack |
| * [64]4319 short accepted on typedef'd char |
| * [65]8602 incorrect line numbers in warning messages when using |
| inline functions |
| * [66]9177 -fdump-translation-unit: C front end deletes function_decl |
| AST nodes and breaks debugging dumps |
| * [67]9853 miscompilation of non-constant structure initializer |
| |
| c++ compiler and library |
| |
| * [68]45 legal template specialization code is rejected (DUP: |
| [69]3784) |
| * [70]764 lookup failure: friend operator and dereferencing a pointer |
| and templates (DUP: [71]5116) |
| * [72]2862 gcc accepts invalid explicit instantiation syntax (DUP: |
| 2863) |
| * [73]3663 G++ doesn't check access control during template |
| instantiation |
| * [74]3797 gcc fails to emit explicit specialization of a template |
| member |
| * [75]3948 Two destructors are called when no copy destructor is |
| defined (ABI change) |
| * [76]4137 Conversion operator within template is not accepted |
| * [77]4361 bogus ambiguity taking the address of a member template |
| * [78]4802 g++ accepts illegal template code (access to private |
| member; DUP: [79]5837) |
| * [80]4803 inline function is used but never defined, and g++ does |
| not object |
| * [81]5094 Partial specialization cannot be friend? |
| * [82]5730 complex<double>::norm() -- huge slowdown from egcs-2.91.66 |
| * [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run |
| time |
| * [84]7015 certain __asm__ constructs rejected |
| * [85]7086 compile time regression (quadratic behavior in |
| fixup_var_refs) |
| * [86]7099 G++ doesn't set the noreturn attribute on std::exit and |
| std::abort |
| * [87]7247 copy constructor missing when inlining enabled (invalid |
| optimization?) |
| * [88]7441 string array initialization compilation time regression |
| from seconds to minutes |
| * [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong |
| * [90]7804 bad printing of floating point constant in warning message |
| * [91]8099 Friend classes and template specializations |
| * [92]8117 member function pointers and multiple inheritance |
| * [93]8205 using declaration and multiple inheritance |
| * [94]8645 unnecessary non-zero checks in stl_tree.h |
| * [95]8724 explicit destructor call for incomplete class allowed |
| * [96]8805 compile time regression with many member variables |
| * [97]8691 -O3 and -fno-implicit-templates are incompatible |
| * [98]8700 unhelpful error message for binding temp to reference |
| * [99]8724 explicit destructor call for incomplete class allowed |
| * [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems |
| * [101]9016 Failure to consistently constant fold "constant" C++ |
| objects |
| * [102]9053 g++ confused about ambiguity of overloaded function |
| templates |
| * [103]9152 undefined virtual thunks |
| * [104]9182 basic_filebuf<> does not report errors in codecvt<>::out |
| * [105]9297 data corruption due to codegen bug (when copying.) |
| * [106]9318 i/ostream::operator>>/<<(streambuf*) broken |
| * [107]9320 Incorrect usage of traits_type::int_type in stdio_filebuf |
| * [108]9400 bogus -Wshadow warning: shadowed declaration of this in |
| local classes |
| * [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters |
| * [110]9425 filebuf::pbackfail broken (DUP: [111]9439) |
| * [112]9474 GCC freezes in compiling a weird code mixing <iostream> |
| and <iostream.h> |
| * [113]9548 Incorrect results from setf(ios::fixed) and precision(-1) |
| [114][DR 231] |
| * [115]9555 ostream inserters fail to set badbit on exception |
| * [116]9561 ostream inserters rethrow exception of wrong type |
| * [117]9563 ostream::sentry returns true after a failed preparation |
| * [118]9582 one-definition rule violation in std::allocator |
| * [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors |
| * [120]9683 bug in initialization chains for static const variables |
| from template classes |
| * [121]9791 -Woverloaded-virtual reports hiding of destructor |
| * [122]9817 collate::compare doesn't handle nul characters |
| * [123]9825 filebuf::sputbackc breaks sbumpc |
| * [124]9826 operator>>(basic_istream, basic_string) fails to compile |
| with custom traits |
| * [125]9924 Multiple using statements for builtin functions not |
| allowed |
| * [126]9946 destructor is not called for temporary object |
| * [127]9964 filebuf::close() sometimes fails to close file |
| * [128]9988 filebuf::overflow writes EOF to file |
| * [129]10033 optimization breaks polymorphic references w/ typeid |
| operator |
| * [130]10097 filebuf::underflow drops characters |
| * [131]10132 filebuf destructor can throw exceptions |
| * [132]10180 gcc fails to warn about non-inlined function |
| * [133]10199 method parametrized by template does not work everywhere |
| * [134]10300 use of array-new (nothrow) in segfaults on NULL return |
| * [135]10427 Stack corruption with variable-length automatic arrays |
| and virtual destructors |
| * [136]10503 Compilation never stops in fixed_type_or_null |
| |
| Objective-C |
| |
| * [137]5956 selectors aren't matched properly when added to the |
| selector table |
| |
| Fortran compiler and library |
| |
| * [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't |
| detect |
| * [139]3924 g77 generates code that is rejected by GAS if COFF debug |
| info requested |
| * [140]5634 doc: explain that configure --prefix=~/... does not work |
| * [141]6367 multiple repeat counts confuse namelist read into array |
| * [142]6491 Logical operations error on logicals when using |
| -fugly-logint |
| * [143]6742 Generation of C++ Prototype for FORTRAN and extern "C" |
| * [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os |
| on irix6.5 |
| * [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should |
| assume a direct access file |
| * [146]7278 g77 "bug"; the executable misbehaves (with -O2 |
| -fno-automatic) |
| * [147]7384 DATE_AND_TIME milliseconds field inactive on Windows |
| * [148]7388 Incorrect output with 0-based array of characters |
| * [149]8587 Double complex zero ** double precision number -> NaN |
| instead of zero |
| * [150]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning: |
| unknown register name line-length-none |
| * [151]10197 Direct access files not unformatted by default |
| |
| Java compiler and library |
| |
| * [152]6005 gcj fails to build rhug on alpha |
| * [153]6389 System.getProperty("") should always throw an |
| IllegalArgumentException |
| * [154]6576 java.util.ResourceBundle.getResource ignores locale |
| * [155]6652 new java.io.File("").getCanonicalFile() throws exception |
| * [156]7060 getMethod() doesn't search super interface |
| * [157]7073 bytecode interpreter gives wrong answer for interface |
| getSuperclass() |
| * [158]7180 possible bug in |
| javax.naming.spi.NamingManager.getPlusPath() |
| * [159]7416 java.security startup refs "GNU libgcj.security" |
| * [160]7570 Runtime.exec with null envp: child doesn't inherit parent |
| env (DUP: [161]7578) |
| * [162]7611 Internal error while compiling libjava with -O |
| * [163]7709 NullPointerException in _Jv_ResolvePoolEntry |
| * [164]7766 ZipInputStream.available returns 0 immediately after |
| construction |
| * [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be public |
| * [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented |
| * [167]8142 '$' in class names vs. dlopen 'dynamic string tokens' |
| * [168]8234 ZipInputStream chokes when InputStream.read() returns |
| small chunks |
| * [169]8415 reflection bug: exception info for Method |
| * [170]8481 java.Random.nextInt(int) may return negative |
| * [171]8593 Error reading GZIPped files with BufferedReader |
| * [172]8759 java.beans.Introspector has no flushCaches() or |
| flushFromCaches() methods |
| * [173]8997 spin() calls Thread.sleep |
| * [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd |
| instead of the root content of C: |
| * [175]9254 java::lang::Object::wait(), threads-win32.cc returns |
| wrong return codes |
| * [176]9271 Severe bias in java.security.SecureRandom |
| |
| Ada compiler and library |
| |
| * [177]6767 make gnatlib-shared fails on -laddr2line |
| * [178]9911 gnatmake fails to link when GCC configured with |
| --with-sjlj-exceptions=yes |
| * [179]10020 Can't bootstrap gcc on AIX with Ada enabled |
| * [180]10546 Ada tasking not working on Red Hat 9 |
| |
| preprocessor |
| |
| * [181]7029 preprocessor should ignore #warning with -M |
| |
| ARM-specific |
| |
| * [182]2903 [arm] Optimization bug with long long arithmetic |
| * [183]7873 arm-linux-gcc fails when assigning address to a bit field |
| |
| FreeBSD-specific |
| |
| * [184]7680 float functions undefined in math.h/cmath with #define |
| _XOPEN_SOURCE |
| |
| HP-UX or HP-PA-specific |
| |
| * [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c |
| * [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to |
| fputc_unlocked |
| * [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen |
| |
| m68hc11-specific |
| |
| * [188]6744 Bad assembler code generated: reference to pseudo |
| register z |
| * [189]7361 Internal compiler error in reload_cse_simplify_operands, |
| in reload1.c |
| |
| MIPS-specific |
| |
| * [190]9496 [mips-linux] bug in optimizer? |
| |
| PowerPC-specific |
| |
| * [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of |
| space |
| * [192]8480 reload ICEs for LAPACK code on powerpc64-linux |
| * [193]8784 [AIX] Internal compiler error in simplify_gen_subreg |
| * [194]10315 [powerpc] ICE: in extract_insn, in recog.c |
| |
| SPARC-specific |
| |
| * [195]10267 (documentation) Wrong build instructions for |
| *-*-solaris2* |
| |
| x86-specific (Intel/AMD) |
| |
| * [196]7916 ICE in instantiate_virtual_register_1 |
| * [197]7926 (c++) i486 instructions in header files make c++ programs |
| crash on i386 |
| * [198]8555 ICE in gen_split_1231 |
| * [199]8994 ICE with -O -march=pentium4 |
| * [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs |
| * [201]9806 ICE in inline assembly with -fPIC flag |
| * [202]10077 gcc -msse2 generates movd to move dwords between xmm |
| regs |
| * [203]10233 64-bit comparison only comparing bottom 32-bits |
| * [204]10286 type-punning doesn't work with __m64 and -O |
| * [205]10308 [x86] ICE with -O -fgcse or -O2 |
| __________________________________________________________________ |
| |
| GCC 3.3.1 |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.3.1 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Bootstrap failures |
| |
| * [206]11272 [Solaris] make bootstrap fails while building libstdc++ |
| |
| Internal compiler errors (multi-platform) |
| |
| * [207]5754 ICE on invalid nested template class |
| * [208]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64 |
| and --enable-checking |
| * [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c |
| * [210]7053 (c++) ICE when declaring a function already defined as a |
| friend method of a template class |
| * [211]8164 (c++) ICE when using different const expressions as |
| template parameter |
| * [212]8384 (c++) ICE in is_base_type, in dwarf2out.c |
| * [213]9559 (c++) ICE with invalid initialization of a static const |
| * [214]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c |
| when redeclaring a static member variable |
| * [215]9864 (fortran) ICE in add_abstract_origin_attribute, in |
| dwarfout.c with -g -O -finline-functions |
| * [216]10432 (c++) ICE in poplevel, in cp/decl.c |
| * [217]10475 ICE in subreg_highpart_offset for code with long long |
| * [218]10635 (c++) ICE when dereferencing an incomplete type casted |
| from a void pointer |
| * [219]10661 (c++) ICE in instantiate_decl, in cp/pt.c while |
| instantiating static member variables |
| * [220]10700 ICE in copy_to_mode_reg on 64-bit targets |
| * [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c |
| * [222]10796 (c++) ICE when defining an enum with two values: -1 and |
| MAX_INT_64BIT |
| * [223]10890 ICE in merge_assigned_reloads building Linux 2.4.2x |
| sched.c |
| * [224]10939 (c++) ICE with template code |
| * [225]10956 (c++) ICE when specializing a template member function |
| of a template class, in tsubst, in cp/pt.c |
| * [226]11041 (c++) ICE: const myclass &x = *x; (when operator*() |
| defined) |
| * [227]11059 (c++) ICE with empty union |
| * [228]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with |
| -O2 -fnon-call-exceptions |
| * [229]11105 (c++) ICE in mangle_conv_op_name_for_type |
| * [230]11149 (c++) ICE on error when instantiation with call function |
| of a base type |
| * [231]11228 (c++) ICE on new-expression using array operator new and |
| default-initialization |
| * [232]11282 (c++) Infinite memory usage after syntax error |
| * [233]11301 (fortran) ICE with -fno-globals |
| * [234]11308 (c++) ICE when using an enum type name as if it were a |
| class or namespace |
| * [235]11473 (c++) ICE with -gstabs when empty struct inherits from |
| an empty struct |
| * [236]11503 (c++) ICE when instantiating template with ADDR_EXPR |
| * [237]11513 (c++) ICE in push_template_decl_real, in cp/pt.c: |
| template member functions |
| |
| Optimization bugs |
| |
| * [238]11198 -O2 -frename-registers generates wrong code (aliasing |
| problem) |
| * [239]11304 Wrong code production with -fomit-frame-pointer |
| * [240]11381 volatile memory access optimized away |
| * [241]11536 [strength-reduce] -O2 optimization produces wrong code |
| * [242]11557 constant folding bug generates wrong code |
| |
| C front end |
| |
| * [243]5897 No warning for statement after return |
| * [244]11279 DWARF-2 output mishandles large enums |
| |
| Preprocessor bugs |
| |
| * [245]11022 no warning for non-compatible macro redefinition |
| |
| C++ compiler and library |
| |
| * [246]2330 static_cast<>() to a private base is allowed |
| * [247]5388 Incorrect message "operands to ?: have different types" |
| * [248]5390 Libiberty fails to demangle multi-digit template |
| parameters |
| * [249]7877 Incorrect parameter passing to specializations of member |
| function templates |
| * [250]9393 Anonymous namespaces and compiling the same file twice |
| * [251]10032 -pedantic converts some errors to warnings |
| * [252]10468 const typeof(x) is non-const, but only in templates |
| * [253]10527 confused error message with "new int()" parameter |
| initializer |
| * [254]10679 parameter MIN_INLINE_INSNS is not honored |
| * [255]10682 gcc chokes on a typedef for an enum inside a class |
| template |
| * [256]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of |
| 0. |
| * [257]10845 template member function (with nested template as |
| parameter) cannot be called anymore if another unrelated template |
| member function is defined |
| * [258]10849 Cannot define an out-of-class specialization of a |
| private nested template class |
| * [259]10888 Suppress -Winline warnings for system headers |
| * [260]10929 -Winline warns about functions for which no definition |
| is visible |
| * [261]10931 valid conversion static_cast<const unsigned |
| int&>(lvalue-of-type-int) is rejected |
| * [262]10940 Bad code with explicit specialization |
| * [263]10968 If member function implicitly instantiated, explicit |
| instantiation of class fails to instantiate it |
| * [264]10990 Cannot convert with dynamic_cast<> to a private base |
| class from within a member function |
| * [265]11039 Bad interaction between implicit typename deprecation |
| and friendship |
| * [266]11062 (libstdc++) avoid __attribute__ ((unused)); say |
| "__unused__" instead |
| * [267]11095 C++ iostream manipulator causes segfault when called |
| with negative argument |
| * [268]11098 g++ doesn't emit complete debugging information for |
| local variables in destructors |
| * [269]11137 Linux shared library constructors not called unless |
| there's one global object |
| * [270]11154 spurious ambiguity report for template class |
| specialization |
| * [271]11329 Compiler cannot find user defined implicit typecast |
| * [272]11332 Spurious error with casts in ?: expression |
| * [273]11431 static_cast behavior with subclasses when default |
| constructor available |
| * [274]11528 money_get facet does not accept "$.00" as valid |
| * [275]11546 Type lookup problems in out-of-line definition of a |
| class doubly nested from a template class |
| * [276]11567 C++ code containing templated member function with same |
| name as pure virtual member function results in linking failure |
| * [277]11645 Failure to deal with using and private inheritance |
| |
| Java compiler and library |
| |
| * [278]5179 Qualified static field access doesn't initialize its |
| class |
| * [279]8204 gcj -O2 to native reorders certain instructions |
| improperly |
| * [280]10838 java.io.ObjectInputStream syntax error |
| * [281]10886 The RMI registry that comes with GCJ does not work |
| correctly |
| * [282]11349 JNDI URL context factories not located correctly |
| |
| x86-specific (Intel/AMD) |
| |
| * [283]4823 ICE on inline assembly code |
| * [284]8878 miscompilation with -O and SSE |
| * [285]9815 (c++ library) atomicity.h - fails to compile with -O3 |
| -masm=intel |
| * [286]10402 (inline assembly) [x86] ICE in merge_assigned_reloads, |
| in reload1.c |
| * [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2 |
| * [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source |
| * [289]11044 [x86] out of range loop instructions for FP code on K6 |
| * [290]11089 ICE: instantiate_virtual_regs_lossage while using SSE |
| built-ins |
| * [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC" |
| is used |
| |
| SPARC- or Solaris- specific |
| |
| * [292]9362 solaris 'as' dies when fed .s and "-gstabs" |
| * [293]10142 [SPARC64] gcc produces wrong code when passing |
| structures by value |
| * [294]10663 New configure check aborts with Sun tools. |
| * [295]10835 combinatorial explosion in scheduler on HyperSPARC |
| * [296]10876 ICE in calculate_giv_inc when building KDE |
| * [297]10955 wrong code at -O3 for structure argument in context of |
| structure return |
| * [298]11018 -mcpu=ultrasparc busts tar-1.13.25 |
| * [299]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x |
| Linux kernel |
| |
| ia64 specific |
| |
| * [300]10907 gcc violates the ia64 ABI (GP must be preserved) |
| * [301]11320 scheduler bug (in machine depended reorganization pass) |
| * [302]11599 bug with conditional and __builtin_prefetch |
| |
| PowerPC specific |
| |
| * [303]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem |
| during loop) |
| * [304]10871 error in rs6000_stack_info save_size computation |
| * [305]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse |
| cures it |
| |
| m68k-specific |
| |
| * [306]7594 [m68k] ICE on legal code associated with simplify-rtx |
| * [307]10557 [m68k] ICE in subreg_offset_representable_p |
| * [308]11054 [m68k] ICE in reg_overlap_mentioned_p |
| |
| ARM-specific |
| |
| * [309]10834 [arm] GCC 3.3 still generates incorrect instructions for |
| functions with __attribute__ ((interrupt ("IRQ"))) |
| * [310]10842 [arm] Clobbered link register is copied to pc under |
| certain circumstances |
| * [311]11052 [arm] noce_process_if_block() can lose REG_INC notes |
| * [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno |
| (3.4) |
| |
| MIPS-specific |
| |
| * [313]11084 ICE in propagate_one_insn, in flow.c |
| |
| SH-specific |
| |
| * [314]10331 can't compile c++ part of gcc cross compiler for sh-elf |
| * [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c |
| * [316]11096 i686-linux to sh-linux cross compiler fails to compile |
| C++ files |
| |
| GNU/Linux (or Hurd?) specific |
| |
| * [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3 |
| |
| UnixWare specific |
| |
| * [318]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare |
| 7.1.1 |
| |
| Cygwin (or mingw) specific |
| |
| * [319]5287 ICE with dllimport attribute |
| * [320]10148 [MingW/CygWin] Compiler dumps core |
| |
| DJGPP specific |
| |
| * [321]8787 GCC fails to emit .intel_syntax when invoked with |
| -masm=intel on DJGPP |
| |
| Darwin (and MacOS X) specific |
| |
| * [322]10900 trampolines crash |
| |
| Documentation |
| |
| * [323]1607 (c++) Format attributes on methods undocumented |
| * [324]4252 Invalid option `-fdump-translation-unit' |
| * [325]4490 Clarify restrictions on -m96bit-long-double, |
| -m128bit-long-double |
| * [326]10355 document an issue with regparm attribute on some systems |
| (e.g. Solaris) |
| * [327]10726 (fortran) Documentation for function "IDate Intrinsic |
| (Unix)" is wrong |
| * [328]10805 document bug in old version of Sun assembler |
| * [329]10815 warn against GNU binutils on AIX |
| * [330]10877 document need for newer binutils on i?86-*-linux-gnu |
| * [331]11280 Manual incorrect with respect to -freorder-blocks |
| * [332]11466 Document -mlittle-endian and its restrictions for the |
| sparc64 port |
| |
| Testsuite bugs (compiler itself is not affected) |
| |
| * [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly |
| report failure |
| * [334]10810 gcc-3.3 fails make check: buffer overrun in |
| test_demangle.c |
| __________________________________________________________________ |
| |
| GCC 3.3.2 |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from [335]GCC's bug |
| tracking system that are known to be fixed in the 3.3.2 release. This |
| list might not be complete (that is, it is possible that some PRs that |
| have been fixed are not listed here). |
| |
| Bootstrap failures and problems |
| |
| * [336]8336 [SCO5] bootstrap config still tries to use COFF options |
| * [337]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with |
| --enable-threads=posix |
| * [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap |
| * [339]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare |
| 7.1.1) |
| * [340]11687 xstormy16-elf build fails in libf2c |
| * [341]12263 [SGI IRIX] bootstrap fails during compile of |
| libf2c/libI77/backspace.c |
| * [342]12490 buffer overflow in scan-decls.c (during Solaris 9 |
| fix-header processing) |
| |
| Internal compiler errors (multi-platform) |
| |
| * [343]7277 Casting integers to vector types causes ICE |
| * [344]7939 (c++) ICE on invalid function template specialization |
| * [345]11063 (c++) ICE on parsing initialization list of const array |
| member |
| * [346]11207 ICE with negative index in array element designator |
| * [347]11522 (fortran) g77 dwarf-2 ICE in |
| add_abstract_origin_attribute |
| * [348]11595 (c++) ICE on duplicate label definition |
| * [349]11646 (c++) ICE in commit_one_edge_insertion with |
| -fnon-call-exceptions -fgcse -O |
| * [350]11665 ICE in struct initializer when taking address |
| * [351]11852 (c++) ICE with bad struct initializer. |
| * [352]11878 (c++) ICE in cp_expr_size |
| * [353]11883 ICE with any -O on mercury-generated C code |
| * [354]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in |
| cp/typeck2.c when applying typeid operator to template template |
| parameter |
| * [355]12146 ICE in lookup_template_function, in cp/pt.c |
| * [356]12215 ICE in make_label_edge with -fnon-call-exceptions |
| -fno-gcse -O2 |
| * [357]12369 (c++) ICE with templates and friends |
| * [358]12446 ICE in emit_move_insn on complicated array reference |
| * [359]12510 ICE in final_scan_insn |
| * [360]12544 ICE with large parameters used in nested functions |
| |
| C and optimization bugs |
| |
| * [361]9862 spurious warnings with -W -finline-functions |
| * [362]10962 lookup_field is a linear search on a linked list (can be |
| slow if large struct) |
| * [363]11370 -Wunreachable-code gives false complaints |
| * [364]11637 invalid assembly with -fnon-call-exceptions |
| * [365]11885 Problem with bitfields in packed structs |
| * [366]12082 Inappropriate unreachable code warnings |
| * [367]12180 Inline optimization fails for variadic function |
| * [368]12340 loop unroller + gcse produces wrong code |
| |
| C++ compiler and library |
| |
| * [369]3907 nested template parameter collides with member name |
| * [370]5293 confusing message when binding a temporary to a reference |
| * [371]5296 [DR115] Pointers to functions and to template functions |
| behave differently in deduction |
| * [372]7939 ICE on function template specialization |
| * [373]8656 Unable to assign function with __attribute__ and pointer |
| return type to an appropriate variable |
| * [374]10147 Confusing error message for invalid template function |
| argument |
| * [375]11400 std::search_n() makes assumptions about Size parameter |
| * [376]11409 issues with using declarations, overloading, and |
| built-in functions |
| * [377]11740 ctype<wchar_t>::do_is(mask, wchar_t) doesn't handle |
| multiple bits in mask |
| * [378]11786 operator() call on variable in other namespace not |
| recognized |
| * [379]11867 static_cast ignores ambiguity |
| * [380]11928 bug with conversion operators that are typedefs |
| * [381]12114 Uninitialized memory accessed in dtor |
| * [382]12163 static_cast + explicit constructor regression |
| * [383]12181 Wrong code with comma operator and c++ |
| * [384]12236 regparm and fastcall messes up parameters |
| * [385]12266 incorrect instantiation of unneeded template during |
| overload resolution |
| * [386]12296 istream::peek() doesn't set eofbit |
| * [387]12298 [sjlj exceptions] Stack unwind destroys |
| not-yet-constructed object |
| * [388]12369 ICE with templates and friends |
| * [389]12337 apparently infinite loop in g++ |
| * [390]12344 stdcall attribute ignored if function returns a pointer |
| * [391]12451 missing(late) class forward declaration in cxxabi.h |
| * [392]12486 g++ accepts invalid use of a qualified name |
| |
| x86 specific (Intel/AMD) |
| |
| * [393]8869 [x86 MMX] ICE with const variable optimization and MMX |
| builtins |
| * [394]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions |
| -O2 |
| * [395]11689 g++3.3 emits un-assembleable code for k6 architecture |
| * [396]12116 [k6] Invalid assembly output values with X-MAME code |
| * [397]12070 ICE converting between double and long double with |
| -msoft-float |
| |
| ia64-specific |
| |
| * [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc |
| * [399]11535 __builtin_return_address may not work on ia64 |
| * [400]11693 [ia64] ICE in gen_nop_type |
| * [401]12224 [ia64] Thread-local storage doesn't work |
| |
| PowerPC-specific |
| |
| * [402]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux |
| kernel |
| * [403]11319 loop miscompiled on ppc32 |
| * [404]11949 ICE Compiler segfault with ffmpeg -maltivec code |
| |
| SPARC-specific |
| |
| * [405]11662 wrong code for expr. with cast to long long and |
| exclusive or |
| * [406]11965 invalid assembler code for a shift < 32 operation |
| * [407]12301 (c++) stack corruption when a returned expression throws |
| an exception |
| |
| Alpha-specific |
| |
| * [408]11717 [alpha-linux] unrecognizable insn compiling for.c of |
| kernel 2.4.22-pre8 |
| |
| HPUX-specific |
| |
| * [409]11313 problem with #pragma weak and static inline functions |
| * [410]11712 __STDC_EXT__ not defined for C++ by default anymore? |
| |
| Solaris specific |
| |
| * [411]12166 Profiled programs crash if PROFDIR is set |
| |
| Solaris-x86 specific |
| |
| * [412]12101 i386 Solaris no longer works with GNU as? |
| |
| Miscellaneous embedded target-specific bugs |
| |
| * [413]10988 [m32r-elf] wrong blockmove code with -O3 |
| * [414]11805 [h8300-unknown-coff] [H8300] ICE for simple code with |
| -O2 |
| * [415]11902 [sh4] spec file improperly inserts rpath even when none |
| needed |
| * [416]11903 [sh4] -pthread fails to link due to error in spec file |
| on sh4 |
| __________________________________________________________________ |
| |
| GCC 3.3.3 |
| |
| Minor features |
| |
| In addition to the bug fixes documented below, this release contains |
| few minor features such as: |
| * Support for --with-sysroot |
| * Support for automatic detection of executable stacks |
| * Support for SSE3 instructions |
| * Support for thread local storage debugging under GDB on S390 |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from [417]GCC's bug |
| tracking system that are known to be fixed in the 3.3.3 release. This |
| list might not be complete (that is, it is possible that some PRs that |
| have been fixed are not listed here). |
| |
| Bootstrap failures and issues |
| |
| * [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails |
| * [419]12399 boehm-gc fails (when building a cross compiler): libtool |
| unable to infer tagged configuration |
| * [420]13068 mklibgcc.in doesn't handle multi-level multilib |
| subdirectories properly |
| |
| Internal compiler errors (multi-platform) |
| |
| * [421]10060 ICE (stack overflow) on huge file (300k lines) due to |
| recursive behaviour of copy_rtx_if_shared, in emit_rtl.c |
| * [422]10555 (c++) ICE on undefined template argument |
| * [423]10706 (c++) ICE in mangle_class_name_for_template |
| * [424]11496 (fortran) error in flow_loops_find when -funroll-loops |
| active |
| * [425]11741 ICE in pre_insert_copy_insn, in gcse.c |
| * [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0 |
| * [427]12632 (fortran) -fbounds-check ICE |
| * [428]12712 (c++) ICE on short legit C++ code fragment with gcc |
| 3.3.2 |
| * [429]12726 (c++) ICE (segfault) on trivial code |
| * [430]12890 (c++) ICE on compilation of class with throwing method |
| * [431]12900 (c++) ICE in rtl_verify_flow_info_1 |
| * [432]13060 (fortran) ICE in fixup_var_refs_1, in function.c on |
| correct code with -O2 -fno-force-mem |
| * [433]13289 (c++) ICE in regenerate_decl_from_template on recursive |
| template |
| * [434]13318 ICE: floating point exception in the loop optimizer |
| * [435]13392 (c++) ICE in convert_from_eh_region_ranges_1, in |
| except.c |
| * [436]13574 (c++) invalid array default initializer in class lets |
| gcc consume all memory and die |
| * [437]13475 ICE on SIMD variables with partial value initialization |
| * [438]13797 (c++) ICE on invalid template parameter |
| * [439]13824 (java) gcj SEGV with simple .java program |
| |
| C and optimization bugs |
| |
| * [440]8776 loop invariants are not removed (most likely) |
| * [441]10339 [sparc,ppc,ppc64] Invalid optimization: replacing |
| strncmp by memcmp |
| * [442]11350 undefined labels with -Os -fPIC |
| * [443]12826 Optimizer removes reference through volatile pointer |
| * [444]12500 stabs debug info: void no longer a predefined / builtin |
| type |
| * [445]12941 builtin-bitops-1.c miscompilation (latent bug) |
| * [446]12953 tree inliner bug (in inline_forbidden_p) and fix |
| * [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled |
| * [448]13507 spurious printf format warning |
| * [449]13382 Type information for const pointer disappears during |
| optimization. |
| * [450]13394 noreturn attribute ignored on recursive invokation |
| * [451]13400 Compiled code crashes storing to read-only location |
| * [452]13521 Endless loop in calculate_global_regs_live |
| |
| C++ compiler and library |
| |
| Some of the bug fixes in this list were made to implement decisions |
| that the ISO C++ standards committee has made concerning several defect |
| reports (DRs). Links in the list below point to detailed discussion of |
| the relevant defect report. |
| * [453]2094 unimplemented: use of `ptrmem_cst' in template type |
| unification |
| * [454]2294 using declaration confusion |
| * [455]5050 template instantiation depth exceeds limit: recursion |
| problem? |
| * [456]9371 Bad exception handling in |
| i/ostream::operator>>/<<(streambuf*) |
| * [457]9546 bad exception handling in ostream members |
| * [458]10081 basic_ios::_M_cache_locale leaves NULL members in the |
| face of unknown locales |
| * [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work |
| * [461]10095 istream::operator>>(int&) sets ios::badbit when |
| ios::failbit is set. |
| * [462]11554 Warning about reordering of initializers doesn't mention |
| location of constructor |
| * [463]12297 istream::sentry::sentry() handles eof() incorrectly. |
| * [464]12352 Exception safety problems in src/localename.cc |
| * [465]12438 Memory leak in locale::combine() |
| * [466]12540 Memory leak in locale::locale(const char*) |
| * [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented |
| * [470]12657 Resolution of [471]DR 292 (WP) still unimplemented |
| * [472]12696 memory eating infinite loop in diagnostics (error |
| recovery problem) |
| * [473]12815 Code compiled with optimization behaves unexpectedly |
| * [474]12862 Conflicts between typedefs/enums and namespace member |
| declarations |
| * [475]12926 Wrong value after assignment in initialize list using |
| bit-fields |
| * [476]12967 Resolution of [477]DR 300 [WP] still unimplemented |
| * [478]12971 Resolution of [479]DR 328 [WP] still unimplemented |
| * [480]13007 basic_streambuf::pubimbue, imbue wrong |
| * [481]13009 Implicitly-defined assignment operator writes to wrong |
| memory |
| * [482]13057 regparm attribute not applied to destructor |
| * [483]13070 -Wformat option ignored in g++ |
| * [484]13081 forward template declarations in <complex> let inlining |
| fail |
| * [485]13239 Assertion does not seem to work correctly anymore |
| * [486]13262 "xxx is private within this context" when initializing a |
| self-contained template class |
| * [487]13290 simple typo in concept checking for std::generate_n |
| * [488]13323 Template code does not compile in presence of typedef |
| * [489]13369 __verify_grouping (and __add_grouping?) not correct |
| * [490]13371 infinite loop with packed struct and inlining |
| * [491]13445 Template argument replacement "dereferences" a typedef |
| * [492]13461 Fails to access protected-ctor from public constant |
| * [493]13462 Non-standard-conforming type set::pointer |
| * [494]13478 gcc uses wrong constructor to initialize a const |
| reference |
| * [495]13544 "conflicting types" for enums in different scopes |
| * [496]13650 string::compare should not (always) use |
| traits_type::length() |
| * [497]13683 bogus warning about passing non-PODs through ellipsis |
| * [498]13688 Derived class is denied access to protected base class |
| member class |
| * [499]13774 Member variable cleared in virtual multiple inheritance |
| class |
| * [500]13884 Protect sstream.tcc from extern template use |
| |
| Java compiler and library |
| |
| * [501]10746 [win32] garbage collection crash in GCJ |
| |
| Objective-C compiler and library |
| |
| * [502]11433 Crash due to dereferencing null pointer when querying |
| protocol |
| |
| Fortran compiler and library |
| |
| * [503]12633 logical expression gives incorrect result with |
| -fugly-logint option |
| * [504]13037 [gcse-lm] g77 generates incorrect code |
| * [505]13213 Hex constant problem when compiling with -fugly-logint |
| and -ftypeless-boz |
| |
| x86-specific (Intel/AMD) |
| |
| * [506]4490 ICE with -m128bit-long-double |
| * [507]12292 [x86_64] ICE: RTL check: expected code `const_int', have |
| `reg' in make_field_assignment, in combine.c |
| * [508]12441 ICE: can't find a register to spill |
| * [509]12943 array static-init failure under -fpic, -fPIC |
| * [510]13608 Incorrect code with -O3 -ffast-math |
| |
| PowerPC-specific |
| |
| * [511]11598 testcase gcc.dg/20020118-1.c fails runtime check of |
| __attribute__((aligned(16))) |
| * [512]11793 ICE in extract_insn, in recog.c (const_vector's) |
| * [513]12467 vmsumubm emitted when vmsummbm appropriate (typo in |
| altivec.md) |
| * [514]12537 g++ generates writeable text sections |
| |
| SPARC-specific |
| |
| * [515]12496 wrong result for __atomic_add(&value, -1) when using -O0 |
| -m64 |
| * [516]12865 mprotect call to make trampoline executable may fail |
| * [517]13354 ICE in sparc_emit_set_const32 |
| |
| ARM-specific |
| |
| * [518]10467 [arm] ICE in pre_insert_copy_insn, |
| |
| ia64-specific |
| |
| * [519]11226 ICE passing struct arg with two floats |
| * [520]11227 ICE for _Complex float, _Complex long double args |
| * [521]12644 GCC 3.3.2 fails to compile glibc on ia64 |
| * [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn |
| * Various fixes for libunwind |
| |
| Alpha-specific |
| |
| * [523]12654 Incorrect comparison code generated for Alpha |
| * [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2 |
| * [525]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2 |
| |
| HPPA-specific |
| |
| * [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c |
| * [527]12158 [hppa] compilation does not terminate at -O1 |
| |
| S390-specific |
| |
| * [528]11992 Wrong built-in code for memcmp with length 1<<24: only |
| (1<<24)-1 possible for CLCL-Instruction |
| |
| SH-specific |
| |
| * [529]9365 segfault in gen_far_branch (config/sh/sh.c) |
| * [530]10392 optimizer generates faulty array indexing |
| * [531]11322 SH profiler outputs multiple definitions of symbol |
| * [532]13069 gcc/config/sh/rtems.h broken |
| * [533]13302 Putting a va_list in a struct causes seg fault |
| * [534]13585 Incorrect optimization of call to sfunc |
| * Fix inappropriately exported libgcc functions from the shared |
| library |
| |
| Other embedded target specific |
| |
| * [535]8916 [mcore] unsigned char assign gets hosed. |
| * [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c |
| * [537]13122 [h8300] local variable gets corrupted by function call |
| when -fomit-frame-pointer is given |
| * [538]13256 [cris] strict_low_part mistreated in delay slots |
| * [539]13373 [mcore] optimization with -frerun-cse-after-loop |
| -fexpensive-optimizations produces wrong code on mcore |
| |
| GNU HURD-specific |
| |
| * [540]12561 gcc/config/t-gnu needs updating to work with |
| --with-sysroot |
| |
| Tru64 Unix specific |
| |
| * [541]6243 testsuite fails almost all tests due to no libintl in |
| LD_LIBRARY_PATH during test. |
| * [542]11397 weak aliases broken on Tru64 UNIX |
| |
| AIX-specific |
| |
| * [543]12505 build failure due to defines of uchar in cpphash.h and |
| sys/types.h |
| * [544]13150 WEAK symbols not exported by collect2 |
| |
| IRIX-specific |
| |
| * [545]12666 fixincludes problem on IRIX 6.5.19m |
| |
| Solaris-specific |
| |
| * [546]12969 Including sys/byteorder.h breaks configure checks |
| |
| Testsuite problems (compiler is not affected) |
| |
| * [547]10819 testsuite creates CR+LF on compiler version lines in |
| test summary files |
| * [548]11612 abi_check not finding correct libgcc_s.so.1 |
| |
| Miscellaneous |
| |
| * [549]13211 using -###, incorrect warnings about unused linker file |
| are produced |
| __________________________________________________________________ |
| |
| GCC 3.3.4 |
| |
| This is the [550]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.3.4 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| __________________________________________________________________ |
| |
| GCC 3.3.5 |
| |
| This is the [551]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.3.5 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| __________________________________________________________________ |
| |
| GCC 3.3.6 |
| |
| This is the [552]list of problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.3.6 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). |
| |
| Please send FSF & GNU inquiries & questions to [553]gnu@gnu.org. There |
| are also [554]other ways to contact the FSF. |
| |
| These pages are maintained by [555]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [556]GCC manuals. If that fails, the |
| [557]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [558]gcc@gnu.org or |
| [559]gcc@gcc.gnu.org. All of our lists have [560]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-08-20 [561]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 |
| 2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems |
| 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems |
| 4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute |
| 5. http://gcc.gnu.org/news/dfa.html |
| 6. http://gcc.gnu.org/gcc-3.3/c99status.html |
| 7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html |
| 8. http://gcc.gnu.org/PR10140 |
| 9. http://gcc.gnu.org/PR10198 |
| 10. http://gcc.gnu.org/PR10338 |
| 11. http://gcc.gnu.org/PR3581 |
| 12. http://gcc.gnu.org/PR4382 |
| 13. http://gcc.gnu.org/PR5533 |
| 14. http://gcc.gnu.org/PR6387 |
| 15. http://gcc.gnu.org/PR6412 |
| 16. http://gcc.gnu.org/PR6620 |
| 17. http://gcc.gnu.org/PR6663 |
| 18. http://gcc.gnu.org/PR7068 |
| 19. http://gcc.gnu.org/PR7083 |
| 20. http://gcc.gnu.org/PR7647 |
| 21. http://gcc.gnu.org/PR7675 |
| 22. http://gcc.gnu.org/PR7718 |
| 23. http://gcc.gnu.org/PR8116 |
| 24. http://gcc.gnu.org/PR8358 |
| 25. http://gcc.gnu.org/PR8511 |
| 26. http://gcc.gnu.org/PR8564 |
| 27. http://gcc.gnu.org/PR8660 |
| 28. http://gcc.gnu.org/PR8766 |
| 29. http://gcc.gnu.org/PR8803 |
| 30. http://gcc.gnu.org/PR8846 |
| 31. http://gcc.gnu.org/PR8906 |
| 32. http://gcc.gnu.org/PR9216 |
| 33. http://gcc.gnu.org/PR9261 |
| 34. http://gcc.gnu.org/PR9263 |
| 35. http://gcc.gnu.org/PR9429 |
| 36. http://gcc.gnu.org/PR9516 |
| 37. http://gcc.gnu.org/PR9600 |
| 38. http://gcc.gnu.org/PR9629 |
| 39. http://gcc.gnu.org/PR9672 |
| 40. http://gcc.gnu.org/PR9749 |
| 41. http://gcc.gnu.org/PR9794 |
| 42. http://gcc.gnu.org/PR9829 |
| 43. http://gcc.gnu.org/PR9916 |
| 44. http://gcc.gnu.org/PR9936 |
| 45. http://gcc.gnu.org/PR10262 |
| 46. http://gcc.gnu.org/PR10278 |
| 47. http://gcc.gnu.org/PR10446 |
| 48. http://gcc.gnu.org/PR10451 |
| 49. http://gcc.gnu.org/PR10506 |
| 50. http://gcc.gnu.org/PR10549 |
| 51. http://gcc.gnu.org/PR2001 |
| 52. http://gcc.gnu.org/PR2391 |
| 53. http://gcc.gnu.org/PR2960 |
| 54. http://gcc.gnu.org/PR4046 |
| 55. http://gcc.gnu.org/PR6405 |
| 56. http://gcc.gnu.org/PR6798 |
| 57. http://gcc.gnu.org/PR6871 |
| 58. http://gcc.gnu.org/PR6909 |
| 59. http://gcc.gnu.org/PR7189 |
| 60. http://gcc.gnu.org/PR7642 |
| 61. http://gcc.gnu.org/PR8634 |
| 62. http://gcc.gnu.org/PR8750 |
| 63. http://gcc.gnu.org/PR2161 |
| 64. http://gcc.gnu.org/PR4319 |
| 65. http://gcc.gnu.org/PR8602 |
| 66. http://gcc.gnu.org/PR9177 |
| 67. http://gcc.gnu.org/PR9853 |
| 68. http://gcc.gnu.org/PR45 |
| 69. http://gcc.gnu.org/PR3784 |
| 70. http://gcc.gnu.org/PR764 |
| 71. http://gcc.gnu.org/PR5116 |
| 72. http://gcc.gnu.org/PR2862 |
| 73. http://gcc.gnu.org/PR3663 |
| 74. http://gcc.gnu.org/PR3797 |
| 75. http://gcc.gnu.org/PR3948 |
| 76. http://gcc.gnu.org/PR4137 |
| 77. http://gcc.gnu.org/PR4361 |
| 78. http://gcc.gnu.org/PR4802 |
| 79. http://gcc.gnu.org/PR5837 |
| 80. http://gcc.gnu.org/PR4803 |
| 81. http://gcc.gnu.org/PR5094 |
| 82. http://gcc.gnu.org/PR5730 |
| 83. http://gcc.gnu.org/PR6713 |
| 84. http://gcc.gnu.org/PR7015 |
| 85. http://gcc.gnu.org/PR7086 |
| 86. http://gcc.gnu.org/PR7099 |
| 87. http://gcc.gnu.org/PR7247 |
| 88. http://gcc.gnu.org/PR7441 |
| 89. http://gcc.gnu.org/PR7768 |
| 90. http://gcc.gnu.org/PR7804 |
| 91. http://gcc.gnu.org/PR8099 |
| 92. http://gcc.gnu.org/PR8117 |
| 93. http://gcc.gnu.org/PR8205 |
| 94. http://gcc.gnu.org/PR8645 |
| 95. http://gcc.gnu.org/PR8724 |
| 96. http://gcc.gnu.org/PR8805 |
| 97. http://gcc.gnu.org/PR8691 |
| 98. http://gcc.gnu.org/PR8700 |
| 99. http://gcc.gnu.org/PR8724 |
| 100. http://gcc.gnu.org/PR8949 |
| 101. http://gcc.gnu.org/PR9016 |
| 102. http://gcc.gnu.org/PR9053 |
| 103. http://gcc.gnu.org/PR9152 |
| 104. http://gcc.gnu.org/PR9182 |
| 105. http://gcc.gnu.org/PR9297 |
| 106. http://gcc.gnu.org/PR9318 |
| 107. http://gcc.gnu.org/PR9320 |
| 108. http://gcc.gnu.org/PR9400 |
| 109. http://gcc.gnu.org/PR9424 |
| 110. http://gcc.gnu.org/PR9425 |
| 111. http://gcc.gnu.org/PR9439 |
| 112. http://gcc.gnu.org/PR9474 |
| 113. http://gcc.gnu.org/PR9548 |
| 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 |
| 115. http://gcc.gnu.org/PR9555 |
| 116. http://gcc.gnu.org/PR9561 |
| 117. http://gcc.gnu.org/PR9563 |
| 118. http://gcc.gnu.org/PR9582 |
| 119. http://gcc.gnu.org/PR9622 |
| 120. http://gcc.gnu.org/PR9683 |
| 121. http://gcc.gnu.org/PR9791 |
| 122. http://gcc.gnu.org/PR9817 |
| 123. http://gcc.gnu.org/PR9825 |
| 124. http://gcc.gnu.org/PR9826 |
| 125. http://gcc.gnu.org/PR9924 |
| 126. http://gcc.gnu.org/PR9946 |
| 127. http://gcc.gnu.org/PR9964 |
| 128. http://gcc.gnu.org/PR9988 |
| 129. http://gcc.gnu.org/PR10033 |
| 130. http://gcc.gnu.org/PR10097 |
| 131. http://gcc.gnu.org/PR10132 |
| 132. http://gcc.gnu.org/PR10180 |
| 133. http://gcc.gnu.org/PR10199 |
| 134. http://gcc.gnu.org/PR10300 |
| 135. http://gcc.gnu.org/PR10427 |
| 136. http://gcc.gnu.org/PR10503 |
| 137. http://gcc.gnu.org/PR5956 |
| 138. http://gcc.gnu.org/PR1832 |
| 139. http://gcc.gnu.org/PR3924 |
| 140. http://gcc.gnu.org/PR5634 |
| 141. http://gcc.gnu.org/PR6367 |
| 142. http://gcc.gnu.org/PR6491 |
| 143. http://gcc.gnu.org/PR6742 |
| 144. http://gcc.gnu.org/PR7113 |
| 145. http://gcc.gnu.org/PR7236 |
| 146. http://gcc.gnu.org/PR7278 |
| 147. http://gcc.gnu.org/PR7384 |
| 148. http://gcc.gnu.org/PR7388 |
| 149. http://gcc.gnu.org/PR8587 |
| 150. http://gcc.gnu.org/PR9038 |
| 151. http://gcc.gnu.org/PR10197 |
| 152. http://gcc.gnu.org/PR6005 |
| 153. http://gcc.gnu.org/PR6389 |
| 154. http://gcc.gnu.org/PR6576 |
| 155. http://gcc.gnu.org/PR6652 |
| 156. http://gcc.gnu.org/PR7060 |
| 157. http://gcc.gnu.org/PR7073 |
| 158. http://gcc.gnu.org/PR7180 |
| 159. http://gcc.gnu.org/PR7416 |
| 160. http://gcc.gnu.org/PR7570 |
| 161. http://gcc.gnu.org/PR7578 |
| 162. http://gcc.gnu.org/PR7611 |
| 163. http://gcc.gnu.org/PR7709 |
| 164. http://gcc.gnu.org/PR7766 |
| 165. http://gcc.gnu.org/PR7785 |
| 166. http://gcc.gnu.org/PR7786 |
| 167. http://gcc.gnu.org/PR8142 |
| 168. http://gcc.gnu.org/PR8234 |
| 169. http://gcc.gnu.org/PR8415 |
| 170. http://gcc.gnu.org/PR8481 |
| 171. http://gcc.gnu.org/PR8593 |
| 172. http://gcc.gnu.org/PR8759 |
| 173. http://gcc.gnu.org/PR8997 |
| 174. http://gcc.gnu.org/PR9253 |
| 175. http://gcc.gnu.org/PR9254 |
| 176. http://gcc.gnu.org/PR9271 |
| 177. http://gcc.gnu.org/PR6767 |
| 178. http://gcc.gnu.org/PR9911 |
| 179. http://gcc.gnu.org/PR10020 |
| 180. http://gcc.gnu.org/PR10546 |
| 181. http://gcc.gnu.org/PR7029 |
| 182. http://gcc.gnu.org/PR2903 |
| 183. http://gcc.gnu.org/PR7873 |
| 184. http://gcc.gnu.org/PR7680 |
| 185. http://gcc.gnu.org/PR8705 |
| 186. http://gcc.gnu.org/PR9986 |
| 187. http://gcc.gnu.org/PR10056 |
| 188. http://gcc.gnu.org/PR6744 |
| 189. http://gcc.gnu.org/PR7361 |
| 190. http://gcc.gnu.org/PR9496 |
| 191. http://gcc.gnu.org/PR7067 |
| 192. http://gcc.gnu.org/PR8480 |
| 193. http://gcc.gnu.org/PR8784 |
| 194. http://gcc.gnu.org/PR10315 |
| 195. http://gcc.gnu.org/PR10267 |
| 196. http://gcc.gnu.org/PR7916 |
| 197. http://gcc.gnu.org/PR7926 |
| 198. http://gcc.gnu.org/PR8555 |
| 199. http://gcc.gnu.org/PR8994 |
| 200. http://gcc.gnu.org/PR9426 |
| 201. http://gcc.gnu.org/PR9806 |
| 202. http://gcc.gnu.org/PR10077 |
| 203. http://gcc.gnu.org/PR10233 |
| 204. http://gcc.gnu.org/PR10286 |
| 205. http://gcc.gnu.org/PR10308 |
| 206. http://gcc.gnu.org/PR11272 |
| 207. http://gcc.gnu.org/PR5754 |
| 208. http://gcc.gnu.org/PR6597 |
| 209. http://gcc.gnu.org/PR6949 |
| 210. http://gcc.gnu.org/PR7053 |
| 211. http://gcc.gnu.org/PR8164 |
| 212. http://gcc.gnu.org/PR8384 |
| 213. http://gcc.gnu.org/PR9559 |
| 214. http://gcc.gnu.org/PR9649 |
| 215. http://gcc.gnu.org/PR9864 |
| 216. http://gcc.gnu.org/PR10432 |
| 217. http://gcc.gnu.org/PR10475 |
| 218. http://gcc.gnu.org/PR10635 |
| 219. http://gcc.gnu.org/PR10661 |
| 220. http://gcc.gnu.org/PR10700 |
| 221. http://gcc.gnu.org/PR10712 |
| 222. http://gcc.gnu.org/PR10796 |
| 223. http://gcc.gnu.org/PR10890 |
| 224. http://gcc.gnu.org/PR10939 |
| 225. http://gcc.gnu.org/PR10956 |
| 226. http://gcc.gnu.org/PR11041 |
| 227. http://gcc.gnu.org/PR11059 |
| 228. http://gcc.gnu.org/PR11083 |
| 229. http://gcc.gnu.org/PR11105 |
| 230. http://gcc.gnu.org/PR11149 |
| 231. http://gcc.gnu.org/PR11228 |
| 232. http://gcc.gnu.org/PR11282 |
| 233. http://gcc.gnu.org/PR11301 |
| 234. http://gcc.gnu.org/PR11308 |
| 235. http://gcc.gnu.org/PR11473 |
| 236. http://gcc.gnu.org/PR11503 |
| 237. http://gcc.gnu.org/PR11513 |
| 238. http://gcc.gnu.org/PR11198 |
| 239. http://gcc.gnu.org/PR11304 |
| 240. http://gcc.gnu.org/PR11381 |
| 241. http://gcc.gnu.org/PR11536 |
| 242. http://gcc.gnu.org/PR11557 |
| 243. http://gcc.gnu.org/PR5897 |
| 244. http://gcc.gnu.org/PR11279 |
| 245. http://gcc.gnu.org/PR11022 |
| 246. http://gcc.gnu.org/PR2330 |
| 247. http://gcc.gnu.org/PR5388 |
| 248. http://gcc.gnu.org/PR5390 |
| 249. http://gcc.gnu.org/PR7877 |
| 250. http://gcc.gnu.org/PR9393 |
| 251. http://gcc.gnu.org/PR10032 |
| 252. http://gcc.gnu.org/PR10468 |
| 253. http://gcc.gnu.org/PR10527 |
| 254. http://gcc.gnu.org/PR10679 |
| 255. http://gcc.gnu.org/PR10682 |
| 256. http://gcc.gnu.org/PR10689 |
| 257. http://gcc.gnu.org/PR10845 |
| 258. http://gcc.gnu.org/PR10849 |
| 259. http://gcc.gnu.org/PR10888 |
| 260. http://gcc.gnu.org/PR10929 |
| 261. http://gcc.gnu.org/PR10931 |
| 262. http://gcc.gnu.org/PR10940 |
| 263. http://gcc.gnu.org/PR10968 |
| 264. http://gcc.gnu.org/PR10990 |
| 265. http://gcc.gnu.org/PR11039 |
| 266. http://gcc.gnu.org/PR11062 |
| 267. http://gcc.gnu.org/PR11095 |
| 268. http://gcc.gnu.org/PR11098 |
| 269. http://gcc.gnu.org/PR11137 |
| 270. http://gcc.gnu.org/PR11154 |
| 271. http://gcc.gnu.org/PR11329 |
| 272. http://gcc.gnu.org/PR11332 |
| 273. http://gcc.gnu.org/PR11431 |
| 274. http://gcc.gnu.org/PR11528 |
| 275. http://gcc.gnu.org/PR11546 |
| 276. http://gcc.gnu.org/PR11567 |
| 277. http://gcc.gnu.org/PR11645 |
| 278. http://gcc.gnu.org/PR5179 |
| 279. http://gcc.gnu.org/PR8204 |
| 280. http://gcc.gnu.org/PR10838 |
| 281. http://gcc.gnu.org/PR10886 |
| 282. http://gcc.gnu.org/PR11349 |
| 283. http://gcc.gnu.org/PR4823 |
| 284. http://gcc.gnu.org/PR8878 |
| 285. http://gcc.gnu.org/PR9815 |
| 286. http://gcc.gnu.org/PR10402 |
| 287. http://gcc.gnu.org/PR10504 |
| 288. http://gcc.gnu.org/PR10673 |
| 289. http://gcc.gnu.org/PR11044 |
| 290. http://gcc.gnu.org/PR11089 |
| 291. http://gcc.gnu.org/PR11420 |
| 292. http://gcc.gnu.org/PR9362 |
| 293. http://gcc.gnu.org/PR10142 |
| 294. http://gcc.gnu.org/PR10663 |
| 295. http://gcc.gnu.org/PR10835 |
| 296. http://gcc.gnu.org/PR10876 |
| 297. http://gcc.gnu.org/PR10955 |
| 298. http://gcc.gnu.org/PR11018 |
| 299. http://gcc.gnu.org/PR11556 |
| 300. http://gcc.gnu.org/PR10907 |
| 301. http://gcc.gnu.org/PR11320 |
| 302. http://gcc.gnu.org/PR11599 |
| 303. http://gcc.gnu.org/PR9745 |
| 304. http://gcc.gnu.org/PR10871 |
| 305. http://gcc.gnu.org/PR11440 |
| 306. http://gcc.gnu.org/PR7594 |
| 307. http://gcc.gnu.org/PR10557 |
| 308. http://gcc.gnu.org/PR11054 |
| 309. http://gcc.gnu.org/PR10834 |
| 310. http://gcc.gnu.org/PR10842 |
| 311. http://gcc.gnu.org/PR11052 |
| 312. http://gcc.gnu.org/PR11183 |
| 313. http://gcc.gnu.org/PR11084 |
| 314. http://gcc.gnu.org/PR10331 |
| 315. http://gcc.gnu.org/PR10413 |
| 316. http://gcc.gnu.org/PR11096 |
| 317. http://gcc.gnu.org/PR2873 |
| 318. http://gcc.gnu.org/PR3163 |
| 319. http://gcc.gnu.org/PR5287 |
| 320. http://gcc.gnu.org/PR10148 |
| 321. http://gcc.gnu.org/PR8787 |
| 322. http://gcc.gnu.org/PR10900 |
| 323. http://gcc.gnu.org/PR1607 |
| 324. http://gcc.gnu.org/PR4252 |
| 325. http://gcc.gnu.org/PR4490 |
| 326. http://gcc.gnu.org/PR10355 |
| 327. http://gcc.gnu.org/PR10726 |
| 328. http://gcc.gnu.org/PR10805 |
| 329. http://gcc.gnu.org/PR10815 |
| 330. http://gcc.gnu.org/PR10877 |
| 331. http://gcc.gnu.org/PR11280 |
| 332. http://gcc.gnu.org/PR11466 |
| 333. http://gcc.gnu.org/PR10737 |
| 334. http://gcc.gnu.org/PR10810 |
| 335. http://gcc.gnu.org/bugzilla/ |
| 336. http://gcc.gnu.org/PR8336 |
| 337. http://gcc.gnu.org/PR9330 |
| 338. http://gcc.gnu.org/PR9631 |
| 339. http://gcc.gnu.org/PR9877 |
| 340. http://gcc.gnu.org/PR11687 |
| 341. http://gcc.gnu.org/PR12263 |
| 342. http://gcc.gnu.org/PR12490 |
| 343. http://gcc.gnu.org/PR7277 |
| 344. http://gcc.gnu.org/PR7939 |
| 345. http://gcc.gnu.org/PR11063 |
| 346. http://gcc.gnu.org/PR11207 |
| 347. http://gcc.gnu.org/PR11522 |
| 348. http://gcc.gnu.org/PR11595 |
| 349. http://gcc.gnu.org/PR11646 |
| 350. http://gcc.gnu.org/PR11665 |
| 351. http://gcc.gnu.org/PR11852 |
| 352. http://gcc.gnu.org/PR11878 |
| 353. http://gcc.gnu.org/PR11883 |
| 354. http://gcc.gnu.org/PR11991 |
| 355. http://gcc.gnu.org/PR12146 |
| 356. http://gcc.gnu.org/PR12215 |
| 357. http://gcc.gnu.org/PR12369 |
| 358. http://gcc.gnu.org/PR12446 |
| 359. http://gcc.gnu.org/PR12510 |
| 360. http://gcc.gnu.org/PR12544 |
| 361. http://gcc.gnu.org/PR9862 |
| 362. http://gcc.gnu.org/PR10962 |
| 363. http://gcc.gnu.org/PR11370 |
| 364. http://gcc.gnu.org/PR11637 |
| 365. http://gcc.gnu.org/PR11885 |
| 366. http://gcc.gnu.org/PR12082 |
| 367. http://gcc.gnu.org/PR12180 |
| 368. http://gcc.gnu.org/PR12340 |
| 369. http://gcc.gnu.org/PR3907 |
| 370. http://gcc.gnu.org/PR5293 |
| 371. http://gcc.gnu.org/PR5296 |
| 372. http://gcc.gnu.org/PR7939 |
| 373. http://gcc.gnu.org/PR8656 |
| 374. http://gcc.gnu.org/PR10147 |
| 375. http://gcc.gnu.org/PR11400 |
| 376. http://gcc.gnu.org/PR11409 |
| 377. http://gcc.gnu.org/PR11740 |
| 378. http://gcc.gnu.org/PR11786 |
| 379. http://gcc.gnu.org/PR11867 |
| 380. http://gcc.gnu.org/PR11928 |
| 381. http://gcc.gnu.org/PR12114 |
| 382. http://gcc.gnu.org/PR12163 |
| 383. http://gcc.gnu.org/PR12181 |
| 384. http://gcc.gnu.org/PR12236 |
| 385. http://gcc.gnu.org/PR12266 |
| 386. http://gcc.gnu.org/PR12296 |
| 387. http://gcc.gnu.org/PR12298 |
| 388. http://gcc.gnu.org/PR12369 |
| 389. http://gcc.gnu.org/PR12337 |
| 390. http://gcc.gnu.org/PR12344 |
| 391. http://gcc.gnu.org/PR12451 |
| 392. http://gcc.gnu.org/PR12486 |
| 393. http://gcc.gnu.org/PR8869 |
| 394. http://gcc.gnu.org/PR9786 |
| 395. http://gcc.gnu.org/PR11689 |
| 396. http://gcc.gnu.org/PR12116 |
| 397. http://gcc.gnu.org/PR12070 |
| 398. http://gcc.gnu.org/PR11184 |
| 399. http://gcc.gnu.org/PR11535 |
| 400. http://gcc.gnu.org/PR11693 |
| 401. http://gcc.gnu.org/PR12224 |
| 402. http://gcc.gnu.org/PR11087 |
| 403. http://gcc.gnu.org/PR11319 |
| 404. http://gcc.gnu.org/PR11949 |
| 405. http://gcc.gnu.org/PR11662 |
| 406. http://gcc.gnu.org/PR11965 |
| 407. http://gcc.gnu.org/PR12301 |
| 408. http://gcc.gnu.org/PR11717 |
| 409. http://gcc.gnu.org/PR11313 |
| 410. http://gcc.gnu.org/PR11712 |
| 411. http://gcc.gnu.org/PR12166 |
| 412. http://gcc.gnu.org/PR12101 |
| 413. http://gcc.gnu.org/PR10988 |
| 414. http://gcc.gnu.org/PR11805 |
| 415. http://gcc.gnu.org/PR11902 |
| 416. http://gcc.gnu.org/PR11903 |
| 417. http://gcc.gnu.org/bugzilla/ |
| 418. http://gcc.gnu.org/PR11890 |
| 419. http://gcc.gnu.org/PR12399 |
| 420. http://gcc.gnu.org/PR13068 |
| 421. http://gcc.gnu.org/PR10060 |
| 422. http://gcc.gnu.org/PR10555 |
| 423. http://gcc.gnu.org/PR10706 |
| 424. http://gcc.gnu.org/PR11496 |
| 425. http://gcc.gnu.org/PR11741 |
| 426. http://gcc.gnu.org/PR12440 |
| 427. http://gcc.gnu.org/PR12632 |
| 428. http://gcc.gnu.org/PR12712 |
| 429. http://gcc.gnu.org/PR12726 |
| 430. http://gcc.gnu.org/PR12890 |
| 431. http://gcc.gnu.org/PR12900 |
| 432. http://gcc.gnu.org/PR13060 |
| 433. http://gcc.gnu.org/PR13289 |
| 434. http://gcc.gnu.org/PR13318 |
| 435. http://gcc.gnu.org/PR13392 |
| 436. http://gcc.gnu.org/PR13574 |
| 437. http://gcc.gnu.org/PR13475 |
| 438. http://gcc.gnu.org/PR13797 |
| 439. http://gcc.gnu.org/PR13824 |
| 440. http://gcc.gnu.org/PR8776 |
| 441. http://gcc.gnu.org/PR10339 |
| 442. http://gcc.gnu.org/PR11350 |
| 443. http://gcc.gnu.org/PR12826 |
| 444. http://gcc.gnu.org/PR12500 |
| 445. http://gcc.gnu.org/PR12941 |
| 446. http://gcc.gnu.org/PR12953 |
| 447. http://gcc.gnu.org/PR13041 |
| 448. http://gcc.gnu.org/PR13507 |
| 449. http://gcc.gnu.org/PR13382 |
| 450. http://gcc.gnu.org/PR13394 |
| 451. http://gcc.gnu.org/PR13400 |
| 452. http://gcc.gnu.org/PR13521 |
| 453. http://gcc.gnu.org/PR2094 |
| 454. http://gcc.gnu.org/PR2294 |
| 455. http://gcc.gnu.org/PR5050 |
| 456. http://gcc.gnu.org/PR9371 |
| 457. http://gcc.gnu.org/PR9546 |
| 458. http://gcc.gnu.org/PR10081 |
| 459. http://gcc.gnu.org/PR10093 |
| 460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 |
| 461. http://gcc.gnu.org/PR10095 |
| 462. http://gcc.gnu.org/PR11554 |
| 463. http://gcc.gnu.org/PR12297 |
| 464. http://gcc.gnu.org/PR12352 |
| 465. http://gcc.gnu.org/PR12438 |
| 466. http://gcc.gnu.org/PR12540 |
| 467. http://gcc.gnu.org/PR12594 |
| 468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 |
| 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 |
| 470. http://gcc.gnu.org/PR12657 |
| 471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 |
| 472. http://gcc.gnu.org/PR12696 |
| 473. http://gcc.gnu.org/PR12815 |
| 474. http://gcc.gnu.org/PR12862 |
| 475. http://gcc.gnu.org/PR12926 |
| 476. http://gcc.gnu.org/PR12967 |
| 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html |
| 478. http://gcc.gnu.org/PR12971 |
| 479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 |
| 480. http://gcc.gnu.org/PR13007 |
| 481. http://gcc.gnu.org/PR13009 |
| 482. http://gcc.gnu.org/PR13057 |
| 483. http://gcc.gnu.org/PR13070 |
| 484. http://gcc.gnu.org/PR13081 |
| 485. http://gcc.gnu.org/PR13239 |
| 486. http://gcc.gnu.org/PR13262 |
| 487. http://gcc.gnu.org/PR13290 |
| 488. http://gcc.gnu.org/PR13323 |
| 489. http://gcc.gnu.org/PR13369 |
| 490. http://gcc.gnu.org/PR13371 |
| 491. http://gcc.gnu.org/PR13445 |
| 492. http://gcc.gnu.org/PR13461 |
| 493. http://gcc.gnu.org/PR13462 |
| 494. http://gcc.gnu.org/PR13478 |
| 495. http://gcc.gnu.org/PR13544 |
| 496. http://gcc.gnu.org/PR13650 |
| 497. http://gcc.gnu.org/PR13683 |
| 498. http://gcc.gnu.org/PR13688 |
| 499. http://gcc.gnu.org/PR13774 |
| 500. http://gcc.gnu.org/PR13884 |
| 501. http://gcc.gnu.org/PR10746 |
| 502. http://gcc.gnu.org/PR11433 |
| 503. http://gcc.gnu.org/PR12633 |
| 504. http://gcc.gnu.org/PR13037 |
| 505. http://gcc.gnu.org/PR13213 |
| 506. http://gcc.gnu.org/PR4490 |
| 507. http://gcc.gnu.org/PR12292 |
| 508. http://gcc.gnu.org/PR12441 |
| 509. http://gcc.gnu.org/PR12943 |
| 510. http://gcc.gnu.org/PR13608 |
| 511. http://gcc.gnu.org/PR11598 |
| 512. http://gcc.gnu.org/PR11793 |
| 513. http://gcc.gnu.org/PR12467 |
| 514. http://gcc.gnu.org/PR12537 |
| 515. http://gcc.gnu.org/PR12496 |
| 516. http://gcc.gnu.org/PR12865 |
| 517. http://gcc.gnu.org/PR13354 |
| 518. http://gcc.gnu.org/PR10467 |
| 519. http://gcc.gnu.org/PR11226 |
| 520. http://gcc.gnu.org/PR11227 |
| 521. http://gcc.gnu.org/PR12644 |
| 522. http://gcc.gnu.org/PR13149 |
| 523. http://gcc.gnu.org/PR12654 |
| 524. http://gcc.gnu.org/PR12965 |
| 525. http://gcc.gnu.org/PR13031 |
| 526. http://gcc.gnu.org/PR11634 |
| 527. http://gcc.gnu.org/PR12158 |
| 528. http://gcc.gnu.org/PR11992 |
| 529. http://gcc.gnu.org/PR9365 |
| 530. http://gcc.gnu.org/PR10392 |
| 531. http://gcc.gnu.org/PR11322 |
| 532. http://gcc.gnu.org/PR13069 |
| 533. http://gcc.gnu.org/PR13302 |
| 534. http://gcc.gnu.org/PR13585 |
| 535. http://gcc.gnu.org/PR8916 |
| 536. http://gcc.gnu.org/PR11576 |
| 537. http://gcc.gnu.org/PR13122 |
| 538. http://gcc.gnu.org/PR13256 |
| 539. http://gcc.gnu.org/PR13373 |
| 540. http://gcc.gnu.org/PR12561 |
| 541. http://gcc.gnu.org/PR6243 |
| 542. http://gcc.gnu.org/PR11397 |
| 543. http://gcc.gnu.org/PR12505 |
| 544. http://gcc.gnu.org/PR13150 |
| 545. http://gcc.gnu.org/PR12666 |
| 546. http://gcc.gnu.org/PR12969 |
| 547. http://gcc.gnu.org/PR10819 |
| 548. http://gcc.gnu.org/PR11612 |
| 549. http://gcc.gnu.org/PR13211 |
| 550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4 |
| 551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5 |
| 552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6 |
| 553. mailto:gnu@gnu.org |
| 554. http://www.gnu.org/home.html#ContactInfo |
| 555. http://gcc.gnu.org/about.html |
| 556. http://gcc.gnu.org/onlinedocs/ |
| 557. mailto:gcc-help@gcc.gnu.org |
| 558. mailto:gcc@gnu.org |
| 559. mailto:gcc@gcc.gnu.org |
| 560. http://gcc.gnu.org/lists.html |
| 561. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.2/index.html |
| GCC 3.2 Release Series |
| |
| April 25, 2003 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 3.2.3. |
| |
| The purpose of the GCC 3.2 release series is to provide a stable |
| platform for OS distributors to use building their next releases. A |
| primary objective was to stabilize the C++ ABI; we believe that the |
| interface to the compiler and the C++ standard library are now |
| relatively stable. |
| |
| Be aware that C++ code compiled by GCC 3.2.x will (in general) not |
| interoperate with code compiled by GCC 3.1.1 or earlier. |
| |
| Please refer to our [2]detailed list of news, caveats, and bug-fixes |
| for further information. |
| |
| Release History |
| |
| GCC 3.2.3 |
| April 25, 2003 ([3]changes) |
| |
| GCC 3.2.2 |
| February 5, 2003 ([4]changes) |
| |
| GCC 3.2.1 |
| November 19, 2002 ([5]changes) |
| |
| GCC 3.2 |
| August 14, 2002 ([6]changes) |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [7]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, improvements, bug fixes, and other changes as |
| well as test results to GCC. This [8]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [9]GCC project |
| web site or contact the [10]GCC development mailing list. |
| |
| To obtain GCC please use [11]our mirror sites, or our CVS server. |
| |
| Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There |
| are also [13]other ways to contact the FSF. |
| |
| These pages are maintained by [14]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [15]GCC manuals. If that fails, the |
| [16]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org. |
| All of our lists have [19]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [20]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-3.2/changes.html |
| 3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 |
| 4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2 |
| 5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 |
| 6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2 |
| 7. http://gcc.gnu.org/gcc-3.2/buildstat.html |
| 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 9. http://gcc.gnu.org/index.html |
| 10. mailto:gcc@gcc.gnu.org |
| 11. http://gcc.gnu.org/mirrors.html |
| 12. mailto:gnu@gnu.org |
| 13. http://www.gnu.org/home.html#ContactInfo |
| 14. http://gcc.gnu.org/about.html |
| 15. http://gcc.gnu.org/onlinedocs/ |
| 16. mailto:gcc-help@gcc.gnu.org |
| 17. mailto:gcc@gnu.org |
| 18. mailto:gcc@gcc.gnu.org |
| 19. http://gcc.gnu.org/lists.html |
| 20. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.2/changes.html |
| GCC 3.2 Release Series |
| Changes, New Features, and Fixes |
| |
| The latest release in the 3.2 release series is [1]GCC 3.2.3. |
| |
| Caveats and New Features |
| |
| Caveats |
| |
| * The C++ compiler does not correctly zero-initialize |
| pointers-to-data members. You must explicitly initialize them. For |
| example: int S::*m(0); will work, but depending on |
| default-initialization to zero will not work. This bug cannot be |
| fixed in GCC 3.2 without inducing unacceptable risks. It will be |
| fixed in GCC 3.3. |
| * This GCC release is based on the GCC 3.1 sourcebase, and thus has |
| all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has |
| a number of C++ ABI fixes which make its C++ compiler generate |
| binary code which is incompatible with the C++ compilers found in |
| earlier GCC releases, including GCC 3.1 and GCC 3.1.1. |
| |
| Frontend Enhancements |
| |
| C/C++/Objective-C |
| |
| * The method of constructing the list of directories to be searched |
| for header files has been revised. If a directory named by a -I |
| option is a standard system include directory, the option is |
| ignored to ensure that the default search order for system |
| directories and the special treatment of system header files are |
| not defeated. |
| * The C and Objective-C compilers no longer accept the "Naming Types" |
| extension (typedef foo = bar); it was already unavailable in C++. |
| Code which uses it will need to be changed to use the "typeof" |
| extension instead: typedef typeof(bar) foo. (We have removed this |
| extension without a period of deprecation because it has caused the |
| compiler to crash since version 3.0 and no one noticed until very |
| recently. Thus we conclude it is not in widespread use.) |
| |
| C++ |
| |
| * GCC 3.2 fixed serveral differences between the C++ ABI implemented |
| in GCC and the multi-vendor standard, but more have been found |
| since the release. 3.2.1 adds a new warning, -Wabi, to warn about |
| code which is affected by these bugs. We will fix these bugs in |
| some future release, once we are confident that all have been |
| found; until then, it is our intention to make changes to the ABI |
| only if they are necessary for correct compilation of C++, as |
| opposed to conformance to the ABI documents. |
| * For details on how to build an ABI compliant compiler for GNU/Linux |
| systems, check the [3]common C++ ABI page. |
| |
| New Targets and Target Specific Improvements |
| |
| IA-32 |
| |
| * Fixed a number of bugs in SSE and MMX intrinsics. |
| * Fixed common compiler crashes with SSE instruction set enabled |
| (implied by -march=pentium3, pentium4, athlon-xp) |
| * __m128 and __m128i is not 128bit aligned when used in structures. |
| |
| x86-64 |
| |
| * A bug whereby the compiler could generate bad code for bzero has |
| been fixed. |
| * ABI fixes (implying ABI incompatibilities with previous version in |
| some corner cases) |
| * Fixed prefetch code generation |
| __________________________________________________________________ |
| |
| GCC 3.2.3 |
| |
| 3.2.3 is a bug fix release only; there are no new features that were |
| not present in GCC 3.2.2. |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.2.3 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here), and some of the titles have been changed to |
| make them more clear. |
| |
| Internal Compiler Errors (multi-platform) |
| |
| * [4]3782: (c++) -quiet -fstats produces a segmentation fault in |
| cc1plus |
| * [5]6440: (c++) template specializations cause ICE |
| * [6]7050: (c++) ICE on: (i ? get_string() : throw) |
| * [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c) |
| * [8]7982: (c++) ICE due to infinite recursion (using STL set) |
| * [9]8068: exceedingly high (infinite) memory usage |
| * [10]8178: ICE with __builtin_ffs |
| * [11]8396: ICE in copy_to_mode_reg, in explow.c |
| * [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c |
| * [13]9768: ICE when optimizing inline code at -O2 |
| * [14]9798: (c++) Infinite recursion (segfault) in |
| cp/decl.c:push_using_directive with recursive using directives |
| * [15]9799: mismatching structure initializer with nested flexible |
| array member: ICE |
| * [16]9928: ICE on duplicate enum declaration |
| * [17]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects |
| sparc, alpha) |
| * [18]10352: ICE in find_reloads_toplev |
| * [19]10336: ICE with -Wunreachable-code |
| |
| C/optimizer bugs: |
| |
| * [20]8224: Incorrect joining of signed and unsigned division |
| * [21]8613: -O2 produces wrong code with builtin strlen and |
| postincrements |
| * [22]8828: gcc reports some code is unreachable when it is not |
| * [23]9226: GCSE breaking argument passing |
| * [24]9853: miscompilation of non-constant structure initializer |
| * [25]9797: C99-style struct initializers are miscompiled |
| * [26]9967: Some standard C function calls should not be replaced |
| when optimizing for size |
| * [27]10116: ce2: invalid merge of join_bb in the context of switch |
| statements |
| * [28]10171: wrong code for inlined function |
| * [29]10175: -Wunreachable-code doesn't work for single lines |
| |
| C++ compiler and library: |
| |
| * [30]8316: Confusing diagnostic for code that misuses conversion |
| operators |
| * [31]9169: filebuf output fails if codecvt<>::out returns noconv |
| * [32]9420: incomplete type incorrectly reported |
| * [33]9459: typeof in return type specification of template not |
| supported |
| * [34]9507: filebuf::open handles ios_base::ate incorrectly |
| * [35]9538: Out-of-bounds memory access in streambuf::sputbackc |
| * [36]9602: Total confusion about template/friend/virtual/abstract |
| * [37]9993: destructor not called for local object created within and |
| returned from infinite loop |
| * [38]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2 |
| system |
| |
| Java compiler and library: |
| |
| * [39]9652: libgcj build fails on irix6.5.1[78] |
| * [40]10144: gas on solaris complains about bad .stabs lines for |
| java, native as unaffected |
| |
| x86-specific (Intel/AMD): |
| |
| * [41]8746: gcc miscompiles Linux kernel ppa driver on x86 |
| * [42]9888: -mcpu=k6 -Os produces out of range loop instructions |
| * [43]9638: Cross-build for target i386-elf and i586-pc-linux-gnu |
| failed |
| * [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib) |
| failed |
| |
| SPARC-specific: |
| |
| * [45]7784: [Sparc] ICE in extract_insn, in recog.c |
| * [46]7796: sparc extra failure with -m64 on execute/930921-1.c in |
| unroll.c |
| * [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc |
| * [48]8366: [Sparc] C testsuite failure with -m64 -fpic -O in |
| execute/loop-2d.c |
| * [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc |
| * [50]9414: Scheduling bug on Ultrasparc |
| * [51]10067: GCC-3.2.2 outputs invalid asm on sparc64 |
| |
| m68k-specific: |
| |
| * [52]7248: broken "inclusive or" code |
| * [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1 |
| |
| PowerPC-specific: |
| |
| * [54]9732: Wrong code with -O2 -fPIC |
| * [55]10073: ICE: powerpc cannot split insn |
| |
| Alpha-specific: |
| |
| * [56]7702: optimization problem on a DEC alpha under OSF1 |
| * [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system |
| |
| HP-specific: |
| |
| * [58]8694: <string> breaks <ctype.h> on HP-UX 10.20 (DUP: 9275) |
| * [59]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10 |
| (missing symbol) |
| * [60]10271: Floating point args don't get reloaded across function |
| calls with -O2 |
| |
| MIPS specific: |
| |
| * [61]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in |
| compile/920501-4.c |
| |
| CRIS specific: |
| |
| * [62]10377: gcc-3.2.2 creates bad assembler code for cris |
| |
| Miscellaneous and minor bugs: |
| |
| * [63]6955: collect2 says "core dumped" when there is no core |
| __________________________________________________________________ |
| |
| GCC 3.2.2 |
| |
| Beginning with 3.2.2, GCC's Makefile suite supports redirection of make |
| install by means of the DESTDIR variable. Parts of the GCC tree have |
| featured that support long before, but now it is available even from |
| the top level. |
| |
| Other than that, GCC 3.2.2 is a bug fix release only; there are no new |
| features that were not present in GCC 3.2.1. |
| |
| Bug Fixes |
| |
| On the following i386-based systems GCC 3.2.1 broke the C ABI wrt. |
| functions returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped |
| with FreeBSD 5.0 does not have this problem), Interix, a.out-based |
| Linux and NetBSD, OpenBSD, and Darwin. GCC 3.2.2 reverts this ABI |
| change, and thus restores ABI-compatibility with previous releases |
| (except GCC 3.2.1) on these platforms. |
| |
| This section lists the problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.2.2 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here) and some of the titles have been changed to |
| make them more clear. |
| |
| Internal Compiler Errors (multi-platform) |
| |
| * [64]5919: (c++) ICE when passing variable array to template |
| function |
| * [65]7129: (c++) ICE with min/max assignment operators (<?= and >?=) |
| * [66]7507: ICE with -O2 when address of called function is a |
| complicated expression |
| * [67]7622: ICE with nested inline functions if function's address is |
| taken |
| * [68]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR |
| [69]9258) |
| * [70]8031: (c++) ICE in code comparing typeids and casting from |
| virtual base |
| * [71]8275: ICE in simplify_subreg |
| * [72]8332: (c++) builtin strlen/template interaction causes ICE |
| * [73]8372: (c++) ICE on explicit call of destructor |
| * [74]8439: (c, not c++) empty struct causes ICE |
| * [75]8442: (c++) ICE with nested template classes |
| * [76]8518: ICE when compiling mplayer ("extern inline" issue) |
| * [77]8615: (c++) ICE with out-of-range character constant template |
| argument |
| * [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307 |
| * [79]8799: (c++) ICE: error reporting routines re-entered |
| * [80]9328: (c++) ICE with typeof(X) for overloaded X |
| * [81]9465: (preprocessor) cpp -traditional ICE on null bytes |
| |
| C++ (compiler and library) bugs |
| |
| * [82]47: scoping in nested classes is broken |
| * [83]6745: problems with iostream rdbuf() member function |
| * [84]8214: conversion from const char* const to char* sometimes |
| accepted illegally |
| * [85]8493: builtin strlen and overload resolution (same bug as |
| [86]8332) |
| * [87]8503: strange behaviour of function types |
| * [88]8727: compiler confused by inheritance from an anonymous struct |
| * [89]7445: poor performance of std::locale::classic() in |
| multi-threaded applications |
| * [90]8230: mishandling of overflow in vector<T>::resize |
| * [91]8399: sync_with_stdio(false) breaks unformatted input |
| * [92]8662: illegal access of private member of unnamed class is |
| accepted |
| * [93]8707: "make distclean" fails in libstdc++-v3 directory |
| * [94]8708: __USE_MALLOC doesn't work |
| * [95]8790: Use of non-thread-safe strtok in src/localename.cc |
| * [96]8887: Bug in date formats with --enable-clocale=generic |
| * [97]9076: Call Frame Instructions are not handled correctly during |
| unwind operation |
| * [98]9151: std::setprecision limited to 16 digits when outputting a |
| double to a stream |
| * [99]9168: codecvt<char, char, mbstate_t> overwrites output buffers |
| * [100]9269: libstdc++ headers: explicit specialization of function |
| must precede its first use |
| * [101]9322: return value of basic_streambuf<>::getloc affected by |
| locale::global |
| * [102]9433: segfault in runtime support for dynamic_cast |
| |
| C and optimizer bugs |
| |
| * [103]8032: GCC incorrectly initializes static structs that have |
| flexible arrays |
| * [104]8639: simple arithmetic expression broken |
| * [105]8794: optimization improperly eliminates certain expressions |
| * [106]8832: traditional "asm volatile" code is illegally optimized |
| * [107]8988: loop optimizer bug: with -O2, code is generated that |
| segfaults (found on i386, bug present for all platforms) |
| * [108]9492: structure copy clobbers subsequent stores to structure |
| |
| Objective-C bugs |
| |
| * [109]9267: Objective-C parser won't build with newer bison versions |
| (e.g. 1.875) |
| |
| Ada bugs |
| |
| * [110]8344: Ada build problem due to conflict between gcc/final.o, |
| gcc/ada/final.o |
| |
| Preprocessor bugs |
| |
| * [111]8524: _Pragma within macros is improperly expanded |
| * [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with |
| -fshort-wchar |
| |
| ARM-specific |
| |
| * [113]9090: arm ICE with >= -O2; regression from gcc-2.95 |
| |
| x86-specific (Intel/AMD) |
| |
| * [114]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction) |
| * [115]8599: loop unroll bug with -march=k6-3 |
| * [116]9506: ABI breakage in structure return (affects BSD and |
| Cygwin, but not GNU/Linux) |
| |
| FreeBSD 5.0 specific |
| |
| * [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0 |
| |
| RTEMS-specific |
| |
| * [118]9292: hppa1.1-rtems configurery problems |
| * [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug |
| * [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue |
| * [121]9296: gthr-rtems regression |
| * [122]9316: powerpc-rtems: extending multilibs |
| |
| HP-PA specific |
| |
| * [123]9493: ICE with -O2 when building a simple function |
| |
| Documentation |
| |
| * [124]7341: hyperlink to gcov in GCC documentation doesn't work |
| * [125]8947: Please add a warning about "-malign-double" in docs |
| * [126]7448, [127]8882: typo cleanups |
| __________________________________________________________________ |
| |
| GCC 3.2.1 |
| |
| 3.2.1 adds a new warning, -Wabi. This option warns when GNU C++ |
| generates code that is known not to be binary-compatible with the |
| vendor-neutral ia32/ia64 ABI. Please consult the GCC manual, included |
| in the distribution, for details. |
| |
| This release also removes an old GCC extension, "naming types", and the |
| documentation now directs users to use a different GCC extension, |
| __typeof__, instead. The feature had evidently been broken for a while. |
| |
| Otherwise, 3.2.1 is a bug fix release only; other than bug fixes and |
| the new warning there are no new features that were not present in GCC |
| 3.2. |
| |
| In addition, the previous fix for [128]PR 7445 (poor performance of |
| std::locale::classic() in multi-threaded applications) was reverted |
| ("unfixed"), because the "fix" was not thread-safe. |
| |
| Bug Fixes |
| |
| This section lists the problem reports (PRs) from GCC's bug tracking |
| system that are known to be fixed in the 3.2.1 release. This list might |
| not be complete (that is, it is possible that some PRs that have been |
| fixed are not listed here). As you can see, the number of bug fixes is |
| quite large, so it is strongly recommended that users of earlier GCC |
| 3.x releases upgrade to GCC 3.2.1. |
| |
| Internal Compiler Errors (multi-platform) |
| |
| * [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c |
| * [130]5661: (c++) ICE instantiating template on array of unknown |
| size (bad code) |
| * [131]6419: (c++) ICE in make_decl_rtl for "longest" attribute on |
| 64-bit platforms |
| * [132]6994: (c++) ICE in find_function_data |
| * [133]7150: preprocessor: GCC -dM -E gives an ICE |
| * [134]7160: ICE when optimizing branches without a return value |
| * [135]7228: (c++) ICE when using member template and template |
| function |
| * [136]7266: (c++) ICE with -pedantic on missing typename |
| * [137]7353: ICE from use of "Naming Types" extension, see above |
| * [138]7411: ICE in instantiate_virtual_regs_1, in function.c |
| * [139]7478: (c++) ICE on static_cast inside template |
| * [140]7526: preprocessor core dump when _Pragma implies #pragma |
| dependency |
| * [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803 |
| is a duplicate) |
| * [143]7754: (c++) ICE on union with template parameter |
| * [144]7788: (c++) redeclaring a definition as an incomplete class |
| causes ICE |
| * [145]8031: (c++) ICE in comptypes, in cp/typeck.c |
| * [146]8055: preprocessor dies with SIG11 when building FreeBSD |
| kernel |
| * [147]8067: (c++) ICE due to mishandling of __FUNCTION__ and related |
| variables |
| * [148]8134: (c++) ICE in force_store_init_value on legal code |
| * [149]8149: (c++) ICE on incomplete type |
| * [150]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array |
| initialization |
| |
| C++ (compiler and library) bugs |
| |
| * [151]5607: No pointer adjustment in covariant return types |
| * [152]6579: Infinite loop with statement expressions in member |
| initialization |
| * [153]6803: Default copy constructor bug in GCC 3.1 |
| * [154]7176: g++ confused by friend and static member with same name |
| * [155]7188: Segfault with template class and recursive (incorrect) |
| initializer list |
| * [156]7306: Regression: GCC 3.x fails to compile code with virtual |
| inheritance if a method has a variable number of arguments |
| * [157]7461: ctype<char>::classic_table() returns offset array on |
| Cygwin |
| * [158]7524: f(const float arg[3]) fails |
| * [159]7584: Erroneous ambiguous base error on using declaration |
| * [160]7676: Member template overloading problem |
| * [161]7679: infinite loop when a right parenthesis is missing |
| * [162]7811: default locale not taken from environment |
| * [163]7961: compare( char *) implemented incorrectly in |
| basic_string<> |
| * [164]8071: basic_ostream::operator<<(streambuf*) loops forever if |
| streambuf::underflow() leaves gptr() NULL (dups: [165]8127, |
| [166]6745) |
| * [167]8096: deque::at() throws std::range_error instead of |
| std::out_of_range |
| * [168]8127: cout << cin.rdbuf() infinite loop |
| * [169]8218: Excessively large memory consumed for classes with large |
| array members |
| * [170]8287: GCC 3.2: Destructor called for non-constructed local |
| object |
| * [171]8347: empty vector range used in string construction causes |
| core dump |
| * [172]8348: fail() flag is set in istringstream when eof() flag is |
| set |
| * [173]8391: regression: infinite loop in cp/decl2.c(finish_file) |
| |
| C and optimizer bugs |
| |
| * [174]6627: -fno-align-functions doesn't seem to disable function |
| alignment |
| * [175]6631: life_analysis misoptimizes code to initialize fields of |
| a structure |
| * [176]7102: unsigned char division results in floating exception |
| * [177]7120: Run once loop should *always* be unrolled |
| (pessimization) |
| * [178]7209: Bug involving array referencing and ?: operator |
| * [179]7515: invalid inlining of global function with -O3 |
| * [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test |
| * [181]8467: bug in sibling call optimization |
| |
| Preprocessor bugs |
| |
| * [182]4890: incorrect line markers from the traditional preprocessor |
| * [183]7357: -M option omits system headers files (making it the same |
| as -MM) |
| * [184]7358: Changes to Sun's make Dependencies |
| * [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as |
| C headers |
| * [186]7862: Interrupting GCC -MD removes .d file but not .o |
| * [187]8190: Failed compilation deletes -MD dependency file |
| * [188]8524: _Pragma within macro is improperly expanded |
| |
| x86 specific (Intel/AMD) |
| |
| * [189]5351: (i686-only) function pass-by-value structure copy |
| corrupts stack ([190]7591 is a duplicate) |
| * [191]6845, [192]7034, [193]7124, [194]7174: ICE's with |
| -march=pentium3/pentium2/athlon (these are all the same underlying |
| bug, in MMX register use) |
| * [195]7134, [196]7375, [197]7390: ICE with -march=athlon (maybe same |
| as above?) |
| * [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken |
| * [199]6981: wrong code in 64-bit manipulation on x86 |
| * [200]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__ |
| macro |
| * [201]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE |
| intrinsics are broken |
| * [202]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with |
| -march=pentium4 |
| * [203]7693: Typo in i386 mmintrin.h header |
| * [204]7723: ICE - Pentium3 sse - GCC 3.2 |
| * [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse |
| * [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3 |
| |
| PowerPC specific |
| |
| * [207]5967: GCC bug when profiling nested functions on powerpc |
| * [208]6984: wrong code generated with -O2, -O3, -Os for do-while |
| loop on PowerPC |
| * [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5 |
| * [210]7130: miscompiled code for GCC-3.1 in powerpc linux with |
| -funroll-all-loops |
| * [211]7133: PowerPC ICE: unrecognizable insn |
| * [212]7380: ICE in extract_insn, at recog.c:2148 |
| * [213]8252: ICE on Altivec code with optimization turned on |
| * [214]8451: Altivec ICE in GCC 3.2 |
| |
| HP/PA specific |
| |
| * [215]7250: __ashrdi3 returns wrong value on 32 bit hppa |
| |
| SPARC specific |
| |
| * [216]6668: when using --disable-multilib, libgcc_s.so is installed |
| in the wrong place on sparc-solaris |
| * [217]7151: ICE when compiling for UltraSPARC |
| * [218]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long |
| double and -O1 |
| * [219]7842: [REGRESSION] SPARC code gen bug |
| |
| ARM specific |
| |
| * [220]7856: [arm] invalid offset in constant pool reference |
| * [221]7967: optimization produces wrong code (ARM) |
| |
| Alpha specific |
| |
| * [222]7374: __builtin_fabsl broken on alpha |
| |
| IBM s390 specific |
| |
| * [223]7370: ICE in fixup_var_refs_1 on s390x |
| * [224]7409: loop optimization bug on s390x-linux-gnu |
| * [225]8232: s390x: ICE when using bcmp with int length argument |
| |
| SCO specific |
| |
| * [226]7623: SCO OpenServer build fails with machmode.def: undefined |
| symbol: BITS_PER_UNIT |
| |
| m68k/Coldfire specific |
| |
| * [227]8314: crtbegin, crtend need to be multilib'ed for this |
| platform |
| |
| Documentation |
| |
| * [228]761: Document some undocumented options |
| * [229]5610: Fix documentation about invoking SSE instructions |
| (-mfpmath=sse) |
| * [230]7484: List -Wmissing-declarations as C-only option |
| * [231]7531: -mcmodel not documented for x86-64 |
| * [232]8120: Update documentation of bad use of ## |
| __________________________________________________________________ |
| |
| GCC 3.2 |
| |
| 3.2 is a small bug fix release, but there is a change to the |
| application binary interface (ABI), hence the change to the second part |
| of the version number. |
| |
| The main purpose of the 3.2 release is to correct a couple of problems |
| in the C++ ABI, with the intention of providing a stable interface |
| going forward. Accordingly, 3.2 is only a small change to 3.1.1. |
| |
| Bug Fixes |
| |
| C++ |
| |
| * [233]7320: g++ 3.2 relocation problem |
| * [234]7470: vtable: virtual function pointers not in declaration |
| order |
| |
| libstdc++ |
| |
| * [235]6410: Trouble with non-ASCII monetary symbols and wchar_t |
| * [236]6503, [237]6642, [238]7186: Problems with comparing or |
| subtracting various types of const and non-const iterators |
| * [239]7216: ambiguity with basic_iostream::traits_type |
| * [240]7220: problem with basic_istream::ignore(0,delimiter) |
| * [241]7222: locale::operator==() doesn't work on std::locale("") |
| * [242]7286: placement operator delete issue |
| * [243]7442: cxxabi.h does not match the C++ ABI |
| * [244]7445: poor performance of std::locale::classic() in |
| multi-threaded applications |
| |
| x86-64 specific |
| |
| * [245]7291: off-by-one in generated inline bzero code for x86-64 |
| |
| Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There |
| are also [247]other ways to contact the FSF. |
| |
| These pages are maintained by [248]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [249]GCC manuals. If that fails, the |
| [250]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [251]gcc@gnu.org or |
| [252]gcc@gcc.gnu.org. All of our lists have [253]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [254]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 |
| 2. http://gcc.gnu.org/gcc-3.1/changes.html |
| 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html |
| 4. http://gcc.gnu.org/PR3782 |
| 5. http://gcc.gnu.org/PR6440 |
| 6. http://gcc.gnu.org/PR7050 |
| 7. http://gcc.gnu.org/PR7741 |
| 8. http://gcc.gnu.org/PR7982 |
| 9. http://gcc.gnu.org/PR8068 |
| 10. http://gcc.gnu.org/PR8178 |
| 11. http://gcc.gnu.org/PR8396 |
| 12. http://gcc.gnu.org/PR8674 |
| 13. http://gcc.gnu.org/PR9768 |
| 14. http://gcc.gnu.org/PR9798 |
| 15. http://gcc.gnu.org/PR9799 |
| 16. http://gcc.gnu.org/PR9928 |
| 17. http://gcc.gnu.org/PR10114 |
| 18. http://gcc.gnu.org/PR10352 |
| 19. http://gcc.gnu.org/PR10336 |
| 20. http://gcc.gnu.org/PR8224 |
| 21. http://gcc.gnu.org/PR8613 |
| 22. http://gcc.gnu.org/PR8828 |
| 23. http://gcc.gnu.org/PR9226 |
| 24. http://gcc.gnu.org/PR9853 |
| 25. http://gcc.gnu.org/PR9797 |
| 26. http://gcc.gnu.org/PR9967 |
| 27. http://gcc.gnu.org/PR10116 |
| 28. http://gcc.gnu.org/PR10171 |
| 29. http://gcc.gnu.org/PR10175 |
| 30. http://gcc.gnu.org/PR8316 |
| 31. http://gcc.gnu.org/PR9169 |
| 32. http://gcc.gnu.org/PR9420 |
| 33. http://gcc.gnu.org/PR9459 |
| 34. http://gcc.gnu.org/PR9507 |
| 35. http://gcc.gnu.org/PR9538 |
| 36. http://gcc.gnu.org/PR9602 |
| 37. http://gcc.gnu.org/PR9993 |
| 38. http://gcc.gnu.org/PR10167 |
| 39. http://gcc.gnu.org/PR9652 |
| 40. http://gcc.gnu.org/PR10144 |
| 41. http://gcc.gnu.org/PR8746 |
| 42. http://gcc.gnu.org/PR9888 |
| 43. http://gcc.gnu.org/PR9638 |
| 44. http://gcc.gnu.org/PR9954 |
| 45. http://gcc.gnu.org/PR7784 |
| 46. http://gcc.gnu.org/PR7796 |
| 47. http://gcc.gnu.org/PR8281 |
| 48. http://gcc.gnu.org/PR8366 |
| 49. http://gcc.gnu.org/PR8726 |
| 50. http://gcc.gnu.org/PR9414 |
| 51. http://gcc.gnu.org/PR10067 |
| 52. http://gcc.gnu.org/PR7248 |
| 53. http://gcc.gnu.org/PR8343 |
| 54. http://gcc.gnu.org/PR9732 |
| 55. http://gcc.gnu.org/PR10073 |
| 56. http://gcc.gnu.org/PR7702 |
| 57. http://gcc.gnu.org/PR9671 |
| 58. http://gcc.gnu.org/PR8694 |
| 59. http://gcc.gnu.org/PR9953 |
| 60. http://gcc.gnu.org/PR10271 |
| 61. http://gcc.gnu.org/PR6362 |
| 62. http://gcc.gnu.org/PR10377 |
| 63. http://gcc.gnu.org/PR6955 |
| 64. http://gcc.gnu.org/PR5919 |
| 65. http://gcc.gnu.org/PR7129 |
| 66. http://gcc.gnu.org/PR7507 |
| 67. http://gcc.gnu.org/PR7622 |
| 68. http://gcc.gnu.org/PR7681 |
| 69. http://gcc.gnu.org/PR9528 |
| 70. http://gcc.gnu.org/PR8031 |
| 71. http://gcc.gnu.org/PR8275 |
| 72. http://gcc.gnu.org/PR8332 |
| 73. http://gcc.gnu.org/PR8372 |
| 74. http://gcc.gnu.org/PR8439 |
| 75. http://gcc.gnu.org/PR8442 |
| 76. http://gcc.gnu.org/PR8518 |
| 77. http://gcc.gnu.org/PR8615 |
| 78. http://gcc.gnu.org/PR8663 |
| 79. http://gcc.gnu.org/PR8799 |
| 80. http://gcc.gnu.org/PR9328 |
| 81. http://gcc.gnu.org/PR9465 |
| 82. http://gcc.gnu.org/PR47 |
| 83. http://gcc.gnu.org/PR6745 |
| 84. http://gcc.gnu.org/PR8214 |
| 85. http://gcc.gnu.org/PR8493 |
| 86. http://gcc.gnu.org/PR8332 |
| 87. http://gcc.gnu.org/PR8503 |
| 88. http://gcc.gnu.org/PR8727 |
| 89. http://gcc.gnu.org/PR7445 |
| 90. http://gcc.gnu.org/PR8230 |
| 91. http://gcc.gnu.org/PR8399 |
| 92. http://gcc.gnu.org/PR8662 |
| 93. http://gcc.gnu.org/PR8707 |
| 94. http://gcc.gnu.org/PR8708 |
| 95. http://gcc.gnu.org/PR8790 |
| 96. http://gcc.gnu.org/PR8887 |
| 97. http://gcc.gnu.org/PR9076 |
| 98. http://gcc.gnu.org/PR9151 |
| 99. http://gcc.gnu.org/PR9168 |
| 100. http://gcc.gnu.org/PR9269 |
| 101. http://gcc.gnu.org/PR9322 |
| 102. http://gcc.gnu.org/PR9433 |
| 103. http://gcc.gnu.org/PR8032 |
| 104. http://gcc.gnu.org/PR8639 |
| 105. http://gcc.gnu.org/PR8794 |
| 106. http://gcc.gnu.org/PR8832 |
| 107. http://gcc.gnu.org/PR8988 |
| 108. http://gcc.gnu.org/PR9492 |
| 109. http://gcc.gnu.org/PR9267 |
| 110. http://gcc.gnu.org/PR8344 |
| 111. http://gcc.gnu.org/PR8524 |
| 112. http://gcc.gnu.org/PR8880 |
| 113. http://gcc.gnu.org/PR9090 |
| 114. http://gcc.gnu.org/PR8588 |
| 115. http://gcc.gnu.org/PR8599 |
| 116. http://gcc.gnu.org/PR9506 |
| 117. http://gcc.gnu.org/PR9484 |
| 118. http://gcc.gnu.org/PR9292 |
| 119. http://gcc.gnu.org/PR9293 |
| 120. http://gcc.gnu.org/PR9295 |
| 121. http://gcc.gnu.org/PR9296 |
| 122. http://gcc.gnu.org/PR9316 |
| 123. http://gcc.gnu.org/PR9493 |
| 124. http://gcc.gnu.org/PR7341 |
| 125. http://gcc.gnu.org/PR8947 |
| 126. http://gcc.gnu.org/PR7448 |
| 127. http://gcc.gnu.org/PR8882 |
| 128. http://gcc.gnu.org/PR7445 |
| 129. http://gcc.gnu.org/PR2521 |
| 130. http://gcc.gnu.org/PR5661 |
| 131. http://gcc.gnu.org/PR6419 |
| 132. http://gcc.gnu.org/PR6994 |
| 133. http://gcc.gnu.org/PR7150 |
| 134. http://gcc.gnu.org/PR7160 |
| 135. http://gcc.gnu.org/PR7228 |
| 136. http://gcc.gnu.org/PR7266 |
| 137. http://gcc.gnu.org/PR7353 |
| 138. http://gcc.gnu.org/PR7411 |
| 139. http://gcc.gnu.org/PR7478 |
| 140. http://gcc.gnu.org/PR7526 |
| 141. http://gcc.gnu.org/PR7721 |
| 142. http://gcc.gnu.org/PR7803 |
| 143. http://gcc.gnu.org/PR7754 |
| 144. http://gcc.gnu.org/PR7788 |
| 145. http://gcc.gnu.org/PR8031 |
| 146. http://gcc.gnu.org/PR8055 |
| 147. http://gcc.gnu.org/PR8067 |
| 148. http://gcc.gnu.org/PR8134 |
| 149. http://gcc.gnu.org/PR8149 |
| 150. http://gcc.gnu.org/PR8160 |
| 151. http://gcc.gnu.org/PR5607 |
| 152. http://gcc.gnu.org/PR6579 |
| 153. http://gcc.gnu.org/PR6803 |
| 154. http://gcc.gnu.org/PR7176 |
| 155. http://gcc.gnu.org/PR7188 |
| 156. http://gcc.gnu.org/PR7306 |
| 157. http://gcc.gnu.org/PR7461 |
| 158. http://gcc.gnu.org/PR7524 |
| 159. http://gcc.gnu.org/PR7584 |
| 160. http://gcc.gnu.org/PR7676 |
| 161. http://gcc.gnu.org/PR7679 |
| 162. http://gcc.gnu.org/PR7811 |
| 163. http://gcc.gnu.org/PR7961 |
| 164. http://gcc.gnu.org/PR8071 |
| 165. http://gcc.gnu.org/PR8127 |
| 166. http://gcc.gnu.org/PR6745 |
| 167. http://gcc.gnu.org/PR8096 |
| 168. http://gcc.gnu.org/PR8127 |
| 169. http://gcc.gnu.org/PR8218 |
| 170. http://gcc.gnu.org/PR8287 |
| 171. http://gcc.gnu.org/PR8347 |
| 172. http://gcc.gnu.org/PR8348 |
| 173. http://gcc.gnu.org/PR8391 |
| 174. http://gcc.gnu.org/PR6627 |
| 175. http://gcc.gnu.org/PR6631 |
| 176. http://gcc.gnu.org/PR7102 |
| 177. http://gcc.gnu.org/PR7120 |
| 178. http://gcc.gnu.org/PR7209 |
| 179. http://gcc.gnu.org/PR7515 |
| 180. http://gcc.gnu.org/PR7814 |
| 181. http://gcc.gnu.org/PR8467 |
| 182. http://gcc.gnu.org/PR4890 |
| 183. http://gcc.gnu.org/PR7357 |
| 184. http://gcc.gnu.org/PR7358 |
| 185. http://gcc.gnu.org/PR7602 |
| 186. http://gcc.gnu.org/PR7862 |
| 187. http://gcc.gnu.org/PR8190 |
| 188. http://gcc.gnu.org/PR8524 |
| 189. http://gcc.gnu.org/PR5351 |
| 190. http://gcc.gnu.org/PR7591 |
| 191. http://gcc.gnu.org/PR6845 |
| 192. http://gcc.gnu.org/PR7034 |
| 193. http://gcc.gnu.org/PR7124 |
| 194. http://gcc.gnu.org/PR7174 |
| 195. http://gcc.gnu.org/PR7134 |
| 196. http://gcc.gnu.org/PR7375 |
| 197. http://gcc.gnu.org/PR7390 |
| 198. http://gcc.gnu.org/PR6890 |
| 199. http://gcc.gnu.org/PR6981 |
| 200. http://gcc.gnu.org/PR7242 |
| 201. http://gcc.gnu.org/PR7396 |
| 202. http://gcc.gnu.org/PR7630 |
| 203. http://gcc.gnu.org/PR7693 |
| 204. http://gcc.gnu.org/PR7723 |
| 205. http://gcc.gnu.org/PR7951 |
| 206. http://gcc.gnu.org/PR8146 |
| 207. http://gcc.gnu.org/PR5967 |
| 208. http://gcc.gnu.org/PR6984 |
| 209. http://gcc.gnu.org/PR7114 |
| 210. http://gcc.gnu.org/PR7130 |
| 211. http://gcc.gnu.org/PR7133 |
| 212. http://gcc.gnu.org/PR7380 |
| 213. http://gcc.gnu.org/PR8252 |
| 214. http://gcc.gnu.org/PR8451 |
| 215. http://gcc.gnu.org/PR7250 |
| 216. http://gcc.gnu.org/PR6668 |
| 217. http://gcc.gnu.org/PR7151 |
| 218. http://gcc.gnu.org/PR7335 |
| 219. http://gcc.gnu.org/PR7842 |
| 220. http://gcc.gnu.org/PR7856 |
| 221. http://gcc.gnu.org/PR7967 |
| 222. http://gcc.gnu.org/PR7374 |
| 223. http://gcc.gnu.org/PR7370 |
| 224. http://gcc.gnu.org/PR7409 |
| 225. http://gcc.gnu.org/PR8232 |
| 226. http://gcc.gnu.org/PR7623 |
| 227. http://gcc.gnu.org/PR8314 |
| 228. http://gcc.gnu.org/PR761 |
| 229. http://gcc.gnu.org/PR5610 |
| 230. http://gcc.gnu.org/PR7484 |
| 231. http://gcc.gnu.org/PR7531 |
| 232. http://gcc.gnu.org/PR8120 |
| 233. http://gcc.gnu.org/PR7320 |
| 234. http://gcc.gnu.org/PR7470 |
| 235. http://gcc.gnu.org/PR6410 |
| 236. http://gcc.gnu.org/PR6503 |
| 237. http://gcc.gnu.org/PR6642 |
| 238. http://gcc.gnu.org/PR7186 |
| 239. http://gcc.gnu.org/PR7216 |
| 240. http://gcc.gnu.org/PR7220 |
| 241. http://gcc.gnu.org/PR7222 |
| 242. http://gcc.gnu.org/PR7286 |
| 243. http://gcc.gnu.org/PR7442 |
| 244. http://gcc.gnu.org/PR7445 |
| 245. http://gcc.gnu.org/PR7291 |
| 246. mailto:gnu@gnu.org |
| 247. http://www.gnu.org/home.html#ContactInfo |
| 248. http://gcc.gnu.org/about.html |
| 249. http://gcc.gnu.org/onlinedocs/ |
| 250. mailto:gcc-help@gcc.gnu.org |
| 251. mailto:gcc@gnu.org |
| 252. mailto:gcc@gcc.gnu.org |
| 253. http://gcc.gnu.org/lists.html |
| 254. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.1/index.html |
| GCC 3.1 |
| |
| July 27, 2002 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 3.1.1. |
| |
| The links below still apply to GCC 3.1.1. |
| |
| May 15, 2002 |
| |
| The [2]GNU project and the GCC developers are pleased to announce the |
| release of GCC 3.1. |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| A list of [3]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed [4]new features, improvements, bug fixes, and other changes |
| as well as test results to GCC. This [5]amazing group of volunteers is |
| what makes GCC successful. |
| |
| For additional information about GCC please refer to the [6]GCC project |
| web site or contact the [7]GCC development mailing list. |
| |
| To obtain GCC please use [8]our mirror sites, or our CVS server. |
| __________________________________________________________________ |
| |
| Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There |
| are also [10]other ways to contact the FSF. |
| |
| These pages are maintained by [11]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [12]GCC manuals. If that fails, the |
| [13]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. |
| All of our lists have [16]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [17]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://www.gnu.org/ |
| 3. http://gcc.gnu.org/gcc-3.1/buildstat.html |
| 4. http://gcc.gnu.org/gcc-3.1/changes.html |
| 5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 6. http://gcc.gnu.org/index.html |
| 7. mailto:gcc@gcc.gnu.org |
| 8. http://gcc.gnu.org/mirrors.html |
| 9. mailto:gnu@gnu.org |
| 10. http://www.gnu.org/home.html#ContactInfo |
| 11. http://gcc.gnu.org/about.html |
| 12. http://gcc.gnu.org/onlinedocs/ |
| 13. mailto:gcc-help@gcc.gnu.org |
| 14. mailto:gcc@gnu.org |
| 15. mailto:gcc@gcc.gnu.org |
| 16. http://gcc.gnu.org/lists.html |
| 17. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.1/changes.html |
| GCC 3.1 Release Series |
| Changes, New Features, and Fixes |
| |
| Additional changes in GCC 3.1.1 |
| |
| * A bug related to how structures and unions are returned has been |
| fixed for powerpc-*-netbsd*. |
| * An important bug in the implementation of -fprefetch-loop-arrays |
| has been fixed. Previously the optimization prefetched random |
| blocks of memory for most targets except for i386. |
| * The Java compiler now compiles Java programs much faster and also |
| works with parallel make. |
| * Nested functions have been fixed for mips*-*-netbsd*. |
| * Some missing floating point support routines have beed added for |
| mips*-*-netbsd*. |
| * This [1]message gives additional information about the bugs fixed |
| in this release. |
| |
| Caveats |
| |
| * The -traditional C compiler option has been deprecated and will be |
| removed in GCC 3.3. (It remains possible to preprocess non-C code |
| with the traditional preprocessor.) |
| * The default debugging format for most ELF platforms (including |
| GNU/Linux and FreeBSD; notable exception is Solaris) has changed |
| from stabs to DWARF2. This requires GDB 5.1.1 or later. |
| |
| General Optimizer Improvements |
| |
| * Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat, |
| and Andreas Jaeger, SuSE Labs, has contributed [2]infrastructure |
| for profile driven optimizations. |
| Options -fprofile-arcs and -fbranch-probabilities can now be used |
| to improve speed of the generated code by profiling the actual |
| program behaviour on typical runs. In the absence of profile info |
| the compiler attempts to guess the profile statically. |
| * [3]SPEC2000 and SPEC95 benchmark suites are now used daily to |
| monitor performance of the generated code. |
| According to the SPECInt2000 results on an AMD Athlon CPU, the code |
| generated by GCC 3.1 is 6% faster on the average (8.2% faster with |
| profile feedback) compared to GCC 3.0. The code produced by GCC 3.0 |
| is about 2.1% faster compared to 2.95.3. Tests were done using the |
| -O2 -march=athlon command-line options. |
| * Alexandre Oliva, of Red Hat, has generalized the tree inlining |
| infrastructure developed by CodeSourcery, LLC for the C++ front |
| end, so that it is now used in the C front end too. Inlining |
| functions as trees exposes them earlier to the compiler, giving it |
| more opportunities for optimization. |
| * Support for data prefetching instructions has been added to the GCC |
| back end and several targets. A new __builtin_prefetch intrinsic is |
| available to explicitly insert prefetch instructions and |
| experimental support for loop array prefetching has been added (see |
| -fprefetch-loop-array documentation). |
| * Support for emitting debugging information for macros has been |
| added for DWARF2. It is activated using -g3. |
| |
| New Languages and Language specific improvements |
| |
| C/C++ |
| |
| * A few more [4]ISO C99 features. |
| * The preprocessor is 10-50% faster than the preprocessor in GCC 3.0. |
| * The preprocessor's symbol table has been merged with the symbol |
| table of the C, C++ and Objective-C front ends. |
| * The preprocessor consumes less memory than the preprocessor in GCC |
| 3.0, often significantly so. On normal input files, it typically |
| consumes less memory than pre-3.0 cccp-based GCC, too. |
| |
| C++ |
| |
| * -fhonor-std and -fno-honor-std have been removed. -fno-honor-std |
| was a workaround to allow std compliant code to work with the |
| non-std compliant libstdc++-v2. libstdc++-v3 is std compliant. |
| * The C++ ABI has been fixed so that void (A::*)() const is mangled |
| as "M1AKFvvE", rather than "MK1AFvvE" as before. This change only |
| affects pointer to cv-qualified member function types. |
| * The C++ ABI has been changed to correctly handle this code: |
| struct A { |
| void operator delete[] (void *, size_t); |
| }; |
| |
| struct B : public A { |
| }; |
| |
| new B[10]; |
| |
| The amount of storage allocated for the array will be greater than |
| it was in 3.0, in order to store the number of elements in the |
| array, so that the correct size can be passed to operator delete[] |
| when the array is deleted. Previously, the value passed to operator |
| delete[] was unpredictable. |
| This change will only affect code that declares a two-argument |
| operator delete[] with a second parameter of type size_t in a base |
| class, and does not override that definition in a derived class. |
| * The C++ ABI has been changed so that: |
| struct A { |
| void operator delete[] (void *, size_t); |
| void operator delete[] (void *); |
| }; |
| |
| does not cause unnecessary storage to be allocated when an array of |
| A objects is allocated. |
| This change will only affect code that declares both of these forms |
| of operator delete[], and declared the two-argument form before the |
| one-argument form. |
| * The C++ ABI has been changed so that when a parameter is passed by |
| value, any cleanup for that parameter is performed in the caller, |
| as specified by the ia64 C++ ABI, rather than the called function |
| as before. As a result, classes with a non-trivial destructor but a |
| trivial copy constructor will be passed and returned by invisible |
| reference, rather than by bitwise copy as before. |
| * G++ now supports the "named return value optimization": for code |
| like |
| A f () { |
| A a; |
| ... |
| return a; |
| } |
| |
| G++ will allocate a in the return value slot, so that the return |
| becomes a no-op. For this to work, all return statements in the |
| function must return the same variable. |
| * Improvements to the C++ library are listed in [5]the libstdc++-v3 |
| FAQ. |
| |
| Objective-C |
| |
| * Annoying linker warnings (due to incorrect code being generated) |
| have been fixed. |
| * If a class method cannot be found, the compiler no longer issues a |
| warning if a corresponding instance method exists in the root |
| class. |
| * Forward @protocol declarations have been fixed. |
| * Loading of categories has been fixed in certain situations (GNU run |
| time only). |
| * The class lookup in the run-time library has been rewritten so that |
| class method dispatch is more than twice as fast as it used to be |
| (GNU run time only). |
| |
| Java |
| |
| * libgcj now includes RMI, java.lang.ref.*, javax.naming, and |
| javax.transaction. |
| * Property files and other system resources can be compiled into |
| executables which use libgcj using the new gcj --resource feature. |
| * libgcj has been ported to more platforms. In particular there is |
| now a mostly-functional mingw32 (Windows) target port. |
| * JNI and CNI invocation interfaces were implemented, so gcj-compiled |
| Java code can now be called from a C/C++ application. |
| * gcj can now use builtin functions for certain known methods, for |
| instance Math.cos. |
| * gcj can now automatically remove redundant array-store checks in |
| some common cases. |
| * The --no-store-checks optimization option was added. This can be |
| used to omit runtime store checks for code which is known not to |
| throw ArrayStoreException |
| * The following third party interface standards were added to libgcj: |
| org.w3c.dom and org.xml.sax. |
| * java.security has been merged with GNU Classpath. The new package |
| is now JDK 1.2 compliant, and much more complete. |
| * A bytecode verifier was added to the libgcj interpreter. |
| * java.lang.Character was rewritten to comply with the Unicode 3.0 |
| standard, and improve performance. |
| * Partial support for many more locales was added to libgcj. |
| * Socket timeouts have been implemented. |
| * libgcj has been merged into a single shared library. There are no |
| longer separate shared libraries for the garbage collector and |
| zlib. |
| * Several performance improvements were made to gcj and libgcj: |
| + Hash synchronization (thin locks) |
| + A special allocation path for finalizer-free objects |
| + Thread-local allocation |
| + Parallel GC, and other GC tweaks |
| |
| Fortran |
| |
| Fortran improvements are listed in [6]the Fortran documentation. |
| |
| Ada |
| |
| [7]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front |
| end and associated tools. The GNAT compiler fully implements the Ada |
| language as defined by the ISO/IEC 8652 standard. |
| |
| Please note that the integration of the Ada front end is still work in |
| progress. |
| |
| New Targets and Target Specific Improvements |
| |
| * Hans-Peter Nilsson has contributed a port to [8]MMIX, the CPU |
| architecture used in new editions of Donald E. Knuth's The Art of |
| Computer Programming. |
| * [9]Axis Communications has contributed its port to the CRIS CPU |
| architecture, used in the ETRAX system-on-a-chip series. See |
| [10]Axis' developer site for technical information. |
| * Alexandre Oliva, of Red Hat, has contributed a port to the |
| [11]SuperH SH5 64-bit RISC microprocessor architecture, extending |
| the existing SH port. |
| * UltraSPARC is fully supported in 64-bit mode. The option -m64 |
| enables it. |
| * For compatibility with the Sun compiler #pragma redefine_extname |
| has been implemented on Solaris. |
| * The x86 back end has had some noticeable work done to it. |
| + SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas |
| Jaeger have contributed a port to the AMD x86-64 architecture. |
| For more information on x86-64 see [12]http://www.x86-64.org. |
| + The compiler now supports MMX, 3DNow!, SSE, and SSE2 |
| instructions. Options -mmmx, -m3dnow, -msse, and -msse2 will |
| enable the respective instruction sets. Intel C++ compatible |
| MMX/3DNow!/SSE intrinsics are implemented. SSE2 intrinsics |
| will be added in next major release. |
| + Following those improvements, targets for Pentium MMX, K6-2, |
| K6-3, Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were |
| added. Refer to the documentation on -march= and -mcpu= |
| options for details. |
| + For those targets that support it, -mfpmath=sse will cause the |
| compiler to generate SSE/SSE2 instructions for floating point |
| math instead of x87 instructions. Usually, this will lead to |
| quicker code -- especially on the Pentium 4. Note that only |
| scalar floating point instructions are used and GCC does not |
| exploit SIMD features yet. |
| + Prefetch support has been added to the Pentium III, Pentium 4, |
| K6-2, K6-3, and Athlon series. |
| + Code generated for floating point to integer conversions has |
| been improved leading to better performance of many 3D |
| applications. |
| * The PowerPC back end has added 64-bit PowerPC GNU/Linux support. |
| * C++ support for AIX has been improved. |
| * Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the |
| PowerPC port supporting the AltiVec programming model (SIMD). The |
| support, though presently useful, is experimental and is expected |
| to stabilize for 3.2. The support is written to conform to |
| Motorola's AltiVec specs. See -maltivec. |
| |
| Obsolete Systems |
| |
| Support for a number of older systems has been declared obsolete in GCC |
| 3.1. Unless there is activity to revive them, the next release of GCC |
| will have their sources permanently removed. |
| |
| All configurations of the following processor architectures have been |
| declared obsolete: |
| * MIL-STD-1750A, 1750a-*-* |
| * AMD A29k, a29k-*-* |
| * Convex, c*-convex-* |
| * Clipper, clipper-*-* |
| * Elxsi, elxsi-*-* |
| * Intel i860, i860-*-* |
| * Sun picoJava, pj-*-* and pjl-*-* |
| * Western Electric 32000, we32k-*-* |
| |
| Most configurations of the following processor architectures have been |
| declared obsolete, but we are preserving a few systems which may have |
| active developers. It is unlikely that the remaining systems will |
| survive much longer unless we see definite signs of port activity. |
| * Motorola 88000 except |
| + Generic a.out, m88k-*-aout* |
| + Generic SVR4, m88k-*-sysv4 |
| + OpenBSD, m88k-*-openbsd* |
| * NS32k except |
| + NetBSD, ns32k-*-netbsd* |
| + OpenBSD, ns32k-*-openbsd*. |
| * ROMP except |
| + OpenBSD, romp-*-openbsd*. |
| |
| Finally, only some configurations of these processor architectures are |
| being obsoleted. |
| * Alpha: |
| + OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka |
| alpha*-*-osf[45], are still supported.) |
| * ARM: |
| + RISCiX, arm-*-riscix*. |
| * i386: |
| + 386BSD, i?86-*-bsd* |
| + Chorus, i?86-*-chorusos* |
| + DG/UX, i?86-*-dgux* |
| + FreeBSD 1.x, i?86-*-freebsd1.* |
| + IBM AIX, i?86-*-aix* |
| + ISC UNIX, i?86-*-isc* |
| + Linux with pre-BFD linker, i?86-*-linux*oldld* |
| + NEXTstep, i?86-next-* |
| + OSF UNIX, i?86-*-osf1* and i?86-*-osfrose* |
| + RTEMS/coff, i?86-*-rtemscoff* |
| + RTEMS/go32, i?86-go32-rtems* |
| + Sequent/BSD, i?86-sequent-bsd* |
| + Sequent/ptx before version 3, i?86-sequent-ptx[12]* and |
| i?86-sequent-sysv3* |
| + SunOS, i?86-*-sunos* |
| * Motorola 68000: |
| + Altos, m68[k0]*-altos-* |
| + Apollo, m68[k0]*-apollo-* |
| + Apple A/UX, m68[k0]*-apple-* |
| + Bull, m68[k0]*-bull-* |
| + Convergent, m68[k0]*-convergent-* |
| + Generic SVR3, m68[k0]*-*-sysv3* |
| + ISI, m68[k0]*-isi-* |
| + LynxOS, m68[k0]*-*-lynxos* |
| + NEXT, m68[k0]*-next-* |
| + RTEMS/coff, m68[k0]*-*-rtemscoff* |
| + Sony, m68[k0]*-sony-* |
| * MIPS: |
| + DEC Ultrix, mips-*-ultrix* and mips-dec-* |
| + Generic BSD, mips-*-bsd* |
| + Generic System V, mips-*-sysv* |
| + IRIX before version 5, mips-sgi-irix[1234]* |
| + RiscOS, mips-*-riscos* |
| + Sony, mips-sony-* |
| + Tandem, mips-tandem-* |
| * SPARC: |
| + RTEMS/a.out, sparc-*-rtemsaout*. |
| |
| Documentation improvements |
| |
| * The old manual ("Using and Porting the GNU Compiler Collection") |
| has been replaced by a users manual ("Using the GNU Compiler |
| Collection") and a separate internals reference manual ("GNU |
| Compiler Collection Internals"). |
| * More complete and much improved documentation about GCC's internal |
| representation used by the C and C++ front ends. |
| * Many cleanups and improvements in general. |
| |
| Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There |
| are also [14]other ways to contact the FSF. |
| |
| These pages are maintained by [15]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [16]GCC manuals. If that fails, the |
| [17]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org. |
| All of our lists have [20]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-05-03 [21]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html |
| 2. http://gcc.gnu.org/news/profiledriven.html |
| 3. http://gcc.gnu.org/benchmarks/ |
| 4. http://gcc.gnu.org/gcc-3.1/c99status.html |
| 5. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html |
| 6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html |
| 7. http://www.adacore.com/home/ |
| 8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html |
| 9. http://www.axis.com/ |
| 10. http://developer.axis.com/ |
| 11. http://www.superh.com/ |
| 12. http://www.x86-64.org/ |
| 13. mailto:gnu@gnu.org |
| 14. http://www.gnu.org/home.html#ContactInfo |
| 15. http://gcc.gnu.org/about.html |
| 16. http://gcc.gnu.org/onlinedocs/ |
| 17. mailto:gcc-help@gcc.gnu.org |
| 18. mailto:gcc@gnu.org |
| 19. mailto:gcc@gcc.gnu.org |
| 20. http://gcc.gnu.org/lists.html |
| 21. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.0/gcc-3.0.html |
| GCC 3.0.4 |
| |
| February 20, 2002 |
| |
| The [1]GNU project and the GCC developers are pleased to announce the |
| release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0 |
| series. |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| GCC 3.0.x has several new optimizations, new targets, new languages and |
| many other new features, relative to GCC 2.95.x. See the [2]new |
| features page for a more complete list. |
| |
| A list of [3]successful builds is updated as new information becomes |
| available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, test results, bug fixes, etc to GCC. This |
| [4]amazing group of volunteers is what makes GCC successful. |
| |
| And finally, we can't in good conscience fail to mention some |
| [5]caveats to using GCC 3.0.x. |
| |
| For additional information about GCC please refer to the [6]GCC project |
| web site or contact the [7]GCC development mailing list. |
| |
| To obtain GCC please use [8]our mirror sites, or our CVS server. |
| __________________________________________________________________ |
| |
| Previous 3.0.x Releases |
| |
| December 20, 2001: GCC 3.0.3 has been released. |
| October 25, 2001: GCC 3.0.2 has been released. |
| August 20, 2001: GCC 3.0.1 has been released. |
| June 18, 2001: GCC 3.0 has been released. |
| |
| Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There |
| are also [10]other ways to contact the FSF. |
| |
| These pages are maintained by [11]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [12]GCC manuals. If that fails, the |
| [13]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org. |
| All of our lists have [16]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [17]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.gnu.org/ |
| 2. http://gcc.gnu.org/gcc-3.0/features.html |
| 3. http://gcc.gnu.org/gcc-3.0/buildstat.html |
| 4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 5. http://gcc.gnu.org/gcc-3.0/caveats.html |
| 6. http://gcc.gnu.org/index.html |
| 7. mailto:gcc@gcc.gnu.org |
| 8. http://gcc.gnu.org/mirrors.html |
| 9. mailto:gnu@gnu.org |
| 10. http://www.gnu.org/home.html#ContactInfo |
| 11. http://gcc.gnu.org/about.html |
| 12. http://gcc.gnu.org/onlinedocs/ |
| 13. mailto:gcc-help@gcc.gnu.org |
| 14. mailto:gcc@gnu.org |
| 15. mailto:gcc@gcc.gnu.org |
| 16. http://gcc.gnu.org/lists.html |
| 17. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.0/features.html |
| GCC 3.0 New Features |
| |
| Additional changes in GCC 3.0.4 |
| |
| * GCC 3.0 now supports newer versions of the [1]NetBSD operating |
| system, which use the ELF object file format, on x86 processors. |
| * Correct debugging information is generated from functions that have |
| lines from multiple files (e.g. yacc output). |
| * A fix for whitespace handling in the -traditional preprocessor, |
| which can affect Fortran. |
| * Fixes to the exception handling runtime. |
| * More fixes for bad code generation in C++. |
| * A fix for shared library generation under AIX 4.3. |
| * Documentation updates. |
| * Port of GCC to Tensilica's Xtensa processor contributed. |
| * A fix for compiling the PPC Linux kernel (FAT fs wouldn't link). |
| |
| Additional changes in GCC 3.0.3 |
| |
| * A fix to correct an accidental change to the PowerPC ABI. |
| * Fixes for bad code generation on a variety of architectures. |
| * Improvements to the debugging information generated for C++ |
| classes. |
| * Fixes for bad code generation in C++. |
| * A fix to avoid crashes in the C++ demangler. |
| * A fix to the C++ standard library to avoid buffer overflows. |
| * Miscellaneous improvements for a variety of architectures. |
| |
| Additional changes in GCC 3.0.2 |
| |
| * Fixes for bad code generation during loop unrolling. |
| * Fixes for bad code generation by the sibling call optimization. |
| * Minor improvements to x86 code generation. |
| * Implementation of function descriptors in C++ vtables for IA64. |
| * Numerous minor bug-fixes. |
| |
| Additional changes in GCC 3.0.1 |
| |
| * C++ fixes for incorrect code-generation. |
| * Improved cross-compiling support for the C++ standard library. |
| * Fixes for some embedded targets that worked in GCC 2.95.3, but not |
| in GCC 3.0. |
| * Fixes for various exception-handling bugs. |
| * A port to the S/390 architecture. |
| |
| General Optimizer Improvements |
| |
| * [2]Basic block reordering pass. |
| * New if-conversion pass with support for conditional (predicated) |
| execution. |
| * New tail call and sibling call elimination optimizations. |
| * New register renaming pass. |
| * New (experimental) [3]static single assignment (SSA) representation |
| support. |
| * New dead-code elimination pass implemented using the SSA |
| representation. |
| * [4]Global null pointer test elimination. |
| * [5]Global code hoisting/unification. |
| * More builtins and optimizations for stdio.h, string.h and old BSD |
| functions, as well as for ISO C99 functions. |
| * New builtin __builtin_expect for giving hints to the branch |
| predictor. |
| |
| New Languages and Language specific improvements |
| |
| * The GNU Compiler for the Java(TM) language (GCJ) is now integrated |
| and supported, including the run-time library containing most |
| common non-GUI Java classes, a bytecode interpreter, and the Boehm |
| conservative garbage collector. Many bugs have been fixed. GCJ can |
| compile Java source or Java bytecodes to either native code or Java |
| class files, and supports native methods written in either the |
| standard JNI or the more efficient and convenient CNI. |
| * Here is a [6]partial list of C++ improvements, both new features |
| and those no longer supported. |
| * New C++ ABI. On the IA-64 platform GCC is capable of |
| inter-operating with other IA-64 compilers. |
| * The new ABI also significantly reduces the size of symbol and debug |
| information. |
| * New [7]C++ support library and many C++ bug fixes, vastly improving |
| our conformance to the ISO C++ standard. |
| * New [8]inliner for C++. |
| * Rewritten C preprocessor, integrated into the C, C++ and Objective |
| C compilers, with very many improvements including ISO C99 support |
| and [9]improvements to dependency generation. |
| * Support for more [10]ISO C99 features. |
| * Many improvements to support for checking calls to format functions |
| such as printf and scanf, including support for ISO C99 format |
| features, extensions from the Single Unix Specification and GNU |
| libc 2.2, checking of strfmon formats and features to assist in |
| auditing for format string security bugs. |
| * New warnings for C code that may have undefined semantics because |
| of violations of sequence point rules in the C standard (such as a |
| = a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall. |
| * Additional warning option -Wfloat-equal. |
| * Improvements to -Wtraditional. |
| * Fortran improvements are listed in [11]the Fortran documentation. |
| |
| New Targets and Target Specific Improvements |
| |
| * New x86 back-end, generating much improved code. |
| * Support for a generic i386-elf target contributed. |
| * New option to emit x86 assembly code using Intel style syntax |
| (-mintel-syntax). |
| * HPUX 11 support contributed. |
| * Improved PowerPC code generation, including scheduled prologue and |
| epilogue. |
| * Port of GCC to Intel's IA-64 processor contributed. |
| * Port of GCC to Motorola's MCore 210 and 340 contributed. |
| * New unified back-end for Arm, Thumb and StrongArm contributed. |
| * Port of GCC to Intel's XScale processor contributed. |
| * Port of GCC to Atmel's AVR microcontrollers contributed. |
| * Port of GCC to Mitsubishi's D30V processor contributed. |
| * Port of GCC to Matsushita's AM33 processor (a member of the MN10300 |
| processor family) contributed. |
| * Port of GCC to Fujitsu's FR30 processor contributed. |
| * Port of GCC to Motorola's 68HC11 and 68HC12 processors contributed. |
| * Port of GCC to Sun's picoJava processor core contributed. |
| |
| Documentation improvements |
| |
| * Substantially rewritten and improved C preprocessor manual. |
| * Many improvements to other documentation. |
| * Manpages for gcc, cpp and gcov are now generated automatically from |
| the master Texinfo manual, eliminating the problem of manpages |
| being out of date. (The generated manpages are only extracts from |
| the full manual, which is provided in Texinfo form, from which |
| info, HTML, other formats and a printed manual can be generated.) |
| * Generated info files are included in the release tarballs alongside |
| their Texinfo sources, avoiding problems on some platforms with |
| building makeinfo as part of the GCC distribution. |
| |
| Other significant improvements |
| |
| * Garbage collection used internally by the compiler for most memory |
| allocation instead of obstacks. |
| * Lengauer and Tarjan algorithm used for computing dominators in the |
| CFG. This algorithm can be significantly faster and more space |
| efficient than our older algorithm. |
| * gccbug script provided to assist in submitting bug reports to our |
| bug tracking system. (Bug reports previously submitted directly to |
| our mailing lists, for which you received no bug tracking number, |
| should be submitted again using gccbug if you can reproduce the |
| problem with GCC 3.0.) |
| * The internal libgcc library is [12]built as a shared library on |
| systems that support it. |
| * Extensive testsuite included with GCC, with many new tests. In |
| addition to tests for GCC bugs that have been fixed, many tests |
| have been added for language features, compiler warnings and |
| builtin functions. |
| * Additional language-independent warning options -Wpacked, -Wpadded, |
| -Wunreachable-code and -Wdisabled-optimization. |
| * Target-independent options -falign-functions, -falign-loops and |
| -falign-jumps. |
| |
| Plus a great many bug fixes and almost all the [13]features found in |
| GCC 2.95. |
| |
| Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There |
| are also [15]other ways to contact the FSF. |
| |
| These pages are maintained by [16]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [17]GCC manuals. If that fails, the |
| [18]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org. |
| All of our lists have [21]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [22]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://www.netbsd.org/ |
| 2. http://gcc.gnu.org/news/reorder.html |
| 3. http://gcc.gnu.org/news/ssa.html |
| 4. http://gcc.gnu.org/news/null.html |
| 5. http://gcc.gnu.org/news/unify.html |
| 6. http://gcc.gnu.org/gcc-3.0/c++features.html |
| 7. http://gcc.gnu.org/libstdc++/ |
| 8. http://gcc.gnu.org/news/inlining.html |
| 9. http://gcc.gnu.org/news/dependencies.html |
| 10. http://gcc.gnu.org/gcc-3.0/c99status.html |
| 11. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html |
| 12. http://gcc.gnu.org/gcc-3.0/libgcc.html |
| 13. http://gcc.gnu.org/gcc-2.95/features.html |
| 14. mailto:gnu@gnu.org |
| 15. http://www.gnu.org/home.html#ContactInfo |
| 16. http://gcc.gnu.org/about.html |
| 17. http://gcc.gnu.org/onlinedocs/ |
| 18. mailto:gcc-help@gcc.gnu.org |
| 19. mailto:gcc@gnu.org |
| 20. mailto:gcc@gcc.gnu.org |
| 21. http://gcc.gnu.org/lists.html |
| 22. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-3.0/caveats.html |
| GCC 3.0 Caveats |
| |
| * -fstrict-aliasing is now part of -O2 and higher optimization |
| levels. This allows the compiler to assume the strictest aliasing |
| rules applicable to the language being compiled. For C and C++, |
| this activates optimizations based on the type of expressions. This |
| optimization may thus break old, non-compliant code. |
| * Enumerations are now properly promoted to int in function |
| parameters and function returns. Normally this change is not |
| visible, but when using -fshort-enums this is an ABI change. |
| * The undocumented extension that allowed C programs to have a label |
| at the end of a compound statement has been deprecated and may be |
| removed in a future version. Programs that now generate a warning |
| about this may be fixed by adding a null statement (a single |
| semicolon) after the label. |
| * The poorly documented extension that allowed string constants in C, |
| C++ and Objective C to contain unescaped newlines has been |
| deprecated and may be removed in a future version. Programs using |
| this extension may be fixed in several ways: the bare newline may |
| be replaced by \n, or preceded by \n\, or string concatenation may |
| be used with the bare newline preceded by \n" and " placed at the |
| start of the next line. |
| * The Chill compiler is not included in GCC 3.0, because of the lack |
| of a volunteer to convert it to use garbage collection. |
| * Certain non-standard iostream methods from earlier versions of |
| libstdc++ are not included in libstdc++ v3, i.e. filebuf::attach, |
| ostream::form, and istream::gets. |
| * The new C++ ABI is not yet fully supported by current (as of |
| 2001-07-01) releases and development versions of GDB, or any |
| earlier versions. There is a problem setting breakpoints by line |
| number, and other related issues that have been fixed in GCC 3.0 |
| but not yet handled in GDB: |
| [1]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html |
| |
| Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There |
| are also [3]other ways to contact the FSF. |
| |
| These pages are maintained by [4]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [5]GCC manuals. If that fails, the |
| [6]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. |
| All of our lists have [9]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-05-07 [10]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html |
| 2. mailto:gnu@gnu.org |
| 3. http://www.gnu.org/home.html#ContactInfo |
| 4. http://gcc.gnu.org/about.html |
| 5. http://gcc.gnu.org/onlinedocs/ |
| 6. mailto:gcc-help@gcc.gnu.org |
| 7. mailto:gcc@gnu.org |
| 8. mailto:gcc@gcc.gnu.org |
| 9. http://gcc.gnu.org/lists.html |
| 10. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-2.95/index.html |
| GCC 2.95 |
| |
| March 16, 2001: The GNU project and the GCC developers are pleased to |
| announce the release of GCC version 2.95.3. |
| |
| Release History |
| |
| GCC 2.95.3 |
| March 16, 2001 |
| |
| GCC 2.95.2 |
| October 27, 1999 |
| |
| GCC 2.95.1 |
| August 19, 1999 |
| |
| GCC 2.95 |
| July 31, 1999. This is the first release of GCC since the April |
| 1999 GCC/EGCS reunification and includes nearly a year's worth |
| of new development and bugfixes. |
| |
| References and Acknowledgements |
| |
| GCC used to stand for the GNU C Compiler, but since the compiler |
| supports several other languages aside from C, it now stands for the |
| GNU Compiler Collection. |
| |
| The whole suite has been extensively [1]regression tested and |
| [2]package tested. It should be reliable and suitable for widespread |
| use. |
| |
| The compiler has several new optimizations, new targets, new languages |
| and other new features. See the [3]new features page for a more |
| complete list of new features found in the GCC 2.95 releases. |
| |
| The sources include installation instructions in both HTML and |
| plaintext forms in the install directory in the distribution. However, |
| the most up to date [4]installation instructions and [5]build/test |
| status are on the web pages. We will update those pages as new |
| information becomes available. |
| |
| The GCC developers would like to thank the numerous people that have |
| contributed new features, test results, bugfixes, etc to GCC. This |
| [6]amazing group of volunteers is what makes GCC successful. |
| |
| And finally, we can't in good conscience fail to mention some |
| [7]caveats to using GCC 2.95. |
| |
| Download GCC 2.95 from one of our many [8]mirror sites. |
| |
| For additional information about GCC please see the [9]GCC project web |
| server or contact the [10]GCC development mailing list. |
| |
| Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There |
| are also [12]other ways to contact the FSF. |
| |
| These pages are maintained by [13]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [14]GCC manuals. If that fails, the |
| [15]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. |
| All of our lists have [18]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [19]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/gcc-2.95/regress.html |
| 2. http://gcc.gnu.org/gcc-2.95/othertest.html |
| 3. http://gcc.gnu.org/gcc-2.95/features.html |
| 4. http://gcc.gnu.org/install/ |
| 5. http://gcc.gnu.org/gcc-2.95/buildstat.html |
| 6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 7. http://gcc.gnu.org/gcc-2.95/caveats.html |
| 8. http://gcc.gnu.org/mirrors.html |
| 9. http://gcc.gnu.org/index.html |
| 10. mailto:gcc@gcc.gnu.org |
| 11. mailto:gnu@gnu.org |
| 12. http://www.gnu.org/home.html#ContactInfo |
| 13. http://gcc.gnu.org/about.html |
| 14. http://gcc.gnu.org/onlinedocs/ |
| 15. mailto:gcc-help@gcc.gnu.org |
| 16. mailto:gcc@gnu.org |
| 17. mailto:gcc@gcc.gnu.org |
| 18. http://gcc.gnu.org/lists.html |
| 19. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-2.95/features.html |
| GCC 2.95 New Features |
| |
| * General Optimizer Improvements: |
| + [1]Localized register spilling to improve speed and code |
| density especially on small register class machines. |
| + [2]Global CSE using lazy code motion algorithms. |
| + [3]Improved global constant/copy propagation. |
| + [4]Improved control flow graph analysis and manipulation. |
| + [5]Local dead store elimination. |
| + [6]Memory Load hoisting/store sinking in loops. |
| + [7]Type based alias analysis is enabled by default. Note this |
| feature will expose bugs in the Linux kernel. Please refer to |
| the FAQ (as shipped with GCC 2.95) for additional information |
| on this issue. |
| + Major revamp of GIV detection, combination and simplification |
| to improve loop performance. |
| + Major improvements to register allocation and reloading. |
| * New Languages and Language specific improvements |
| + [8]Many C++ improvements. |
| + [9]Many Fortran improvements. |
| + [10]Java front-end has been integrated. [11]runtime library is |
| available separately. |
| + [12]ISO C99 support |
| + [13]Chill front-end and runtime has been integrated. |
| + Boehm garbage collector support in libobjc. |
| + More support for various pragmas which appear in vendor |
| include files |
| * New Targets and Target Specific Improvements |
| + [14]SPARC backend rewrite. |
| + -mschedule=8000 will optimize code for PA8000 class |
| processors; -mpa-risc-2-0 will generate code for PA2.0 |
| processors |
| + Various micro-optimizations for the ia32 port. K6 |
| optimizations |
| + Compiler will attempt to align doubles in the stack on the |
| ia32 port |
| + Alpha EV6 support |
| + PowerPC 750 |
| + RS6000/PowerPC: -mcpu=401 was added as an alias for -mcpu=403. |
| -mcpu=e603e was added to do -mcpu=603e and -msoft-float. |
| + c3x, c4x |
| + HyperSPARC |
| + SparcLite86x |
| + sh4 |
| + Support for new systems (OpenBSD, FreeBSD, UWIN, Interix, |
| arm-linux) |
| + vxWorks targets include support for vxWorks threads |
| + StrongARM 110 and ARM9 support added. ARM Scheduling |
| parameters rewritten. |
| + Various changes to the MIPS port to avoid assembler macros, |
| which in turn improves performance |
| + Various performance improvements to the i960 port. |
| + Major rewrite of ns32k port |
| * Other significant improvements |
| + [15]Ability to dump cfg information and display it using vcg. |
| + The new faster scheme for fixing vendor header files is |
| enabled by default. |
| + Experimental internationalization support. |
| + multibyte character support |
| + Some compile-time speedups for pathological problems |
| + Better support for complex types |
| * Plus the usual mountain of bugfixes |
| * Core compiler is based on the gcc2 development tree from Sept 30, |
| 1998, so we have all of the [16]features found in GCC 2.8. |
| |
| Additional Changes in GCC 2.95.1 |
| |
| * Generic bugfixes and improvements |
| + Various documentation fixes related to the GCC/EGCS merger. |
| + Fix memory management bug which could lead to spurious aborts, |
| core dumps or random parsing errors in the compiler. |
| + Fix a couple bugs in the dwarf1 and dwarf2 debug record |
| support. |
| + Fix infinite loop in the CSE optimizer. |
| + Avoid undefined behavior in compiler FP emulation code |
| + Fix install problem when prefix is overridden on the make |
| install command. |
| + Fix problem with unwanted installation of assert.h on some |
| systems. |
| + Fix problem with finding the wrong assembler in a single tree |
| build. |
| + Avoid increasing the known alignment of a register that is |
| already known to be a pointer. |
| * Platform specific bugfixes and improvements |
| + Codegen bugfix for prologue/epilogue for cpu32 target. |
| + Fix long long code generation bug for the Coldfire target. |
| + Fix various aborts in the SH compiler. |
| + Fix bugs in libgcc support library for the SH. |
| + Fix alpha ev6 code generation bug. |
| + Fix problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on |
| AIX platforms. |
| + Fix -fpic code generation bug for rs6000/ppc svr4 targets. |
| + Fix varargs/stdarg code generation bug for rs6000/ppc svr4 |
| targets. |
| + Fix weak symbol handling for rs6000/ppc svr4 targets. |
| + Fix various problems with 64bit code generation for the |
| rs6000/ppc port. |
| + Fix codegen bug which caused tetex to be mis-compiled on the |
| x86. |
| + Fix compiler abort in new cfg code exposed by x86 port. |
| + Fix out of range array reference in code convert flat |
| registers to the x87 stacked FP register file. |
| + Fix minor vxworks configuration bug. |
| + Fix return type of bsearch for SunOS 4.x. |
| * Language & Runtime specific fixes. |
| + The G++ signature extension has been deprecated. It will be |
| removed in the next major release of G++. Use of signatures |
| will result in a warning from the compiler. |
| + Several bugs relating to templates and namespaces were fixed. |
| + A bug that caused crashes when combining templates with -g on |
| DWARF1 platforms was fixed. |
| + Pointers-to-members, virtual functions, and multiple |
| inheritance should now work together correctly. |
| + Some code-generation bugs relating to function try blocks were |
| fixed. |
| + G++ is a little bit more lenient with certain archaic |
| constructs than in GCC 2.95. |
| + Fix to prevent shared library version #s from bring truncated |
| to 1 digit |
| + Fix missing std:: in the libstdc++ library. |
| + Fix stream locking problems in libio. |
| + Fix problem in java compiler driver. |
| |
| Additional Changes in GCC 2.95.2 |
| |
| The -fstrict-aliasing is not enabled by default for GCC 2.95.2. While |
| the optimizations performed by -fstrict-aliasing are valid according to |
| the C and C++ standards, the optimization have caused some problems, |
| particularly with old non-conforming code. |
| |
| The GCC developers are experimenting with ways to warn users about code |
| which violates the C/C++ standards, but those warnings are not ready |
| for widespread use at this time. Rather than wait for those warnings |
| the GCC developers have chosen to disable -fstrict-aliasing by default |
| for the GCC 2.95.2 release. |
| |
| We strongly encourage developers to find and fix code which violates |
| the C/C++ standards as -fstrict-aliasing may be enabled by default in |
| future releases. Use the option -fstrict-aliasing to re-enable these |
| optimizations. |
| * Generic bugfixes and improvements |
| + Fix incorrectly optimized memory reference in global common |
| subexpression elimination (GCSE) optimization pass. |
| + Fix code generation bug in regmove.c in which it could |
| incorrectly change a "const" value. |
| + Fix bug in optimization of conditionals involving volatile |
| memory references. |
| + Avoid over-allocation of stack space for some procedures. |
| + Fixed bug in the compiler which caused incorrect optimization |
| of an obscure series of bit manipulations, shifts and |
| arithmetic. |
| + Fixed register allocator bug which caused teTeX to be |
| mis-compiled on SPARC targets. |
| + Avoid incorrect optimization of degenerate case statements for |
| certain targets such as the ARM. |
| + Fix out of range memory reference in the jump optimizer. |
| + Avoid dereferencing null pointer in fix-header. |
| + Fix test for GCC specific features so that it is possible to |
| bootstrap with gcc-2.6.2 and older versions of GCC. |
| + Fix typo in scheduler which could potentially cause out of |
| range memory accesses. |
| + Avoid incorrect loop reversal which caused incorrect code for |
| certain loops on PowerPC targets. |
| + Avoid incorrect optimization of switch statements on certain |
| targets (for example the ARM). |
| * Platform specific bugfixes and improvements |
| + Work around bug in Sun V5.0 compilers which caused bootstrap |
| comparison failures on SPARC targets. |
| + Fix SPARC backend bug which caused aborts in final.c. |
| + Fix sparc-hal-solaris2* configuration fragments. |
| + Fix bug in sparc block profiling. |
| + Fix obscure code generation bug for the PARISC targets. |
| + Define __STDC_EXT__ for HPUX configurations. |
| + Various POWERPC64 code generation bugfixes. |
| + Fix abort for PPC targets using ELF (ex GNU/Linux). |
| + Fix collect2 problems for AIX targets. |
| + Correct handling of .file directive for PPC targets. |
| + Fix bug in fix_trunc x86 patterns. |
| + Fix x86 port to correctly pop the FP stack for functions that |
| return structures in memory. |
| + Fix minor bug in strlen x86 pattern. |
| + Use stabs debugging instead of dwarf1 for x86-solaris targets. |
| + Fix template repository code to handle leading underscore in |
| mangled names. |
| + Fix weak/weak alias support for OpenBSD. |
| + GNU/Linux for the ARM has C++ compatible include files. |
| * Language & Runtime specific fixes. |
| + Fix handling of constructor attribute in the C front-end which |
| caused problems building the Chill runtime library on some |
| targets. |
| + Fix minor problem merging type qualifiers in the C front-end. |
| + Fix aliasing bug for pointers and references (C/C++). |
| + Fix incorrect "non-constant initializer bug" when -traditional |
| or -fwritable-strings is enabled. |
| + Fix build error for Chill front-end on SunOS. |
| + Do not complain about duplicate instantiations when using |
| -frepo (C++). |
| + Fix array bounds handling in C++ front-end which caused |
| problems with dwarf debugging information in some |
| circumstances. |
| + Fix minor namespace problem. |
| + Fix problem linking java programs. |
| |
| Additional Changes in GCC 2.95.3 |
| |
| * Generic bugfixes and improvements |
| + Fix numerous problems that caused incorrect optimization in |
| the register reloading code. |
| + Fix numerous problems that caused incorrect optimization in |
| the loop optimizer. |
| + Fix aborts in the functions build_insn_chain and scan_loops |
| under some circumstances. |
| + Fix an alias analysis bug. |
| + Fix an infinite compilation bug in the combiner. |
| + A few problems with complex number support have been fixed. |
| + It is no longer possible for gcc to act as a fork bomb when |
| installed incorrectly. |
| + The -fpack-struct option should be recognized now. |
| + Fixed a bug that caused incorrect code to be generated due to |
| a lost stack adjustment. |
| * Platform specific bugfixes and improvements |
| + Support building ARM toolchains hosted on Windows. |
| + Fix attribute calculations in ARM toolchains. |
| + arm-linux support has been improved. |
| + Fix a PIC failure on sparc targets. |
| + On ix86 targets, the regparm attribute should now work |
| reliably. |
| + Several updates for the h8300 port. |
| + Fix problem building libio with glibc 2.2. |
| |
| Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There |
| are also [18]other ways to contact the FSF. |
| |
| These pages are maintained by [19]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [20]GCC manuals. If that fails, the |
| [21]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org. |
| All of our lists have [24]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-06-15 [25]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/news/spill.html |
| 2. http://gcc.gnu.org/news/lcm.html |
| 3. http://gcc.gnu.org/news/cprop.html |
| 4. http://gcc.gnu.org/news/cfg.html |
| 5. http://gcc.gnu.org/news/dse.html |
| 6. http://gcc.gnu.org/news/hoist.html |
| 7. http://gcc.gnu.org/news/alias.html |
| 8. http://gcc.gnu.org/gcc-2.95/c++features.html |
| 9. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html |
| 10. http://gcc.gnu.org/java/gcj-announce.txt |
| 11. http://gcc.gnu.org/news/javaannounce.html |
| 12. http://gcc.gnu.org/c99status.html |
| 13. http://gcc.gnu.org/news/chill.html |
| 14. http://gcc.gnu.org/news/sparc.html |
| 15. http://gcc.gnu.org/news/egcs-vcg.html |
| 16. http://gcc.gnu.org/egcs-1.0/features-2.8.html |
| 17. mailto:gnu@gnu.org |
| 18. http://www.gnu.org/home.html#ContactInfo |
| 19. http://gcc.gnu.org/about.html |
| 20. http://gcc.gnu.org/onlinedocs/ |
| 21. mailto:gcc-help@gcc.gnu.org |
| 22. mailto:gcc@gnu.org |
| 23. mailto:gcc@gcc.gnu.org |
| 24. http://gcc.gnu.org/lists.html |
| 25. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/gcc-2.95/caveats.html |
| GCC 2.95 Caveats |
| |
| * GCC 2.95 will issue an error for invalid asm statements that had |
| been silently accepted by earlier versions of the compiler. This is |
| particularly noticeable when compiling older versions of the Linux |
| kernel (2.0.xx). Please refer to the FAQ (as shipped with GCC 2.95) |
| for more information on this issue. |
| * GCC 2.95 implements type based alias analysis to disambiguate |
| memory references. Some programs, particularly the Linux kernel |
| violate ANSI/ISO aliasing rules and therefore may not operate |
| correctly when compiled with GCC 2.95. Please refer to the FAQ (as |
| shipped with GCC 2.95) for more information on this issue. |
| * GCC 2.95 has a known bug in its handling of complex variables for |
| 64bit targets. Instead of silently generating incorrect code, GCC |
| 2.95 will issue a fatal error for situations it can not handle. |
| This primarily affects the Fortran community as Fortran makes more |
| use of complex variables than C or C++. |
| * GCC 2.95 has an integrated libstdc++, but does not have an |
| integrated libg++. Furthermore old libg++ releases will not work |
| with GCC 2.95. You can retrieve a recent copy of libg++ from the |
| [1]GCC ftp server. |
| Note most C++ programs only need libstdc++. |
| * Exception handling may not work with shared libraries, particularly |
| on alphas, hppas, rs6000/powerpc and mips based platforms. |
| Exception handling is known to work on x86 GNU/Linux platforms with |
| shared libraries. |
| * In general, GCC 2.95 is more rigorous about rejecting invalid C++ |
| code or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0, |
| or EGCS 1.1. As a result it may be necessary to fix C++ code before |
| it will compile with GCC 2.95. |
| * G++ is also converting toward the ISO C++ standard; as a result |
| code which was previously valid (and thus accepted by other |
| compilers and older versions of g++) may no longer be accepted. The |
| flag -fpermissive may allow some non-conforming code to compile |
| with GCC 2.95. |
| * GCC 2.95 compiled C++ code is not binary compatible with EGCS |
| 1.1.x, EGCS 1.0.x or GCC 2.8.x. |
| * GCC 2.95 does not have changes from the GCC 2.8 tree that were made |
| between Sept 30, 1998 and April 30, 1999 (the official end of the |
| GCC 2.8 project). Future GCC releases will include all the changes |
| from the defunct GCC 2.8 sources. |
| |
| Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There |
| are also [3]other ways to contact the FSF. |
| |
| These pages are maintained by [4]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [5]GCC manuals. If that fails, the |
| [6]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org. |
| All of our lists have [9]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [10]Valid XHTML 1.0 |
| |
| References |
| |
| 1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz |
| 2. mailto:gnu@gnu.org |
| 3. http://www.gnu.org/home.html#ContactInfo |
| 4. http://gcc.gnu.org/about.html |
| 5. http://gcc.gnu.org/onlinedocs/ |
| 6. mailto:gcc-help@gcc.gnu.org |
| 7. mailto:gcc@gnu.org |
| 8. mailto:gcc@gcc.gnu.org |
| 9. http://gcc.gnu.org/lists.html |
| 10. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/egcs-1.1/index.html |
| EGCS 1.1 |
| |
| September 3, 1998: We are pleased to announce the release of EGCS 1.1. |
| December 1, 1998: We are pleased to announce the release of EGCS 1.1.1. |
| March 15, 1999: We are pleased to announce the release of EGCS 1.1.2. |
| |
| EGCS is a free software project to further the development of the GNU |
| compilers using an open development environment. |
| |
| EGCS 1.1 is a major new release of the EGCS compiler system. It has |
| been [1]extensively tested and is believed to be stable and suitable |
| for widespread use. |
| |
| EGCS 1.1 is based on an June 6, 1998 snapshot of the GCC 2.8 |
| development sources; it contains all of the new features found in GCC |
| 2.8.1 as well as all new development from GCC up to June 6, 1998. |
| |
| EGCS 1.1 also contains many improvements and features not found in GCC |
| or in older versions of EGCS: |
| * Global common subexpression elimination and global constant/copy |
| propagation (aka [2]gcse) |
| * Ongoing improvements to the [3]alias analysis support to allow for |
| better optimizations throughout the compiler. |
| * Vastly improved [4]C++ compiler and integrated C++ runtime |
| libraries. |
| * Fixes for the /tmp symlink race security problems. |
| * New targets including mips16, arm-thumb and 64 bit PowerPC. |
| * Improvements to GNU Fortran (g77) compiler and runtime library made |
| since g77 version 0.5.23. |
| |
| See the [5]new features page for a more complete list of new features |
| found in EGCS 1.1 releases. |
| |
| EGCS 1.1.1 is a minor update to fix several serious problems in EGCS |
| 1.1: |
| * General improvements and fixes |
| + Avoid some stack overflows when compiling large functions. |
| + Avoid incorrect loop invariant code motions. |
| + Fix some core dumps on Linux kernel code. |
| + Bring back the imake -Di386 and friends fix from EGCS 1.0.2. |
| + Fix code generation problem in gcse. |
| + Various documentation related fixes. |
| * g++/libstdc++ improvements and fixes |
| + MT safe EH fix for setjmp/longjmp based exception handling. |
| + Fix a few bad interactions between optimization and exception |
| handling. |
| + Fixes for demangling of template names starting with "__". |
| + Fix a bug that would fail to run destructors in some cases |
| with -O2. |
| + Fix 'new' of classes with virtual bases. |
| + Fix crash building Qt on the Alpha. |
| + Fix failure compiling WIFEXITED macro on GNU/Linux. |
| + Fix some -frepo failures. |
| * g77 and libf2c improvements and fixes |
| + Various documentation fixes. |
| + Avoid compiler crash on RAND intrinsic. |
| + Fix minor bugs in makefiles exposed by BSD make programs. |
| + Define _XOPEN_SOURCE for libI77 build to avoid potential |
| problems on some 64-bit systems. |
| + Fix problem with implicit endfile on rewind. |
| + Fix spurious recursive I/O errors. |
| * platform specific improvements and fixes |
| + Match all versions of UnixWare7. |
| + Do not assume x86 SVR4 or UnixWare targets can handle stabs. |
| + Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion |
| from unsigned ints to double precision floats. |
| + Fix ARM ABI issue with NetBSD. |
| + Fix a few arm code generation bugs. |
| + Fixincludes will fix additional broken SCO OpenServer header |
| files. |
| + Fix a m68k backend bug which caused invalid offsets in reg+d |
| addresses. |
| + Fix problems with 64bit AIX 4.3 support. |
| + Fix handling of long longs for varargs/stdarg functions on the |
| ppc. |
| + Minor fixes to CPP predefines for Windows. |
| + Fix code generation problems with gpr<->fpr copies for 64bit |
| ppc. |
| + Fix a few coldfire code generation bugs. |
| + Fix some more header file problems on SunOS 4.x. |
| + Fix assert.h handling for RTEMS. |
| + Fix Windows handling of TREE_SYMBOL_REFERENCED. |
| + Fix x86 compiler abort in reg-stack pass. |
| + Fix cygwin/windows problem with section attributes. |
| + Fix Alpha code generation problem exposed by SMP Linux |
| kernels. |
| + Fix typo in m68k 32->64bit integer conversion. |
| + Make sure target libraries build with -fPIC for PPC & Alpha |
| targets. |
| |
| EGCS 1.1.2 is a minor update to fix several serious problems in EGCS |
| 1.1.1: |
| * General improvements and fixes |
| + Fix bug in loop optimizer which caused the SPARC (and |
| potentially other) ports to segfault. |
| + Fix infinite recursion in alias analysis and combiner code. |
| + Fix bug in regclass preferencing. |
| + Fix incorrect loop reversal which caused incorrect code to be |
| generated for several targets. |
| + Fix return value for builtin memcpy. |
| + Reduce compile time for certain loops which exposed quadratic |
| behavior in the loop optimizer. |
| + Fix bug which caused volatile memory to be written multiple |
| times when only one write was needed/desired. |
| + Fix compiler abort in caller-save.c |
| + Fix combiner bug which caused incorrect code generation for |
| certain division by constant operations. |
| + Fix incorrect code generation due to a bug in range check |
| optimizations. |
| + Fix incorrect code generation due to mis-handling of clobbered |
| values in CSE. |
| + Fix compiler abort/segfault due to incorrect register |
| splitting when unrolling loops. |
| + Fix code generation involving autoincremented addresses with |
| ternary operators. |
| + Work around bug in the scheduler which caused qt to be |
| mis-compiled on some platforms. |
| + Fix code generation problems with -fshort-enums. |
| + Tighten security for temporary files. |
| + Improve compile time for codes which make heavy use of |
| overloaded functions. |
| + Fix multiply defined constructor/destructor symbol problems. |
| + Avoid setting bogus RPATH environment variable during |
| bootstrap. |
| + Avoid GNU-make dependencies in the texinfo subdir. |
| + Install CPP wrapper script in $(prefix)/bin if --enable-cpp. |
| --enable-cpp=<dirname> can be used to specify an additional |
| install directory for the cpp wrapper script. |
| + Fix CSE bug which caused incorrect label-label refs to appear |
| on some platforms. |
| + Avoid linking in EH routines from libgcc if they are not |
| needed. |
| + Avoid obscure bug in aliasing code. |
| + Fix bug in weak symbol handling. |
| * Platform-specific improvements and fixes |
| + Fix detection of PPro/PII on Unixware 7. |
| + Fix compiler segfault when building spec99 and other programs |
| for SPARC targets. |
| + Fix code-generation bugs for integer and floating point |
| conditional move instructions on the PPro/PII. |
| + Use fixincludes to fix byteorder problems on i?86-*-sysv. |
| + Fix build failure for the arc port. |
| + Fix floating point format configuration for i?86-gnu port. |
| + Fix problems with hppa1.0-hp-hpux10.20 configuration when |
| threads are enabled. |
| + Fix coldfire code generation bugs. |
| + Fix "unrecognized insn" problems for Alpha and PPC ports. |
| + Fix h8/300 code generation problem with floating point values |
| in memory. |
| + Fix unrecognized insn problems for the m68k port. |
| + Fix namespace-pollution problem for the x86 port. |
| + Fix problems with old assembler on x86 NeXT systems. |
| + Fix PIC code-generation problems for the SPARC port. |
| + Fix minor bug with LONG_CALLS in PowerPC SVR4 support. |
| + Fix minor ISO namespace violation in Alpha varargs/stdarg |
| support. |
| + Fix incorrect "braf" instruction usage for the SH port. |
| + Fix minor bug in va-sh which prevented its use with -ansi. |
| + Fix problems recognizing and supporting FreeBSD. |
| + Handle OpenBSD systems correctly. |
| + Minor fixincludes fix for Digital UNIX 4.0B. |
| + Fix problems with ctors/dtors in SCO shared libraries. |
| + Abort instead of generating incorrect code for PPro/PII |
| floating point conditional moves. |
| + Avoid multiply defined symbols on Linux/GNU systems using |
| libc-5.4.xx. |
| + Fix abort in alpha compiler. |
| * Fortran-specific fixes |
| + Fix the IDate intrinsic (VXT) (in libg2c) so the returned year |
| is in the documented, non-Y2K-compliant range of 0-99, instead |
| of being returned as 100 in the year 2000. |
| + Fix the `Date_and_Time' intrinsic (in libg2c) to return the |
| milliseconds value properly in Values(8). |
| + Fix the `LStat' intrinsic (in libg2c) to return device-ID |
| information properly in SArray(7). |
| |
| Each release includes installation instructions in both HTML and |
| plaintext forms (see the INSTALL directory in the toplevel directory of |
| the distribution). However, we also keep the most up to date |
| [6]installation instructions and [7]build/test status on our web page. |
| We will update those pages as new information becomes available. |
| |
| The EGCS project would like to thank the numerous people that have |
| contributed new features, test results, bugfixes, etc. This [8]amazing |
| group of volunteers is what makes EGCS successful. |
| |
| And finally, we can't in good conscience fail to mention some |
| [9]caveats to using EGCS 1.1. |
| |
| Download EGCS from egcs.cygnus.com (USA California). |
| |
| The EGCS 1.1 release is also available on many mirror sites. |
| [10]Goto mirror list to find a closer site. |
| |
| Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There |
| are also [12]other ways to contact the FSF. |
| |
| These pages are maintained by [13]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [14]GCC manuals. If that fails, the |
| [15]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org. |
| All of our lists have [18]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [19]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html |
| 2. http://gcc.gnu.org/news/gcse.html |
| 3. http://gcc.gnu.org/news/alias.html |
| 4. http://gcc.gnu.org/egcs-1.1/c++features.html |
| 5. http://gcc.gnu.org/egcs-1.1/features.html |
| 6. http://gcc.gnu.org/install/ |
| 7. http://gcc.gnu.org/egcs-1.1/buildstat.html |
| 8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html |
| 9. http://gcc.gnu.org/egcs-1.1/caveats.html |
| 10. http://gcc.gnu.org/mirrors.html |
| 11. mailto:gnu@gnu.org |
| 12. http://www.gnu.org/home.html#ContactInfo |
| 13. http://gcc.gnu.org/about.html |
| 14. http://gcc.gnu.org/onlinedocs/ |
| 15. mailto:gcc-help@gcc.gnu.org |
| 16. mailto:gcc@gnu.org |
| 17. mailto:gcc@gcc.gnu.org |
| 18. http://gcc.gnu.org/lists.html |
| 19. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/egcs-1.1/features.html |
| EGCS 1.1 new features |
| |
| * Integrated GNU Fortran (g77) compiler and runtime library with |
| improvements, based on g77 version 0.5.23. |
| * Vast improvements in the C++ compiler; so many they have [1]page of |
| their own! |
| * Compiler implements [2]global common subexpression elimination and |
| global copy/constant propagation. |
| * More major improvements in the [3]alias analysis code. |
| * More major improvements in the exception handling code to improve |
| performance, lower static overhead and provide the infrastructure |
| for future improvements. |
| * The infamous /tmp symlink race security problems have been fixed. |
| * The regmove optimization pass has been nearly completely rewritten |
| to improve performance of generated code. |
| * The compiler now recomputes register usage information before local |
| register allocation. By providing more accurate information to the |
| priority based allocator, we get better register allocation. |
| * The register reloading phase of the compiler optimizes spill code |
| much better than in previous releases. |
| * Some bad interactions between the register allocator and |
| instruction scheduler have been fixed, resulting in much better |
| code for certain programs. Additionally, we have tuned the |
| scheduler in various ways to improve performance of generated code |
| for some architectures. |
| * The compiler's branch shortening algorithms have been significantly |
| improved to work better on targets which align jump targets. |
| * The compiler now supports -Os to prefer optimizing for code space |
| over optimizing for code speed. |
| * The compiler will now totally eliminate library calls which compute |
| constant values. This primarily helps targets with no integer |
| div/mul support and targets without floating point support. |
| * The compiler now supports an extensive "--help" option. |
| * cpplib has been greatly improved and may be suitable for limited |
| use. |
| * Memory footprint for the compiler has been significantly reduced |
| for some pathological cases. |
| * The time to build EGCS has been improved for certain targets |
| (particularly the alpha and mips platforms). |
| * Many infrastructure improvements throughout the compiler, plus the |
| usual mountain of bugfixes and minor improvements. |
| * Target dependent improvements: |
| + SPARC port now includes V8 plus and V9 support as well as |
| performance tuning for Ultra class machines. The SPARC port |
| now uses the Haifa scheduler. |
| + Alpha port has been tuned for the EV6 processor and has an |
| optimized expansion of memcpy/bzero. The Alpha port now uses |
| the Haifa scheduler. |
| + RS6000/PowerPC: support for the Power64 architecture and AIX |
| 4.3. The RS6000/PowerPC port now uses the Haifa scheduler. |
| + x86: Alignment of static store data and jump targets is per |
| Intel recommendations now. Various improvements throughout the |
| x86 port to improve performance on Pentium processors |
| (including improved epilogue sequences for Pentium chips and |
| backend improvements which should help register allocation on |
| all x86 variants. Conditional move support has been fixed and |
| enabled for PPro processors. The x86 port also better supports |
| 64bit operations now. Unixware 7, a System V Release 5 target, |
| is now supported and SCO OpenServer targets can support GAS. |
| + MIPS has improved multiply/multiply-add support and now |
| includes mips16 ISA support. |
| + M68k has many micro-optimizations and Coldfire fixes. |
| * Core compiler is based on the GCC development tree from June 9, |
| 1998, so we have all of the [4]features found in GCC 2.8. |
| |
| Please send FSF & GNU inquiries & questions to [5]gnu@gnu.org. There |
| are also [6]other ways to contact the FSF. |
| |
| These pages are maintained by [7]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [8]GCC manuals. If that fails, the |
| [9]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [10]gcc@gnu.org or [11]gcc@gcc.gnu.org. |
| All of our lists have [12]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2008-07-26 [13]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/egcs-1.1/c++features.html |
| 2. http://gcc.gnu.org/news/gcse.html |
| 3. http://gcc.gnu.org/news/alias.html |
| 4. http://gcc.gnu.org/egcs-1.0/features-2.8.html |
| 5. mailto:gnu@gnu.org |
| 6. http://www.gnu.org/home.html#ContactInfo |
| 7. http://gcc.gnu.org/about.html |
| 8. http://gcc.gnu.org/onlinedocs/ |
| 9. mailto:gcc-help@gcc.gnu.org |
| 10. mailto:gcc@gnu.org |
| 11. mailto:gcc@gcc.gnu.org |
| 12. http://gcc.gnu.org/lists.html |
| 13. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/egcs-1.1/caveats.html |
| EGCS 1.1 Caveats |
| |
| * EGCS has an integrated libstdc++, but does not have an integrated |
| libg++. Furthermore old libg++ releases will not work with EGCS; HJ |
| Lu has made a libg++-2.8.1.2 snapshot available which may work with |
| EGCS. |
| Note most C++ programs only need libstdc++. |
| * Exception handling may not work with shared libraries, particularly |
| on alphas, hppas, rs6000/powerpc and mips based platforms. |
| Exception handling is known to work on x86-linux platforms with |
| shared libraries. |
| * Some versions of the Linux kernel have bugs which prevent them from |
| being compiled or from running when compiled by EGCS. See the FAQ |
| (as shipped with EGCS 1.1) for additional information. |
| * In general, EGCS is more rigorous about rejecting invalid C++ code |
| or deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As |
| a result it may be necessary to fix C++ code before it will compile |
| with EGCS. |
| * G++ is also converting toward the ISO C++ standard; as a result |
| code which was previously valid (and thus accepted by other |
| compilers and older versions of g++) may no longer be accepted. |
| * EGCS 1.1 compiled C++ code is not binary compatible with EGCS 1.0.x |
| or GCC 2.8.x due to changes necessary to support thread safe |
| exception handling. |
| |
| Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There |
| are also [2]other ways to contact the FSF. |
| |
| These pages are maintained by [3]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [4]GCC manuals. If that fails, the |
| [5]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. |
| All of our lists have [8]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [9]Valid XHTML 1.0 |
| |
| References |
| |
| 1. mailto:gnu@gnu.org |
| 2. http://www.gnu.org/home.html#ContactInfo |
| 3. http://gcc.gnu.org/about.html |
| 4. http://gcc.gnu.org/onlinedocs/ |
| 5. mailto:gcc-help@gcc.gnu.org |
| 6. mailto:gcc@gnu.org |
| 7. mailto:gcc@gcc.gnu.org |
| 8. http://gcc.gnu.org/lists.html |
| 9. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/egcs-1.0/index.html |
| EGCS 1.0 |
| |
| December 3, 1997: We are pleased to announce the release of EGCS 1.0. |
| January 6, 1998: We are pleased to announce the release of EGCS 1.0.1. |
| March 16, 1998: We are pleased to announce the release of EGCS 1.0.2. |
| May 15, 1998 We are pleased to announce the release of EGCS 1.0.3. |
| |
| EGCS is a collaborative effort involving several groups of hackers |
| using an open development model to accelerate development and testing |
| of GNU compilers and runtime libraries. |
| |
| An important goal of EGCS is to allow wide scale testing of |
| experimental features and optimizations; therefore, EGCS contains some |
| features and optimizations which are still under development. However, |
| EGCS has been carefully tested and should be comparable in quality to |
| most GCC releases. |
| |
| EGCS 1.0 is based on an August 2, 1997 snapshot of the GCC 2.8 |
| development sources; it contains nearly all of the new features found |
| in GCC 2.8. |
| |
| EGCS 1.0 also contains many improvements and features not found in GCC |
| 2.7 and even the GCC 2.8 series (which was released after the original |
| EGCS 1.0 release). |
| * Integrated C++ runtime libraries, including support for most major |
| GNU/Linux systems! |
| * The integrated libstdc++ library includes a verbatim copy of SGI's |
| STL release. |
| * Integrated GNU Fortran compiler. |
| * New instruction scheduler. |
| * New alias analysis code. |
| |
| See the [1]new features page for a more complete list of new features. |
| |
| EGCS 1.0.1 is a minor update to the EGCS 1.0 compiler to fix a few |
| critical bugs and add support for Red Hat 5.0 Linux. Changes since the |
| EGCS 1.0 release: |
| * Add support for Red Hat 5.0 Linux and better support for Linux |
| systems using glibc2. |
| Many programs failed to link when compiled with EGCS 1.0 on Red Hat |
| 5.0 or on systems with newer versions of glibc2. EGCS 1.0.1 should |
| fix these problems. |
| * Compatibility with both EGCS 1.0 and GCC 2.8 libgcc exception |
| handling interfaces. |
| To avoid future compatibility problems, we strongly urge anyone who |
| is planning on distributing shared libraries that contain C++ code |
| to upgrade to EGCS 1.0.1 first. |
| Soon after EGCS 1.0 was released, the GCC developers made some |
| incompatible changes in libgcc's exception handling interfaces. |
| These changes were needed to solve problems on some platforms. This |
| means that GCC 2.8.0, when released, will not be seamlessly |
| compatible with shared libraries built by EGCS 1.0. The reason is |
| that the libgcc.a in GCC 2.8.0 will not contain a function needed |
| by the old interface. |
| The result of this is that there may be compatibility problems with |
| shared libraries built by EGCS 1.0 when used with GCC 2.8.0. |
| With EGCS 1.0.1, generated code uses the new (GCC 2.8.0) interface, |
| and libgcc.a has the support routines for both the old and the new |
| interfaces (so EGCS 1.0.1 and EGCS 1.0 code can be freely mixed, |
| and EGCS 1.0.1 and GCC 2.8.0 code can be freely mixed). |
| The maintainers of GCC 2.x have decided against including seamless |
| support for the old interface in 2.8.0, since it was never |
| "official", so to avoid future compatibility problems we recommend |
| against distributing any shared libraries built by EGCS 1.0 that |
| contain C++ code (upgrade to 1.0.1 and use that). |
| * Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends. |
| The x86 changes fix code generation errors exposed when building |
| glibc2 and the Linux dynamic linker (ld.so). |
| The hppa change fixes a compiler abort when configured for use with |
| RTEMS. |
| The MIPS changes fix problems with the definition of LONG_MAX on |
| newer systems, allow for command line selection of the target ABI, |
| and fix one code generation problem. |
| The rs6000/ppc change fixes some problems with passing structures |
| to varargs/stdarg functions. |
| * A few machine independent bugfixes, mostly to fix code generation |
| errors when building Linux kernels or glibc. |
| * Fix a few critical exception handling and template bugs in the C++ |
| compiler. |
| * Fix Fortran namelist bug on alphas. |
| * Fix build problems on x86-solaris systems. |
| |
| EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several |
| serious problems in EGCS 1.0.1. |
| * General improvements and fixes |
| + Memory consumption significantly reduced, especially for |
| templates and inline functions. |
| + Fix various problems with glibc2.1. |
| + Fix loop optimization bug exposed by rs6000/ppc port. |
| + Fix to avoid potential code generation problems in jump.c. |
| + Fix some undefined symbol problems in dwarf1 debug support. |
| * g++/libstdc++ improvements and fixes |
| + libstdc++ in the EGCS release has been updated and should be |
| link compatible with libstdc++-2.8. |
| + Various fixes in libio/libstdc++ to work better on Linux |
| systems. |
| + Fix problems with duplicate symbols on systems that do not |
| support weak symbols. |
| + Memory corruption bug and undefined symbols in bastring have |
| been fixed. |
| + Various exception handling fixes. |
| + Fix compiler abort for very long thunk names. |
| * g77 improvements and fixes |
| + Fix compiler crash for omitted bound in Fortran CASE |
| statement. |
| + Add missing entries to g77 lang-options. |
| + Fix problem with -fpedantic in the g77 compiler. |
| + Fix "backspace" problem with g77 on alphas. |
| + Fix x86 backend problem with Fortran literals and -fpic. |
| + Fix some of the problems with negative subscripts for g77 on |
| alphas. |
| + Fixes for Fortran builds on cygwin32/mingw32. |
| * platform specific improvements and fixes |
| + Fix long double problems on x86 (exposed by glibc). |
| + x86 ports define i386 again to keep imake happy. |
| + Fix exception handling support on NetBSD ports. |
| + Several changes to collect2 to fix many problems with AIX. |
| + Define __ELF__ for rs6000/linux. |
| + Fix -mcall-linux problem on rs6000/linux. |
| + Fix stdarg/vararg problem for rs6000/linux. |
| + Allow autoconf to select a proper install problem on AIX 3.1. |
| + m68k port support includes -mcpu32 option as well as cpu32 |
| multilibs. |
| + Fix stdarg bug for irix6. |
| + Allow EGCS to build on irix5 without the gnu assembler. |
| + Fix problem with static linking on sco5. |
| + Fix bootstrap on sco5 with native compiler. |
| + Fix for abort building newlib on H8 target. |
| + Fix fixincludes handling of math.h on SunOS. |
| + Minor fix for Motorola 3300 m68k systems. |
| |
| EGCS 1.0.3 is a minor update to the EGCS 1.0.2 compiler to fix a few |
| problems reported by Red Hat for builds of Red Hat 5.1. |
| * Generic bugfixes: |
| + Fix a typo in the libio library which resulted in incorrect |
| behavior of istream::get. |
| + Fix the Fortran negative array index problem. |
| + Fix a major problem with the ObjC runtime thread support |
| exposed by glibc2. |
| + Reduce memory consumption of the Haifa scheduler. |
| * Target specific bugfixes: |
| + Fix one x86 floating point code generation bug exposed by |
| glibc2 builds. |
| + Fix one x86 internal compiler error exposed by glibc2 builds. |
| + Fix profiling bugs on the Alpha. |
| + Fix ImageMagick & emacs 20.2 build problems on the Alpha. |
| + Fix rs6000/ppc bug when converting values from integer types |
| to floating point types. |
| |
| The EGCS 1.0 releases include installation instructions in both HTML |
| and plaintext forms (see the INSTALL directory in the toplevel |
| directory of the distribution). However, we also keep the most up to |
| date [2]installation instructions and [3]build/test status on our web |
| page. We will update those pages as new information becomes available. |
| |
| And, we can't in good conscience fail to mention some [4]caveats to |
| using EGCS. |
| |
| Update: Big thanks to Stanford for providing a high speed link for |
| downloading EGCS (go.cygnus.com)! |
| |
| Download EGCS from ftp.cygnus.com (USA California) or go.cygnus.com |
| (USA California -- High speed link provided by Stanford). |
| |
| The EGCS 1.0 release is also available many mirror sites. |
| [5]Goto mirror list to find a closer site |
| |
| We'd like to thank the numerous people that have contributed new |
| features, test results, bugfixes, etc. Unfortunately, they're far too |
| numerous to mention by name. |
| |
| Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There |
| are also [7]other ways to contact the FSF. |
| |
| These pages are maintained by [8]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [9]GCC manuals. If that fails, the |
| [10]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [11]gcc@gnu.org or [12]gcc@gcc.gnu.org. |
| All of our lists have [13]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [14]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/egcs-1.0/features.html |
| 2. http://gcc.gnu.org/install/ |
| 3. http://gcc.gnu.org/egcs-1.0/buildstat.html |
| 4. http://gcc.gnu.org/egcs-1.0/caveats.html |
| 5. http://gcc.gnu.org/mirrors.html |
| 6. mailto:gnu@gnu.org |
| 7. http://www.gnu.org/home.html#ContactInfo |
| 8. http://gcc.gnu.org/about.html |
| 9. http://gcc.gnu.org/onlinedocs/ |
| 10. mailto:gcc-help@gcc.gnu.org |
| 11. mailto:gcc@gnu.org |
| 12. mailto:gcc@gcc.gnu.org |
| 13. http://gcc.gnu.org/lists.html |
| 14. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/egcs-1.0/features.html |
| EGCS 1.0 features |
| |
| * Core compiler is based on the gcc2 development tree from Aug 2, |
| 1997, so we have most of the [1]features found in GCC 2.8. |
| * Integrated GNU Fortran compiler based on g77-0.5.22-19970929. |
| * Vast improvements in the C++ compiler; so many they have [2]page of |
| their own! |
| * Integrated C++ runtime libraries, including support for most major |
| linux systems! |
| * New instruction scheduler from IBM Haifa which includes support for |
| function wide instruction scheduling as well as superscalar |
| scheduling. |
| * Significantly improved alias analysis code. |
| * Improved register allocation for two address machines. |
| * Significant code generation improvements for Fortran code on |
| Alphas. |
| * Various optimizations from the g77 project as well as improved loop |
| optimizations. |
| * Dwarf2 debug format support for some targets. |
| * egcs libstdc++ includes the SGI STL implementation without changes. |
| * As a result of these and other changes, egcs libstc++ is not binary |
| compatible with previous releases of libstdc++. |
| * Various new ports -- UltraSPARC, Irix6.2 & Irix6.3 support, The SCO |
| Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and |
| 1.1), Support for RTEMS on several embedded targets, Support for |
| arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and |
| MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc. |
| * Integrated testsuites for gcc, g++, g77, libstdc++ and libio. |
| * RS6000/PowerPC ports generate code which can run on all |
| RS6000/PowerPC variants by default. |
| * -mcpu= and -march= switches for the x86 port to allow better |
| control over how the x86 port generates code. |
| * Includes the template repository patch (aka repo patch); note the |
| new template code makes repo obsolete for ELF systems using gnu-ld |
| such as Linux. |
| * Plus the usual assortment of bugfixes and improvements. |
| |
| Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There |
| are also [4]other ways to contact the FSF. |
| |
| These pages are maintained by [5]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [6]GCC manuals. If that fails, the |
| [7]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [8]gcc@gnu.org or [9]gcc@gcc.gnu.org. |
| All of our lists have [10]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [11]Valid XHTML 1.0 |
| |
| References |
| |
| 1. http://gcc.gnu.org/egcs-1.0/features-2.8.html |
| 2. http://gcc.gnu.org/egcs-1.0/c++features.html |
| 3. mailto:gnu@gnu.org |
| 4. http://www.gnu.org/home.html#ContactInfo |
| 5. http://gcc.gnu.org/about.html |
| 6. http://gcc.gnu.org/onlinedocs/ |
| 7. mailto:gcc-help@gcc.gnu.org |
| 8. mailto:gcc@gnu.org |
| 9. mailto:gcc@gcc.gnu.org |
| 10. http://gcc.gnu.org/lists.html |
| 11. http://validator.w3.org/check/referer |
| ====================================================================== |
| http://gcc.gnu.org/egcs-1.0/caveats.html |
| EGCS 1.0 Caveats |
| |
| * EGCS has an integrated libstdc++, but does not have an integrated |
| libg++. Furthermore old libg++ releases will not work with egc; HJ |
| Lu has made a libg++-2.8.1.2 available which may work with EGCS. |
| Note most C++ programs only need libstdc++. |
| * Note that using -pedantic or -Wreturn-type can cause an explosion |
| in the amount of memory needed for template-heavy C++ code, such as |
| code that uses STL. Also note that -Wall includes -Wreturn-type, so |
| if you use -Wall you will need to specify -Wno-return-type to turn |
| it off. |
| * Exception handling may not work with shared libraries, particularly |
| on alphas, hppas, and mips based platforms. Exception handling is |
| known to work on x86-linux platforms with shared libraries. |
| * Some versions of the Linux kernel have bugs which prevent them from |
| being compiled or from running when compiled by EGCS. See the FAQ |
| (as shipped with EGCS 1.0) for additional information. |
| * In general, EGCS is more rigorous about rejecting invalid C++ code |
| or deprecated C++ constructs than G++ 2.7. As a result it may be |
| necessary to fix C++ code before it will compile with EGCS. |
| * G++ is also aggressively tracking the C++ standard; as a result |
| code which was previously valid (and thus accepted by other |
| compilers and older versions of G++) may no longer be accepted. |
| * EGCS 1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS |
| 1.0.x and later releases should work with Red Hat Linux 5.0. |
| |
| Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There |
| are also [2]other ways to contact the FSF. |
| |
| These pages are maintained by [3]the GCC team. |
| |
| |
| For questions related to the use of GCC, please consult these web |
| pages and the [4]GCC manuals. If that fails, the |
| [5]gcc-help@gcc.gnu.org mailing list might help. |
| Please send comments on these web pages and the development of GCC to |
| our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org. |
| All of our lists have [8]public archives. |
| |
| Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth |
| Floor, Boston, MA 02110, USA. |
| |
| Verbatim copying and distribution of this entire article is permitted |
| in any medium, provided this notice is preserved. |
| Last modified 2007-07-25 [9]Valid XHTML 1.0 |
| |
| References |
| |
| 1. mailto:gnu@gnu.org |
| 2. http://www.gnu.org/home.html#ContactInfo |
| 3. http://gcc.gnu.org/about.html |
| 4. http://gcc.gnu.org/onlinedocs/ |
| 5. mailto:gcc-help@gcc.gnu.org |
| 6. mailto:gcc@gnu.org |
| 7. mailto:gcc@gcc.gnu.org |
| 8. http://gcc.gnu.org/lists.html |
| 9. http://validator.w3.org/check/referer |
| ====================================================================== |