-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 |  |