aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.2.1/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.2.1/NEWS')
-rw-r--r--gcc-4.2.1/NEWS8737
1 files changed, 0 insertions, 8737 deletions
diff --git a/gcc-4.2.1/NEWS b/gcc-4.2.1/NEWS
deleted file mode 100644
index f73c76983..000000000
--- a/gcc-4.2.1/NEWS
+++ /dev/null
@@ -1,8737 +0,0 @@
-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.2/index.html
-
- GCC 4.2 Release Series
-
- July 18, 2007
-
- The [1]GNU project and the GCC developers are pleased to announce the
- release of GCC 4.2.1.
-
- This release is a bug-fix release, containing fixes for regressions in GCC
- 4.2.0 relative to previous releases of GCC.
-
- May 13, 2007
-
- The [2]GNU project and the GCC developers are pleased to announce the
- release of GCC 4.2.0.
-
- This release is a major release, containing new features (as well as many
- other improvements) relative to GCC 4.1.x.
-
-Release History
-
- GCC 4.2.1
- July 18, 2007 ([3]changes)
-
- GCC 4.2.0
- May 13, 2007 ([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, one of the [10]GNU 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 2007-07-19 [20]Valid XHTML 1.0
-
-References
-
- 1. http://www.gnu.org/
- 2. http://www.gnu.org/
- 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/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://www.gnu.org/order/ftp.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.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
- [3]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. The implementation status for TR1 can be tracked in
- [4]tr1.html
- * 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 [5]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 [6]-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:
- [7]http://gcc.gnu.org/wiki/Statically%20linking%20libgcj
- * 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 [8]gnu@gnu.org. There are
- also [9]other ways to contact the FSF.
-
- These pages are maintained by [10]the GCC team.
-
-
- For questions related to the use of GCC, please consult these web pages and
- the [11]GCC manuals. If that fails, the [12]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 [13]gcc@gnu.org or [14]gcc@gcc.gnu.org. All of
- our lists have [15]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-05-12 [16]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/bugs.html
- 4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/tr1.html
- 5. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
- 6. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
- 7. http://gcc.gnu.org/wiki/Statically%20linking%20libgcj
- 8. mailto:gnu@gnu.org
- 9. http://www.gnu.org/home.html#ContactInfo
- 10. http://gcc.gnu.org/about.html
- 11. http://gcc.gnu.org/onlinedocs/
- 12. mailto:gcc-help@gcc.gnu.org
- 13. mailto:gcc@gnu.org
- 14. mailto:gcc@gcc.gnu.org
- 15. http://gcc.gnu.org/lists.html
- 16. 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, one of the [10]GNU 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 2007-02-14 [20]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://www.gnu.org/order/ftp.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.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/ClasspathGraphicsI
- magesText
- 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.BasicLookAndFeelor
- -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
- 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 2007-02-14 [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, one of the [12]GNU mirror
- sites, or [13]our SVN server.
-
- 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-02-03 [22]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://www.gnu.org/order/ftp.html
- 13. http://gcc.gnu.org/svn.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-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 2007-02-03 [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/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, one of the [16]GNU mirror
- sites, or [17]our SVN server.
-
- Please send FSF & GNU inquiries & questions to [18]gnu@gnu.org. There are
- also [19]other ways to contact the FSF.
-
- These pages are maintained by [20]the GCC team.
-
-
- For questions related to the use of GCC, please consult these web pages and
- the [21]GCC manuals. If that fails, the [22]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 [23]gcc@gnu.org or [24]gcc@gcc.gnu.org. All of
- our lists have [25]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 2006-06-21 [26]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://www.gnu.org/order/ftp.html
- 17. http://gcc.gnu.org/svn.html
- 18. mailto:gnu@gnu.org
- 19. http://www.gnu.org/home.html#ContactInfo
- 20. http://gcc.gnu.org/about.html
- 21. http://gcc.gnu.org/onlinedocs/
- 22. mailto:gcc-help@gcc.gnu.org
- 23. mailto:gcc@gnu.org
- 24. mailto:gcc@gcc.gnu.org
- 25. http://gcc.gnu.org/lists.html
- 26. 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 [26]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 [27]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. [28]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
-
- * [29]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler emitted
- - PIC related
- * [30]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
- * [31]14760 A bug in configure.in prevents using both --program-suffix and
- --program-prefix
- * [32]14671 [hppa64] bootstrap fails: ICE in save_call_clobbered_regs, in
- caller_save.c
- * [33]15093 [alpha][Java] make bootstrap fails to configure libffi on
- Alpha
- * [34]15178 Solaris 9/x86 fails linking after stage 3
-
- Multi-platform internal compiler errors (ICEs)
-
- * [35]12753 (preprocessor) Memory corruption in preprocessor on bad input
- * [36]13985 ICE in gcc.c-torture/compile/930621-1.c
- * [37]14810 (c++) tree check failures with invalid code involving
- templates
- * [38]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in
- cp/parser.c
- * [39]15044 (c++) ICE on syntax error, template header
- * [40]15057 (c++) Compiling of conditional value throw constructs cause a
- segmentation violation
- * [41]15064 (c++) typeid of template parameter gives ICE
- * [42]15142 (c++) ICE when passing a string where a char* is expected in a
- throw statement
- * [43]15159 ICE in rtl_verify_flow_info_1
- * [44]15165 (c++) ICE in instantiate_template
- * [45]15193 Unary minus using pointer to V4SF vector causes -fforce-mem to
- exhaust all memory
- * [46]15209 (c++) Runs out of memory with packed structs
- * [47]15227 (c++) Trouble with invalid function definition
- * [48]15285 (c++) instantiate_type ICE when forming pointer to template
- function
- * [49]15299 (c++) ICE in resolve_overloaded_unification
- * [50]15329 (c++) ICE on constructor of member template
- * [51]15550 ICE in extract_insn, in recog.c
- * [52]15554 (c++) ICE in tsubst_copy, in cp/pt.c
- * [53]15640 (c++) ICE on invalid code in arg_assoc, in cp/name-lookup.c
- * [54]15666 [unit-at-a-time] Gcc abort on valid code
- * [55]15696 (c++) ICE with bad pointer-to-member code
- * [56]15701 (c++) ICE with friends and template template parameter
- * [57]15761 ICE in do_SUBST, in combine.c
- * [58]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
-
- Ada
-
- * [59]14538 All RTEMS targets broken for gnat
-
- C front end
-
- * [60]12391 missing warning about assigning to an incomplete type
- * [61]14649 atan(1.0) should not be a constant expression
- * [62]15004 [unit-at-a-time] no warning for unused paramater in static
- function
- * [63]15749 --pedantic-errors behaves differently from --pedantic with
- C-compiler on GNU/Linux
-
- C++ compiler and library
-
- * [64]10646 non-const reference is incorrectly matched in a "const T"
- partial specialization
- * [65]12077 wcin.rdbuf()->in_avail() return value too high
- * [66]13598 enc_filebuf doesn't work
- * [67]14211 const_cast returns lvalue but should be rvalue
- * [68]14220 num_put::do_put() undesired float/double behavior
- * [69]14245 problem with user-defined allocators in std::basic_string
- * [70]14340 libstdc++ Debug mode: failure to convert iterator to
- const_iterator
- * [71]14600 __gnu_cxx::stdio_sync_filebuf should expose internal FILE*
- * [72]14668 no warning anymore for reevaluation of declaration
- * [73]14775 LFS (large file support) tests missing
- * [74]14821 Duplicate namespace alias declaration should not conflict
- * [75]14930 Friend declaration ignored
- * [76]14932 cannot use offsetof to get offsets of array elements in g++
- 3.4.0
- * [77]14950 [non unit-at-a-time] always_inline does not mix with templates
- and -O0
- * [78]14962 g++ ignores #pragma redefine_extname
- * [79]14975 Segfault on low-level write error during imbue
- * [80]15002 Linewise stream input is unusably slow (std::string slow)
- * [81]15025 compiler accepts redeclaration of template as non-template
- * [82]15046 [arm] Math functions misdetected by cross configuration
- * [83]15069 a bit test on a variable of enum type is miscompiled
- * [84]15074 g++ -lsupc++ still links against libstdc++
- * [85]15083 spurious "statement has no effect" warning
- * [86]15096 parse error with templates and pointer to const member
- * [87]15287 combination of operator[] and operator .* fails in templates
- * [88]15317 __attribute__ unused in first parameter of constructor gives
- error
- * [89]15337 sizeof on incomplete type diagnostic
- * [90]15361 bitset<>::_Find_next fails
- * [91]15412 _GLIBCXX_ symbols symbols defined and used in different
- namespaces
- * [92]15427 valid code results in incomplete type error
- * [93]15471 Incorrect member pointer offsets in anonymous structs/unions
- * [94]15503 nested template problem
- * [95]15507 compiler hangs while laying out union
- * [96]15542 operator & and template definitions
- * [97]15565 SLES9: leading + sign for unsigned int with showpos
- * [98]15625 friend defined inside a template fails to find static function
- * [99]15629 Function templates, overloads, and friend name injection
- * [100]15742 'noreturn' attribute ignored in method of template functions.
- * [101]15775 Allocator::pointer consistently ignored
- * [102]15821 Duplicate namespace alias within namespace rejected
- * [103]15862 'enum yn' fails (confict with undeclared builtin)
- * [104]15875 rejects pointer to member in template
- * [105]15877 valid code using templates and anonymous enums is rejected
- * [106]15947 Puzzling error message for wrong destructor declaration in
- template class
- * [107]16020 cannot copy __gnu_debug::bitset
- * [108]16154 input iterator concept too restrictive
- * [109]16174 deducing top-level consts
-
- Java
-
- * [110]14315 Java compiler is not parallel make safe
-
- Fortran
-
- * [111]15151 [g77] incorrect logical i/o in 64-bit mode
-
- Objective-C
-
- * [112]7993 private variables cannot be shadowed in subclasses
-
- Optimization bugs
-
- * [113]15228 useless copies of floating point operands
- * [114]15345 [non-unit-at-a-time] unreferenced nested inline functions not
- optimized away
- * [115]15945 Incorrect floating point optimization
- * [116]15526 ftrapv aborts on 0 * (-1)
- * [117]14690 Miscompiled POOMA tests
- * [118]15112 GCC generates code to write to unchanging memory
-
- Preprocessor
-
- * [119]15067 Minor glitch in the source of cpp
-
- Main driver program bugs
-
- * [120]1963 collect2 interprets -oldstyle_liblookup as -o
- ldstyle_liblookup
-
- x86-specific (Intel/AMD)
-
- * [121]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
- section}
-
- HPPA-specific
-
- * [122]14782 GCC produces an unaligned data access at -O2
- * [123]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
- * [124]15202 ICE in reload_cse_simplify_operands, in postreload.c
-
- IA64-specific
-
- * [125]14610 __float80 constants incorrectly emitted
- * [126]14813 init_array sections are initialized in the wrong order
- * [127]14857 GCC segfault on duplicated asm statement
- * [128]15598 Gcc 3.4 ICE on valid code
- * [129]15653 Gcc 3.4 ICE on valid code
-
- MIPS-specific
-
- * [130]15189 wrong filling of delay slot with -march=mips1 -G0
- -mno-split-addresses -mno-explicit-relocs
- * [131]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as
- 2.14.91
- * [132]16144 Bogus reference to __divdf3 when -O1
- * [133]16176 Miscompilation of unaligned data in MIPS backend
-
- PowerPC-specific
-
- * [134]11591 ICE in gcc.dg/altivec-5.c
- * [135]12028 powerpc-eabispe produces bad sCOND operation
- * [136]14478 rs6000 geu/ltu patterns generate incorrect code
- * [137]14567 long double and va_arg complex args
- * [138]14715 Altivec stack layout may overlap gpr save with stack temps
- * [139]14902 (libstdc++) Stream checking functions fail when -pthread
- option is used.
- * [140]14924 Compiler ICE on valid code
- * [141]14960 -maltivec affects vector return with -mabi=no-altivec
- * [142]15106 vector varargs failure passing from altivec to non-altivec
- code for -m32
- * [143]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 &
- half-word operation
- * [144]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx and
- stvx
- * [145]15662 Segmentation fault when an exception is thrown - even if try
- and catch are specified
-
- s390-specific
-
- * [146]15054 Bad code due to overlapping stack temporaries
-
- SPARC-specific
-
- * [147]15783 ICE with union assignment in 64-bit mode
- * [148]15626 GCC 3.4 emits "ld: warning: relocation error: R_SPARC_UA32"
-
- x86-64-specific
-
- * [149]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
- * [150]14723 Backported -march=nocona from mainline
- * [151]15290 __float128 failed to pass to function properly
-
- Cygwin/Mingw32-specific
-
- * [152]15250 Option -mms-bitfields support on GCC 3.4 is not conformant to
- MS layout
- * [153]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe worker on
- windows32 targets
-
- Bugs specific to embedded processors
-
- * [154]8309 [m68k] -m5200 produces erroneous SImode set of short varaible
- on stack
- * [155]13250 [SH] Gcc code for rotation clobbers the register, but gcc
- continues to use the register as if it was not clobbered
- * [156]13803 [coldfire] movqi operand constraints too restrictivefor
- TARGET_COLDFIRE
- * [157]14093 [SH] ICE for code when using -mhitachi option in SH
- * [158]14457 [m6811hc] ICE with simple c++ source
- * [159]14542 [m6811hc] ICE on simple source
- * [160]15100 [SH] cc1plus got hang-up on
- libstdc++-v3/testsuite/abi_check.cc
- * [161]15296 [CRIS] Delayed branch scheduling causing invalid code on
- cris-*
- * [162]15396 [SH] ICE with -O2 -fPIC
- * [163]15782 [coldfire] m68k_output_mi_thunk emits wrong code for ColdFire
-
- Testsuite problems (compiler not affected)
-
- * [164]11610 libstdc++ testcases 27_io/* don't work properly remotely
- * [165]15488 (libstdc++) possibly insufficient file permissions for
- executing test suite
- * [166]15489 (libstdc++) testsuite_files determined incorrectly
-
- Documentation bugs
-
- * [167]13928 (libstdc++) no whatis info in some man pages generated by
- doxygen
- * [168]14150 Ada documentation out of date
- * [169]14949 (c++) Need to document method visibility changes
- * [170]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
-
- * [171]16469 [mips-sgi-irix5.3] bootstrap fails in libstdc++-v3/testsuite
- * [172]16344 [hppa-linux-gnu] libstdc++'s PCH built by profiledbootstrap
- does not work with the built compiler
- * [173]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
-
- Multi-platform internal compiler errors (ICEs)
-
- * [174]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
- cp_parser_class_specifier, in cp/parser.c
- * [175]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
- * [176]15461 (c++) ICE due to NRV and inlining
- * [177]15890 (c++) ICE in c_expand_expr, in c-common.c
- * [178]16180 ICE: segmentation fault in RTL optimization
- * [179]16224 (c++) ICE in write_unscoped_name (template/namespace)
- * [180]16408 ICE: in delete_insn, in cfgrtl.c
- * [181]16529 (c++) ICE for: namespace-alias shall not be declared as the
- name of any other entity
- * [182]16698 (c++) ICE with exceptions and declaration of __cxa_throw
- * [183]16706 (c++) ICE in finish_member_declaration, in cp/semantics.c
- * [184]16810 (c++) Legal C++ program with cast gives ICE in
- build_ptrmemfunc
- * [185]16851 (c++) ICE when throwing a comma expression
- * [186]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
- * [187]16904 (c++) ICE in finish_class_member_access_expr, in cp/typeck.c
- * [188]16905 (c++) ICE (segfault) with exceptions
- * [189]16964 (c++) ICE in cp_parser_class_specifier due to redefinition
- * [190]17068 (c++) ICE: tree check: expected class 'd', have 'x'
- (identifier_node) in dependent_template_p, in cp/pt.c
-
- Preprocessor bugs
-
- * [191]16366 Preprocessor option -remap causes memory corruption
-
- Optimization
-
- * [192]15345 unreferenced nested inline functions not optimized away
- * [193]16590 Incorrect execution when compiling with -O2
- * [194]16693 Bitwise AND is lost when used within a cast to an enum of the
- same precision
- * [195]17078 Jump into if(0) substatement fails
-
- Problems in generated debug information
-
- * [196]13956 incorrect stabs for nested local variables
-
- C front end bugs
-
- * [197]16684 GCC should not warn about redundant redeclarations of
- built-ins
-
- C++ compiler and library
-
- * [198]12658 Thread safety problems in locale::global() and
- locale::locale()
- * [199]13092 g++ accepts invalid pointer-to-member conversion
- * [200]15320 Excessive memory consumption
- * [201]16246 Incorrect template argument deduction
- * [202]16273 Memory exhausted when using nested classes and virtual
- functions
- * [203]16401 ostringstream in gcc 3.4.x very slow for big data
- * [204]16411 undefined reference to __gnu_cxx::stdio_sync_filebuf<char,
- std::char_traits<char> >::file()
- * [205]16489 G++ incorrectly rejects use of a null constant integral
- expression as a null constant pointer
- * [206]16618 offsetof fails with constant member
- * [207]16637 syntax error reported for valid input code
- * [208]16717 __attribute__((constructor)) broken in C++
- * [209]16813 compiler error in DEBUG version of range insertion
- std::map::insert
- * [210]16853 pointer-to-member initialization from incompatible one
- accepted
- * [211]16889 ambiguity is not detected
- * [212]16959 Segmentation fault in ios_base::sync_with_stdio
-
- Java compiler and library
-
- * [213]7587 direct threaded interpreter not thread-safe
- * [214]16473 ServerSocket accept() leaks file descriptors
- * [215]16478 Hash synchronization deadlock with finalizers
-
- Alpha-specific
-
- * [216]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
- * [217]16974 could not split insn (ice in final_scan_insn, in final.c)
-
- x86-specific
-
- * [218]16298 ICE in output_operand
- * [219]17113 ICE with SSE2 intrinsics
-
- x86-64 specific
-
- * [220]14697 libstdc++ couldn't find 32bit libgcc_s
-
- MIPS-specific
-
- * [221]15869 [mips64] No NOP after LW (with -mips1 -O0)
- * [222]16325 [mips64] value profiling clobbers gp on mips
- * [223]16357 [mipsisa64-elf] ICE copying 7 bytes between extern char[]s
- * [224]16380 [mips64] Use of uninitialised register after dbra conversion
- * [225]16407 [mips64] Unaligned access to local variables
- * [226]16643 [mips64] verify_local_live_at_start ICE after crossjumping &
- cfgcleanup
-
- ARM-specific
-
- * [227]15927 THUMB -O2: strength-reduced iteration variable ends up off by
- 1
- * [228]15948 THUMB: ICE with non-commutative cbranch
- * [229]17019 THUMB: bad switch statement in md code for
- addsi3_cbranch_scratch
-
- IA64-specific
-
- * [230]16130 ICE on valid code: in bundling, in config/ia64/ia64.c
- (-mtune=merced)
- * [231]16142 ICE on valid code: in bundling, in config/ia64/ia64.c
- (-mtune=itanium)
- * [232]16278 Gcc failed to build Linux kernel with -mtune=merced
- * [233]16414 ICE on valid code: typo in comparison of asm_noperands result
- * [234]16445 ICE on valid code: don't count ignored insns
- * [235]16490 ICE (segfault) while compiling with -fprofile-use
- * [236]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
-
- PowerPC-specific
-
- * [237]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
- * [238]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions issue)
-
- SPARC-specific
-
- * [239]16199 ICE while compiling apache 2.0.49
- * [240]16416 -m64 doesn't imply -mcpu=v9 anymore
- * [241]16430 ICE when returning non-C aggregates larger than 16 bytes
-
- Bugs specific to embedded processors
-
- * [242]16379 [m32r] can't output large model function call of memcpy
- * [243]17093 [m32r] ICE with -msdata=use -O0
- * [244]17119 [m32r] ICE at switch case 0x8000
-
- DJGPP-specific
-
- * [245]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
-
- Alpha Tru64-specific
-
- * [246]16210 libstdc++ gratuitously omits "long long" I/O
-
- Testsuite, documentation issues (compiler is not affected):
-
- * [247]15488 (libstdc++) possibly insufficient file permissions for
- executing test suite
- * [248]16250 ada/doctools runs makeinfo even in release tarball
- _________________________________________________________________
-
-GCC 3.4.3
-
- This is the [249]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
-
- * [250]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
- * [251]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold when
- undeclared
-
- Internal compiler errors (ICEs) affecting multiple platforms
-
- * [252]13948 (java) GCJ segmentation fault while compiling GL4Java .class
- files
- * [253]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
- * [254]16301 (c++) ICE when "strong" attribute is attached to a using
- directive
- * [255]16566 ICE with flexible arrays
- * [256]17023 ICE with nested functions in parameter declaration
- * [257]17027 ICE with noreturn function in loop at -O2
- * [258]17524 ICE in grokdeclarator, in cp/decl.c
- * [259]17826 (c++) ICE in cp_tree_equal
-
- C and optimization bugs
-
- * [260]15526 -ftrapv aborts on 0 * (-1)
- * [261]16999 #ident stopped working
- * [262]17503 quadratic behaviour in invalid_mode_change_p
- * [263]17581 Long long arithmetic fails inside a switch/case statement
- when compiled with -O2
- * [264]18129 -fwritable-strings doesn't work
-
- C++ compiler and library bugs
-
- * [265]10975 incorrect initial ostringstream::tellp()
- * [266]11722 Unbuffered filebuf::sgetn is slow
- * [267]14534 Unrecognizing static function as a template parameter when
- its return value is also templated
- * [268]15172 Copy constructor optimization in aggregate initialization
- * [269]15786 Bad error message for frequently occuring error.
- * [270]16162 Rejects valid member-template-definition
- * [271]16612 empty basic_strings can't live in shared memory
- * [272]16715 std::basic_iostream is instantiated when used, even though
- instantiations are already contained in libstdc++
- * [273]16848 code in /ext/demangle.h appears broken
- * [274]17132 GCC fails to eliminate function template specialization when
- argument deduction fails
- * [275]17259 One more _S_leaf incorrectly qualified with _RopeRep:: in
- ropeimpl.h
- * [276]17327 use of `enumeral_type' in template type unification
- * [277]17393 "unused variable '._0'" warning with -Wall
- * [278]17501 Confusion with member templates
- * [279]17537 g++ not passing -lstdc++ to linker when all command line
- arguments are libraries
- * [280]17585 usage of unqualified name of static member from within class
- not allowed
- * [281]17821 Poor diagnostic for using "." instead of "->"
- * [282]17829 wrong error: call of overloaded function is ambiguous
- * [283]17851 Misleading diagnostic for invalid function declarations with
- undeclared types
- * [284]17976 Destructor is called twice
- * [285]18020 rejects valid definition of enum value in template
- * [286]18093 bogus conflict in namespace aliasing
- * [287]18140 C++ parser bug when using >> in templates
-
- Fortran
-
- * [288]17541 data statements with double precision constants fail
-
- x86-specific
-
- * [289]17853 -O2 ICE for MMX testcase
-
- SPARC-specific
-
- * [290]17245 ICE compiling gsl-1.5 statistics/lag1.c
-
- Darwin-specific
-
- * [291]17167 FATAL:Symbol L_foo$stub already defined.
-
- AIX-specific
-
- * [292]17277 could not catch an exception when specified -maix64
-
- Solaris-specific
-
- * [293]17505 <cmath> calls acosf(), ceilf(), and other functions missing
- from system libraries
-
- HP/UX specific:
-
- * [294]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
-
- ARM-specific
-
- * [295]17384 ICE with mode attribute on structures
-
- MIPS-specific
-
- * [296]17770 No NOP after LWL with -mips1
-
- Other embedded target specific
-
- * [297]11476 [arc-elf] gcc ICE on newlib's vfprintf.c
- * [298]14064 [avr-elf] -fdata-sections triggers ICE
- * [299]14678 [m68hc11-elf] gcc ICE
- * [300]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
- * [301]15790 [i686-coff] Alignment error building gcc with i686-coff
- target
- * [302]15886 [SH] Miscompilation with -O2 -fPIC
- * [303]16884 [avr-elf] [fweb related] bug while initializing variables
-
- Bugs relating to debugger support
-
- * [304]13841 missing debug info for _Complex function arguments
- * [305]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)
-
- * [306]17465 Testsuite in libffi overrides LD_LIBRARY_PATH
- * [307]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
- * [308]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit
- testsuite
-
- Documentation
-
- * [309]15498 typo in gcc manual: non-existing locale example en_UK, should
- be en_GB
- * [310]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap: document
- broken shell
- * [311]16406 USE_LD_AS_NEEDED undocumented
- _________________________________________________________________
-
-GCC 3.4.4
-
- 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.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 [313]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
-
- * [314]24688 sco_math fixincl breaks math.h
-
- C compiler bugs
-
- * [315]17188 struct Foo { } redefinition
- * [316]20187 wrong code for ((unsigned char)(unsigned long
- long)((a?a:1)&(a*b)))?0:1)
- * [317]21873 infinite warning loop on bad array initializer
- * [318]21899 enum definition accepts values to be overriden
- * [319]22061 ICE in find_function_data, in function.c
- * [320]22308 Failure to diagnose violation of constraint 6.516p2
- * [321]22458 ICE on missing brace
- * [322]22589 ICE casting to long long
- * [323]24101 Segfault with preprocessed source
-
- C++ compiler and library bugs
-
- * [324]10611 operations on vector mode not recognized in C++
- * [325]13377 unexpected behavior of namespace usage directive
- * [326]16002 Strange error message with new parser
- * [327]17413 local classes as template argument
- * [328]17609 spurious error message after using keyword
- * [329]17618 ICE in cp_convert_to_pointer, in cp/cvt.c
- * [330]18124 ICE with invalid template template parameter
- * [331]18155 typedef in template declaration not rejected
- * [332]18177 ICE with const_cast for undeclared variable
- * [333]18368 C++ error message regression
- * [334]16378 ICE when returning a copy of a packed member
- * [335]18466 int ::i; accepted
- * [336]18512 ICE on invalid usage of template base class
- * [337]18454 ICE when returning undefined type
- * [338]18738 typename not allowed with non-dependent qualified name
- * [339]18803 rejects access to operator() in template
- * [340]19004 ICE in uses_template_parms, in cp/pt.c
- * [341]19208 Spurious error about variably modified type
- * [342]18253 bad error message / ICE for invalid template parameter
- * [343]19608 ICE after friend function definition in local class
- * [344]19884 ICE on explicit instantiation of a non-template constructor
- * [345]20153 ICE when C++ template function contains anonymous union
- * [346]20563 Infinite loop in diagnostic (and ice after error message)
- * [347]20789 ICE with incomplete type in template
- * [348]21336 Internal compiler error when using custom new operators
- * [349]21768 ICE in error message due to violation of coding conventions
- * [350]21853 constness of pointer to data member ignored
- * [351]21903 Default argument of template function causes a compile-time
- error
- * [352]21983 multiple diagnostics
- * [353]21987 New testsuite failure g++.dg/warn/conversion-function-1.C
- * [354]22153 ICE on invalid template specialization
- * [355]22172 Internal compiler error, seg fault.
- * [356]21286 filebuf::xsgetn vs pipes
- * [357]22233 ICE with wrong number of template parameters
- * [358]22508 ICE after invalid operator new
- * [359]22545 ICE with pointer to class member & user defined conversion
- operator
- * [360]23528 Wrong default allocator in ext/hash_map
- * [361]23550 char_traits requirements/1.cc test bad math
- * [362]23586 Bad diagnostic for invalid namespace-name
- * [363]23624 ICE in invert_truthvalue, in fold-const.c
- * [364]23639 Bad error message: not a member of '<declaration error>'
- * [365]23797 ICE on typename outside template
- * [366]23965 Bogus error message: no matching function for call to
- 'foo(<type error>)'
- * [367]24052 &#`label_decl' not supported by dump_expr#<expression error>
- * [368]24580 virtual base class cause exception not to be caught
-
- Problems in generated debug information
-
- * [369]24267 Bad DWARF for altivec vectors
-
- Optimizations issues
-
- * [370]17810 ICE in verify_local_live_at_start
- * [371]17860 Wrong generated code for loop with varying bound
- * [372]21709 ICE on compile-time complex NaN
- * [373]21964 broken tail call at -O2 or more
- * [374]22167 Strange optimization bug when using -Os
- * [375]22619 Compilation failure for real_const_1.f and real_const_2.f90
- * [376]23241 Invalid code generated for comparison of uchar to 255
- * [377]23478 Miscompilation due to reloading of a var that is also used in
- EH pad
- * [378]24470 segmentation fault in cc1plus when compiling with -O
- * [379]24950 ICE in operand_subword_force
-
- Precompiled headers problems
-
- * [380]14400 Cannot compile qt-x11-free-3.3.0
- * [381]14940 PCH largefile test fails on various platforms
-
- Preprocessor bugs
-
- * [382]20239 ICE on empty preprocessed input
- * [383]15220 "gcc -E -MM -MG" reports missing system headers in source
- directory
-
- Testsuite issues
-
- * [384]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on
- i686-pc-linux-gnu
-
- Alpha specific
-
- * [385]21888 bootstrap failure with linker relaxation enabled
-
- ARM specific
-
- * [386]15342 [arm-linux]: ICE in verify_local_live_at_start
- * [387]23985 Memory aliasing information incorrect in inlined memcpy
-
- ColdFile specific
-
- * [388]16719 Illegal move of byte into address register causes compiler to
- ICE
-
- HPPA specific
-
- * [389]21723 ICE while building libgfortran
- * [390]21841 -mhp-ld/-mgnu-ld documentation
-
- IA-64 specific
-
- * [391]23644 IA-64 hardware models and configuration options documentation
- error
- * [392]24718 Shared libgcc not used for linking by default
-
- M68000 specific
-
- * [393]18421 ICE in reload_cse_simplify_operands, in postreload.c
-
- MIPS specific
-
- * [394]20621 ICE in change_address_1, in emit-rtl.c
-
- PowerPC and PowerPC64 specific
-
- * [395]18583 error on valid code: const __attribute__((altivec(vector__)))
- doesn't work in arrays
- * [396]20191 ICE in reload_cse_simplify_operands
- * [397]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined
- * [398]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set
- * [399]23404 gij trashes args of functions with more than 8 fp args
- * [400]23539 C & C++ compiler generating misaligned references regardless
- of compiler flags
- * [401]24102 floatdisf2_internal2 broken
- * [402]24465 -mminimal-toc miscompilation of __thread vars
-
- Solaris specific
-
- * [403]19933 Problem with define of HUGE_VAL in math_c99
- * [404]21889 Native Solaris assembler cannot grok DTP-relative debug
- symbols
-
- SPARC specific
-
- * [405]19300 PCH failures on sparc-linux
- * [406]20301 Assembler labels have a leading "-"
- * [407]20673 C PCH testsuite assembly comparison failure
-
- x86 and x86_64 specific
-
- * [408]18582 ICE with arrays of type V2DF
- * [409]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2
- -fsched2-use-traces
- * [410]21716 ICE in reg-stack.c's swap_rtx_condition
- * [411]24315 amd64 fails -fpeephole2
- _________________________________________________________________
-
-GCC 3.4.6
-
- This is the [412]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 [413]gnu@gnu.org. There are
- also [414]other ways to contact the FSF.
-
- These pages are maintained by [415]the GCC team.
-
-
- For questions related to the use of GCC, please consult these web pages and
- the [416]GCC manuals. If that fails, the [417]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 [418]gcc@gnu.org or [419]gcc@gcc.gnu.org. All of
- our lists have [420]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 2006-06-21 [421]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.html#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://www.opendarwin.org/projects/dlcompat/
- 27. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
- 28. 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
- 29. http://gcc.gnu.org/PR10129
- 30. http://gcc.gnu.org/PR14576
- 31. http://gcc.gnu.org/PR14760
- 32. http://gcc.gnu.org/PR14671
- 33. http://gcc.gnu.org/PR15093
- 34. http://gcc.gnu.org/PR15178
- 35. http://gcc.gnu.org/PR12753
- 36. http://gcc.gnu.org/PR13985
- 37. http://gcc.gnu.org/PR14810
- 38. http://gcc.gnu.org/PR14883
- 39. http://gcc.gnu.org/PR15044
- 40. http://gcc.gnu.org/PR15057
- 41. http://gcc.gnu.org/PR15064
- 42. http://gcc.gnu.org/PR15142
- 43. http://gcc.gnu.org/PR15159
- 44. http://gcc.gnu.org/PR15165
- 45. http://gcc.gnu.org/PR15193
- 46. http://gcc.gnu.org/PR15209
- 47. http://gcc.gnu.org/PR15227
- 48. http://gcc.gnu.org/PR15285
- 49. http://gcc.gnu.org/PR15299
- 50. http://gcc.gnu.org/PR15329
- 51. http://gcc.gnu.org/PR15550
- 52. http://gcc.gnu.org/PR15554
- 53. http://gcc.gnu.org/PR15640
- 54. http://gcc.gnu.org/PR15666
- 55. http://gcc.gnu.org/PR15696
- 56. http://gcc.gnu.org/PR15701
- 57. http://gcc.gnu.org/PR15761
- 58. http://gcc.gnu.org/PR15829
- 59. http://gcc.gnu.org/PR14538
- 60. http://gcc.gnu.org/PR12391
- 61. http://gcc.gnu.org/PR14649
- 62. http://gcc.gnu.org/PR15004
- 63. http://gcc.gnu.org/PR15749
- 64. http://gcc.gnu.org/PR10646
- 65. http://gcc.gnu.org/PR12077
- 66. http://gcc.gnu.org/PR13598
- 67. http://gcc.gnu.org/PR14211
- 68. http://gcc.gnu.org/PR14220
- 69. http://gcc.gnu.org/PR14245
- 70. http://gcc.gnu.org/PR14340
- 71. http://gcc.gnu.org/PR14600
- 72. http://gcc.gnu.org/PR14668
- 73. http://gcc.gnu.org/PR14775
- 74. http://gcc.gnu.org/PR14821
- 75. http://gcc.gnu.org/PR14930
- 76. http://gcc.gnu.org/PR14932
- 77. http://gcc.gnu.org/PR14950
- 78. http://gcc.gnu.org/PR14962
- 79. http://gcc.gnu.org/PR14975
- 80. http://gcc.gnu.org/PR15002
- 81. http://gcc.gnu.org/PR15025
- 82. http://gcc.gnu.org/PR15046
- 83. http://gcc.gnu.org/PR15069
- 84. http://gcc.gnu.org/PR15074
- 85. http://gcc.gnu.org/PR15083
- 86. http://gcc.gnu.org/PR15096
- 87. http://gcc.gnu.org/PR15287
- 88. http://gcc.gnu.org/PR15317
- 89. http://gcc.gnu.org/PR15337
- 90. http://gcc.gnu.org/PR15361
- 91. http://gcc.gnu.org/PR15412
- 92. http://gcc.gnu.org/PR15427
- 93. http://gcc.gnu.org/PR15471
- 94. http://gcc.gnu.org/PR15503
- 95. http://gcc.gnu.org/PR15507
- 96. http://gcc.gnu.org/PR15542
- 97. http://gcc.gnu.org/PR15565
- 98. http://gcc.gnu.org/PR15625
- 99. http://gcc.gnu.org/PR15629
- 100. http://gcc.gnu.org/PR15742
- 101. http://gcc.gnu.org/PR15775
- 102. http://gcc.gnu.org/PR15821
- 103. http://gcc.gnu.org/PR15862
- 104. http://gcc.gnu.org/PR15875
- 105. http://gcc.gnu.org/PR15877
- 106. http://gcc.gnu.org/PR15947
- 107. http://gcc.gnu.org/PR16020
- 108. http://gcc.gnu.org/PR16154
- 109. http://gcc.gnu.org/PR16174
- 110. http://gcc.gnu.org/PR14315
- 111. http://gcc.gnu.org/PR15151
- 112. http://gcc.gnu.org/PR7993
- 113. http://gcc.gnu.org/PR15228
- 114. http://gcc.gnu.org/PR15345
- 115. http://gcc.gnu.org/PR15945
- 116. http://gcc.gnu.org/PR15526
- 117. http://gcc.gnu.org/PR14690
- 118. http://gcc.gnu.org/PR15112
- 119. http://gcc.gnu.org/PR15067
- 120. http://gcc.gnu.org/PR1963
- 121. http://gcc.gnu.org/PR15717
- 122. http://gcc.gnu.org/PR14782
- 123. http://gcc.gnu.org/PR14828
- 124. http://gcc.gnu.org/PR15202
- 125. http://gcc.gnu.org/PR14610
- 126. http://gcc.gnu.org/PR14813
- 127. http://gcc.gnu.org/PR14857
- 128. http://gcc.gnu.org/PR15598
- 129. http://gcc.gnu.org/PR15653
- 130. http://gcc.gnu.org/PR15189
- 131. http://gcc.gnu.org/PR15331
- 132. http://gcc.gnu.org/PR16144
- 133. http://gcc.gnu.org/PR16176
- 134. http://gcc.gnu.org/PR11591
- 135. http://gcc.gnu.org/PR12028
- 136. http://gcc.gnu.org/PR14478
- 137. http://gcc.gnu.org/PR14567
- 138. http://gcc.gnu.org/PR14715
- 139. http://gcc.gnu.org/PR14902
- 140. http://gcc.gnu.org/PR14924
- 141. http://gcc.gnu.org/PR14960
- 142. http://gcc.gnu.org/PR15106
- 143. http://gcc.gnu.org/PR16026
- 144. http://gcc.gnu.org/PR15191
- 145. http://gcc.gnu.org/PR15662
- 146. http://gcc.gnu.org/PR15054
- 147. http://gcc.gnu.org/PR15783
- 148. http://gcc.gnu.org/PR15626
- 149. http://gcc.gnu.org/PR14326
- 150. http://gcc.gnu.org/PR14723
- 151. http://gcc.gnu.org/PR15290
- 152. http://gcc.gnu.org/PR15250
- 153. http://gcc.gnu.org/PR15551
- 154. http://gcc.gnu.org/PR8309
- 155. http://gcc.gnu.org/PR13250
- 156. http://gcc.gnu.org/PR13803
- 157. http://gcc.gnu.org/PR14093
- 158. http://gcc.gnu.org/PR14457
- 159. http://gcc.gnu.org/PR14542
- 160. http://gcc.gnu.org/PR15100
- 161. http://gcc.gnu.org/PR15296
- 162. http://gcc.gnu.org/PR15396
- 163. http://gcc.gnu.org/PR15782
- 164. http://gcc.gnu.org/PR11610
- 165. http://gcc.gnu.org/PR15488
- 166. http://gcc.gnu.org/PR15489
- 167. http://gcc.gnu.org/PR13928
- 168. http://gcc.gnu.org/PR14150
- 169. http://gcc.gnu.org/PR14949
- 170. http://gcc.gnu.org/PR15123
- 171. http://gcc.gnu.org/PR16469
- 172. http://gcc.gnu.org/PR16344
- 173. http://gcc.gnu.org/PR16842
- 174. http://gcc.gnu.org/PR12608
- 175. http://gcc.gnu.org/PR14492
- 176. http://gcc.gnu.org/PR15461
- 177. http://gcc.gnu.org/PR15890
- 178. http://gcc.gnu.org/PR16180
- 179. http://gcc.gnu.org/PR16224
- 180. http://gcc.gnu.org/PR16408
- 181. http://gcc.gnu.org/PR16529
- 182. http://gcc.gnu.org/PR16698
- 183. http://gcc.gnu.org/PR16706
- 184. http://gcc.gnu.org/PR16810
- 185. http://gcc.gnu.org/PR16851
- 186. http://gcc.gnu.org/PR16870
- 187. http://gcc.gnu.org/PR16904
- 188. http://gcc.gnu.org/PR16905
- 189. http://gcc.gnu.org/PR16964
- 190. http://gcc.gnu.org/PR17068
- 191. http://gcc.gnu.org/PR16366
- 192. http://gcc.gnu.org/PR15345
- 193. http://gcc.gnu.org/PR16590
- 194. http://gcc.gnu.org/PR16693
- 195. http://gcc.gnu.org/PR17078
- 196. http://gcc.gnu.org/PR13956
- 197. http://gcc.gnu.org/PR16684
- 198. http://gcc.gnu.org/PR12658
- 199. http://gcc.gnu.org/PR13092
- 200. http://gcc.gnu.org/PR15320
- 201. http://gcc.gnu.org/PR16246
- 202. http://gcc.gnu.org/PR16273
- 203. http://gcc.gnu.org/PR16401
- 204. http://gcc.gnu.org/PR16411
- 205. http://gcc.gnu.org/PR16489
- 206. http://gcc.gnu.org/PR16618
- 207. http://gcc.gnu.org/PR16637
- 208. http://gcc.gnu.org/PR16717
- 209. http://gcc.gnu.org/PR16813
- 210. http://gcc.gnu.org/PR16853
- 211. http://gcc.gnu.org/PR16889
- 212. http://gcc.gnu.org/PR16959
- 213. http://gcc.gnu.org/PR7587
- 214. http://gcc.gnu.org/PR16473
- 215. http://gcc.gnu.org/PR16478
- 216. http://gcc.gnu.org/PR10695
- 217. http://gcc.gnu.org/PR16974
- 218. http://gcc.gnu.org/PR16298
- 219. http://gcc.gnu.org/PR17113
- 220. http://gcc.gnu.org/PR14697
- 221. http://gcc.gnu.org/PR15869
- 222. http://gcc.gnu.org/PR16325
- 223. http://gcc.gnu.org/PR16357
- 224. http://gcc.gnu.org/PR16380
- 225. http://gcc.gnu.org/PR16407
- 226. http://gcc.gnu.org/PR16643
- 227. http://gcc.gnu.org/PR15927
- 228. http://gcc.gnu.org/PR15948
- 229. http://gcc.gnu.org/PR17019
- 230. http://gcc.gnu.org/PR16130
- 231. http://gcc.gnu.org/PR16142
- 232. http://gcc.gnu.org/PR16278
- 233. http://gcc.gnu.org/PR16414
- 234. http://gcc.gnu.org/PR16445
- 235. http://gcc.gnu.org/PR16490
- 236. http://gcc.gnu.org/PR16683
- 237. http://gcc.gnu.org/PR16195
- 238. http://gcc.gnu.org/PR16239
- 239. http://gcc.gnu.org/PR16199
- 240. http://gcc.gnu.org/PR16416
- 241. http://gcc.gnu.org/PR16430
- 242. http://gcc.gnu.org/PR16379
- 243. http://gcc.gnu.org/PR17093
- 244. http://gcc.gnu.org/PR17119
- 245. http://gcc.gnu.org/PR15928
- 246. http://gcc.gnu.org/PR16210
- 247. http://gcc.gnu.org/PR15488
- 248. http://gcc.gnu.org/PR16250
- 249. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3
- 250. http://gcc.gnu.org/PR17369
- 251. http://gcc.gnu.org/PR17850
- 252. http://gcc.gnu.org/PR13948
- 253. http://gcc.gnu.org/PR14492
- 254. http://gcc.gnu.org/PR16301
- 255. http://gcc.gnu.org/PR16566
- 256. http://gcc.gnu.org/PR17023
- 257. http://gcc.gnu.org/PR17027
- 258. http://gcc.gnu.org/PR17524
- 259. http://gcc.gnu.org/PR17826
- 260. http://gcc.gnu.org/PR15526
- 261. http://gcc.gnu.org/PR16999
- 262. http://gcc.gnu.org/PR17503
- 263. http://gcc.gnu.org/PR17581
- 264. http://gcc.gnu.org/PR18129
- 265. http://gcc.gnu.org/PR10975
- 266. http://gcc.gnu.org/PR11722
- 267. http://gcc.gnu.org/PR14534
- 268. http://gcc.gnu.org/PR15172
- 269. http://gcc.gnu.org/PR15786
- 270. http://gcc.gnu.org/PR16162
- 271. http://gcc.gnu.org/PR16612
- 272. http://gcc.gnu.org/PR16715
- 273. http://gcc.gnu.org/PR16848
- 274. http://gcc.gnu.org/PR17132
- 275. http://gcc.gnu.org/PR17259
- 276. http://gcc.gnu.org/PR17327
- 277. http://gcc.gnu.org/PR17393
- 278. http://gcc.gnu.org/PR17501
- 279. http://gcc.gnu.org/PR17537
- 280. http://gcc.gnu.org/PR17585
- 281. http://gcc.gnu.org/PR17821
- 282. http://gcc.gnu.org/PR17829
- 283. http://gcc.gnu.org/PR17851
- 284. http://gcc.gnu.org/PR17976
- 285. http://gcc.gnu.org/PR18020
- 286. http://gcc.gnu.org/PR18093
- 287. http://gcc.gnu.org/PR18140
- 288. http://gcc.gnu.org/PR17541
- 289. http://gcc.gnu.org/PR17853
- 290. http://gcc.gnu.org/PR17245
- 291. http://gcc.gnu.org/PR17167
- 292. http://gcc.gnu.org/PR17277
- 293. http://gcc.gnu.org/PR17505
- 294. http://gcc.gnu.org/PR17684
- 295. http://gcc.gnu.org/PR17384
- 296. http://gcc.gnu.org/PR17770
- 297. http://gcc.gnu.org/PR11476
- 298. http://gcc.gnu.org/PR14064
- 299. http://gcc.gnu.org/PR14678
- 300. http://gcc.gnu.org/PR15583
- 301. http://gcc.gnu.org/PR15790
- 302. http://gcc.gnu.org/PR15886
- 303. http://gcc.gnu.org/PR16884
- 304. http://gcc.gnu.org/PR13841
- 305. http://gcc.gnu.org/PR15860
- 306. http://gcc.gnu.org/PR17465
- 307. http://gcc.gnu.org/PR17469
- 308. http://gcc.gnu.org/PR18138
- 309. http://gcc.gnu.org/PR15498
- 310. http://gcc.gnu.org/PR15747
- 311. http://gcc.gnu.org/PR16406
- 312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4
- 313. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5
- 314. http://gcc.gnu.org/PR24688
- 315. http://gcc.gnu.org/PR17188
- 316. http://gcc.gnu.org/PR20187
- 317. http://gcc.gnu.org/PR21873
- 318. http://gcc.gnu.org/PR21899
- 319. http://gcc.gnu.org/PR22061
- 320. http://gcc.gnu.org/PR22208
- 321. http://gcc.gnu.org/PR22458
- 322. http://gcc.gnu.org/PR22589
- 323. http://gcc.gnu.org/PR24101
- 324. http://gcc.gnu.org/PR10611
- 325. http://gcc.gnu.org/PR13377
- 326. http://gcc.gnu.org/PR16002
- 327. http://gcc.gnu.org/PR17413
- 328. http://gcc.gnu.org/PR17609
- 329. http://gcc.gnu.org/PR17618
- 330. http://gcc.gnu.org/PR18124
- 331. http://gcc.gnu.org/PR18155
- 332. http://gcc.gnu.org/PR18177
- 333. http://gcc.gnu.org/PR18368
- 334. http://gcc.gnu.org/PR18378
- 335. http://gcc.gnu.org/PR18466
- 336. http://gcc.gnu.org/PR18512
- 337. http://gcc.gnu.org/PR18545
- 338. http://gcc.gnu.org/PR18738
- 339. http://gcc.gnu.org/PR18803
- 340. http://gcc.gnu.org/PR19004
- 341. http://gcc.gnu.org/PR19208
- 342. http://gcc.gnu.org/PR19253
- 343. http://gcc.gnu.org/PR19608
- 344. http://gcc.gnu.org/PR19884
- 345. http://gcc.gnu.org/PR20153
- 346. http://gcc.gnu.org/PR20563
- 347. http://gcc.gnu.org/PR20789
- 348. http://gcc.gnu.org/PR21336
- 349. http://gcc.gnu.org/PR21768
- 350. http://gcc.gnu.org/PR21853
- 351. http://gcc.gnu.org/PR21903
- 352. http://gcc.gnu.org/PR21983
- 353. http://gcc.gnu.org/PR21987
- 354. http://gcc.gnu.org/PR22153
- 355. http://gcc.gnu.org/PR22172
- 356. http://gcc.gnu.org/PR21286
- 357. http://gcc.gnu.org/PR22233
- 358. http://gcc.gnu.org/PR22508
- 359. http://gcc.gnu.org/PR22545
- 360. http://gcc.gnu.org/PR23528
- 361. http://gcc.gnu.org/PR23550
- 362. http://gcc.gnu.org/PR23586
- 363. http://gcc.gnu.org/PR23624
- 364. http://gcc.gnu.org/PR23639
- 365. http://gcc.gnu.org/PR23797
- 366. http://gcc.gnu.org/PR23965
- 367. http://gcc.gnu.org/PR24052
- 368. http://gcc.gnu.org/PR24580
- 369. http://gcc.gnu.org/PR24267
- 370. http://gcc.gnu.org/PR17810
- 371. http://gcc.gnu.org/PR17860
- 372. http://gcc/gnu.org/PR21709
- 373. http://gcc.gnu.org/PR21964
- 374. http://gcc.gnu.org/PR22167
- 375. http://gcc.gnu.org/PR22619
- 376. http://gcc.gnu.org/PR23241
- 377. http://gcc.gnu.org/PR23478
- 378. http://gcc.gnu.org/PR24470
- 379. http://gcc.gnu.org/PR24950
- 380. http://gcc.gnu.org/PR14400
- 381. http://gcc.gnu.org/PR14940
- 382. http://gcc.gnu.org/PR20239
- 383. http://gcc.gnu.org/PR15220
- 384. http://gcc.gnu.org/PR19275
- 385. http://gcc.gnu.org/PR21888
- 386. http://gcc.gnu.org/PR15342
- 387. http://gcc.gnu.org/PR23985
- 388. http://gcc.gnu.org/PR16719
- 389. http://gcc.gnu.org/PR21723
- 390. http://gcc.gnu.org/PR21841
- 391. http://gcc.gnu.org/PR23644
- 392. http://gcc.gnu.org/PR24718
- 393. http://gcc.gnu.org/PR18421
- 394. http://gcc.gnu.org/PR20621
- 395. http://gcc.gnu.org/PR18583
- 396. http://gcc.gnu.org/PR20191
- 397. http://gcc.gnu.org/PR22083
- 398. http://gcc.gnu.org/PR23070
- 399. http://gcc.gnu.org/PR23404
- 400. http://gcc.gnu.org/PR23539
- 401. http://gcc.gnu.org/PR24102
- 402. http://gcc.gnu.org/PR24465
- 403. http://gcc.gnu.org/PR19933
- 404. http://gcc.gnu.org/PR21889
- 405. http://gcc.gnu.org/PR19300
- 406. http://gcc.gnu.org/PR20301
- 407. http://gcc.gnu.org/PR20673
- 408. http://gcc.gnu.org/PR18582
- 409. http://gcc.gnu.org/PR19340
- 410. http://gcc.gnu.org/PR21716
- 411. http://gcc.gnu.org/PR24315
- 412. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6
- 413. mailto:gnu@gnu.org
- 414. http://www.gnu.org/home.html#ContactInfo
- 415. http://gcc.gnu.org/about.html
- 416. http://gcc.gnu.org/onlinedocs/
- 417. mailto:gcc-help@gcc.gnu.org
- 418. mailto:gcc@gnu.org
- 419. mailto:gcc@gcc.gnu.org
- 420. http://gcc.gnu.org/lists.html
- 421. 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, one of the [16]GNU mirror
- sites, or our CVS 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 2006-06-21 [25]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. http://www.gnu.org/order/ftp.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.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 2006-11-12 [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, one of the [12]GNU mirror
- sites, or our CVS 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 2006-06-21 [21]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. http://www.gnu.org/order/ftp.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-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 2006-06-21 [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, one of the [9]GNU mirror
- sites, or our CVS server.
- _________________________________________________________________
-
- Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There are
- also [11]other ways to contact the FSF.
-
- These pages are maintained by [12]the GCC team.
-
-
- For questions related to the use of GCC, please consult these web pages and
- the [13]GCC manuals. If that fails, the [14]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 [15]gcc@gnu.org or [16]gcc@gcc.gnu.org. All of
- our lists have [17]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 2006-06-21 [18]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. http://www.gnu.org/order/ftp.html
- 10. mailto:gnu@gnu.org
- 11. http://www.gnu.org/home.html#ContactInfo
- 12. http://gcc.gnu.org/about.html
- 13. http://gcc.gnu.org/onlinedocs/
- 14. mailto:gcc-help@gcc.gnu.org
- 15. mailto:gcc@gnu.org
- 16. mailto:gcc@gcc.gnu.org
- 17. http://gcc.gnu.org/lists.html
- 18. 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 2007-02-18 [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/index.html#4_1
- 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, one of the [9]GNU 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 [10]gnu@gnu.org. There are
- also [11]other ways to contact the FSF.
-
- These pages are maintained by [12]the GCC team.
-
-
- For questions related to the use of GCC, please consult these web pages and
- the [13]GCC manuals. If that fails, the [14]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 [15]gcc@gnu.org or [16]gcc@gcc.gnu.org. All of
- our lists have [17]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-02-01 [18]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. http://www.gnu.org/order/ftp.html
- 10. mailto:gnu@gnu.org
- 11. http://www.gnu.org/home.html#ContactInfo
- 12. http://gcc.gnu.org/about.html
- 13. http://gcc.gnu.org/onlinedocs/
- 14. mailto:gcc-help@gcc.gnu.org
- 15. mailto:gcc@gnu.org
- 16. mailto:gcc@gcc.gnu.org
- 17. http://gcc.gnu.org/lists.html
- 18. 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-02-24 [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. Here are workaround hints for: [1]ostream::form,
- [2]filebuf::attach.
- * 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:
- [3]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
-
- Please send FSF & GNU inquiries & questions to [4]gnu@gnu.org. There are
- also [5]other ways to contact the FSF.
-
- These pages are maintained by [6]the GCC team.
-
-
- For questions related to the use of GCC, please consult these web pages and
- the [7]GCC manuals. If that fails, the [8]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 [9]gcc@gnu.org or [10]gcc@gcc.gnu.org. All of our
- lists have [11]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 2006-06-21 [12]Valid XHTML 1.0
-
-References
-
- 1. http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html
- 2. http://gcc.gnu.org/onlinedocs/libstdc++/ext/howto.html
- 3. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
- 4. mailto:gnu@gnu.org
- 5. http://www.gnu.org/home.html#ContactInfo
- 6. http://gcc.gnu.org/about.html
- 7. http://gcc.gnu.org/onlinedocs/
- 8. mailto:gcc-help@gcc.gnu.org
- 9. mailto:gcc@gnu.org
- 10. mailto:gcc@gcc.gnu.org
- 11. http://gcc.gnu.org/lists.html
- 12. 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 the [8]GNU FTP server (ftp://ftp.gnu.org)
- [9]Find a GNU mirror site
- [10]Find a GCC mirror site
-
- For additional information about GCC please see the [11]GCC project web
- server or contact the [12]GCC development mailing list.
-
- 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 2006-06-21 [21]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. ftp://ftp.gnu.org/pub/gnu/gcc/
- 9. http://www.gnu.org/order/ftp.html
- 10. http://gcc.gnu.org/mirrors.html
- 11. http://gcc.gnu.org/index.html
- 12. mailto:gcc@gcc.gnu.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-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 2006-06-21 [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/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 2006-06-21 [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 2006-06-21 [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 [1]g77 version 0.5.23.
- * Vast improvements in the C++ compiler; so many they have [2]page of
- their own!
- * Compiler implements [3]global common subexpression elimination and
- global copy/constant propagation.
- * More major improvements in the [4]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 [5]features found in GCC 2.8.
-
- 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 2006-06-21 [14]Valid XHTML 1.0
-
-References
-
- 1. http://gcc.gnu.org/onlinedocs/g77/News.html
- 2. http://gcc.gnu.org/egcs-1.1/c++features.html
- 3. http://gcc.gnu.org/news/gcse.html
- 4. http://gcc.gnu.org/news/alias.html
- 5. http://gcc.gnu.org/egcs-1.0/features-2.8.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.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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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 2006-06-21 [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
-======================================================================