-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.redefine_extname
will now
macro expand its tokens for compatibility with
SunPRO.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.
<?
, >?
, <?=
,
and >?=
operators,
deprecated in previous GCC releases, have been removed.
-fconst-strings
, deprecated in
previous GCC releases, has been removed.
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.
-fstrict-aliasing -Wstrict-aliasing
is in effect.
-frecord-marker=8
option can be used.-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:
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
.-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.-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.--with-cpu
at configure time.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.)
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.
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.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 gnu@gnu.org. There are also other ways to contact the FSF.
These pages are maintained by the GCC team.
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.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 |