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
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.
For questions related to the use of GCC,
please consult these web pages and the
GCC manuals. If that fails,
the gcc-help@gcc.gnu.org
mailing list might help.
Comments on these web pages and the development of GCC are welcome on our
developer list at gcc@gcc.gnu.org.
All of our lists
have public archives.
Copyright (C)
Free Software Foundation, Inc.
Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved.