swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fwd] GCC 2.8.0 has been released


From: Theodore C. Belding
Subject: [fwd] GCC 2.8.0 has been released
Date: Fri, 16 Jan 1998 18:37:41 -0500

>x-uunet-gateway: relay1.UU.NET from help-gcc to gnu.gcc.help; Wed, 14 Jan
1998 05:51:01 EST
>Date: Wed, 14 Jan 1998 05:59:05 EST
>From: address@hidden (Richard Kenner)
>Message-ID: <address@hidden>
>Subject: GCC 2.8.0 has been released
>Newsgroups: gnu.gcc.help
>Path:
newbabylon.rs.itd.umich.edu!newsxfer3.itd.umich.edu!newsfeed.direct.ca!Super
news60!supernews.com!atl.bellsouth.net!uunet!wendy-fate.uu.net!help-gcc
>Sender: address@hidden
>Lines: 417
>Xref: newbabylon.rs.itd.umich.edu gnu.gcc.help:21319
>
>gcc-2.8.0.tar.gz, 8,477,747 bytes, is now available on prep.ai.mit.edu
>and all the usual mirror sites.
>
>Two companion files, libstdc++-2.8.0.tar.gz, 811,260 bytes, and
>libg++-2.8.0.tar.gz, 2,282,644 bytes, are also available for g++ users.
>Note that libg++ is now considered obsolete and should not be used for
>development; libstdc++ should be used instead.
>
>If you are using C++, please report bugs to address@hidden;
>otherwise, report bugs to address@hidden
>
>The following describes a summary of the changes in this release:
>
>Noteworthy changes in GCC version 2.8.0
>---------------------------------------
>
>A major change in this release is the addition of a framework for
>exception handling, currently used by C++.  Many internal changes and
>optimization improvements have been made.  These increase the
>maintainability and portability of GCC.  GCC now uses autoconf to
>compute many host parameters.
>
>A new project, egcs (pronounced ``eggs''), is maintaining an
>experimental version of the GNU C compiler.  The egcs compiler
>contains features that are candidates for inclusion in future versions
>of GCC.  The standard GCC distribution is intended to contain a mature
>compiler that is stable and reliable; egcs aims at making experimental
>changes available to interested users at an earlier stage in their
>development process than would be appropriate for a production
>compiler.  Please see <http://www.cygnus.com/egcs/> for more
>information about egcs.  A major motivation for the egcs project was
>the long release cycle for GCC 2.8.0.  This was due to changes for
>exception handling that took a long time to complete.  In the future,
>changes of this nature will be developed in the egcs framework and not
>interfere with the frequent releases of the standard GCC distribution.
>
>Due to a bug fix related to exception handling, if you have previously
>built a sharable library with some recent versions of GCC on some
>systems and then rebuild the library with GCC 2.8.0, programs
>previously linked with that library may fail during initialization
>with a message about an undefined symbols __register_frame.  If that
>happens, you must either relink the application or rebuild the
>sharable library with "-Wl,-u,__register_frame" on the command line.
>
>The following lists changes that add new features or targets.
>
>New tools and features:
>
>    The Dwarf 2 debugging information format is supported on ELF systems, and
>    is the default for -ggdb where available.  It can also be used for C++.
>    The Dwarf version 1 debugging format is also permitted for C++, but
>    does not work well.
>
>    gcov.c is provided for test coverage analysis and branch profiling
>    analysis is also supported; see -fprofile-arcs, -ftest-coverage,
>    and -fbranch-probabilities.
>
>    Support for the Checker memory checking tool.
>
>    New switch, -fstack-check, to check for stack overflow on systems that
>    don't have such built into their ABI.
>
>    New switches, -Wundef and -Wno-undef to warn if an undefined identifier
>    is evaluated in an #if directive.
>
>    Options -Wall and -Wimplicit now cause GCC to warn about implicit int
>    in declarations (e.g. `register i;'), since the C Standard committee
>    has decided to disallow this in the next revision of the standard;
>    -Wimplicit-function-declarations and -Wimplicit-int are subsets of
>    this.
>
>    Option -Wsign-compare causes GCC to warn about comparison of signed and
>    unsigned values.
>
>    Add -dI option of cccp for cxref.
>
>New features in configuration, installation and specs file handling:
>
>    New option --enable-c-cpplib to configure script.
>
>    You can use --with-cpu on the configure command to specify the default
>    CPU that GCC should generate code for.
>
>    The -specs=file switch allows you to override default specs used in
>    invoking programs like cc1, as, etc.
>
>    Allow including one specs file from another and renaming a specs
>    variable.
>
>    You can now relocate all GCC files with a single environment variable
>    or a registry entry under Windows 95 and Windows NT.
>
>Changes to G++:
>
>    A public review copy of the December 1996 Draft of the ANSI/ISO C++
>    proto-standard is now available. See http://www.cygnus.com/misc/wp/
>    for more information.
>
>    Exception handling support has been significantly improved and is on
>    by default.  This can result in significant runtime overhead.  You can
>    turn it off with -fno-exceptions.
>
>    RTTI support has been rewritten to work properly and is now on by
>    default.  This means code that uses virtual functions will have a
>    modest space overhead.  You can use the -fno-rtti flag to disable RTTI
>    support.
>
>    On ELF systems, duplicate copies of symbols with 'initialized common'
>    linkage (such as template instantiations, vtables, and extern inlines)
>    will now be discarded by the GNU linker, so you don't need to use
>    -frepo.  This support requires GNU ld from binutils 2.8 or later.
>    
>    The overload resolution code has been rewritten to conform to the
>    latest C++ Working Paper.  Built-in operators are now considered as
>    candidates in operator overload resolution.  Function template
>    overloading chooses the more specialized template, and handles base
>    classes in type deduction and guiding declarations properly.  In this
>    release the old code can still be selected with -fno-ansi-overloading,
>    although this is not supported and will be removed in a future
>    release.
>
>    Standard usage syntax for the std namespace is supported; std is
>    treated as an alias for global scope.  General namespaces are still
>    not supported.
>
>    New flags:
>
>        + -Wsign-promo (warn about potentially confusing promotions
>          in overload resolution), -Wno-pmf-conversion (don't warn about
>          converting from a bound member function pointer to function pointer).
>
>        + -Weffc++ has been added for violations of some of the style 
>          guidelines in Scott Meyers' _Effective C++_ books.
>
>         + -Woverloaded-virtual now warns if a virtual function in a base
>           class is hidden in a derived class, rather than warning about
>           virtual functions being overloaded (even if all of the inherited
>           signatures are overridden) as it did before.
>
>        + -Wall no longer implies -W.  The new warning flag, -Wsign-compare,
>          included in -Wall, warns about dangerous comparisons of signed and
>          unsigned values. Only the flag is new; it was previously part of -W.
>
>        + -fno-weak disables the use of weak symbols.
>
>    Synthesized methods are now emitted in any translation units that need
>    an out-of-line copy. They are no longer affected by #pragma interface
>    or #pragma implementation.
>
>    __FUNCTION__ and __PRETTY_FUNCTION__ are now treated as variables by
>    the parser; previously they were treated as string constants.  So code
>    like  `printf (__FUNCTION__ ": foo")' must be rewritten to `printf
>    ("%s: foo", __FUNCTION__)'.  This is necessary for templates.
>
>    local static variables in extern inline functions will be shared between
>    translation units.
>
>    -fvtable-thunks is supported for all targets, and is the default for
>    Linux with glibc 2.x (also called libc 6.x).
>
>    bool is now always the same size as another built-in type. Previously,
>    a 64-bit RISC target using a 32-bit ABI would have 32-bit pointers and
>    a 64-bit bool. This should only affect Irix 6, which was not supported
>    in 2.7.2.
>
>    new (nothrow) is now supported.
>
>    Synthesized destructors are no longer made virtual just because the
>    class already has virtual functions, only if they override a virtual
>    destructor in a base class.  The compiler will warn if this affects
>    your code.
>
>    The g++ driver now only links against libstdc++, not libg++; it is
>    functionally identical to the c++ driver.
>
>    (void *)0 is no longer considered a null pointer constant; NULL in
>    <stddef.h> is now defined as __null, a magic constant of type (void *)
>    normally, or (size_t) with -ansi.
>
>    The name of a class is now implicitly declared in its own scope; A::A
>    refers to A.
>
>    Local classes are now supported.
>
>    __attribute__ can now be attached to types as well as declarations.
>
>    The compiler no longer emits a warning if an ellipsis is used as a
>    function's argument list.
>
>    On the HPPA, some classes that do not define a copy constructor
>    will be passed and returned in memory again so that functions
>    returning those types can be inlined.
>
>    Definition of nested types outside of their containing class is now
>    supported.  For instance:
>
>       struct A {
>              struct B;
>              B* bp;
>       };
>
>       struct A::B {
>              int member;
>       };
>
>    g++ now uses a new implementation of templates. The basic idea is that
>    now templates are minimally parsed when seen and then expanded later.
>    This allows conformant early name binding and instantiation controls,
>    since instantiations no longer have to go through the parser.
>    What you get:
>
>        + Inlining of template functions works without any extra effort or
>          modifications.
>        + Instantiations of class templates and methods defined in the class
>          body are deferred until they are actually needed (unless
>          -fexternal-templates is specified).
>        + Nested types in class templates work.
>        + Static data member templates work.
>        + Member function templates are now supported.
>        + Partial specialization of class templates is now supported.
>        + Explicit specification of template parameters to function templates
>          is now supported.
>
>     Things you may need to fix in your code:
>
>        + Syntax errors in templates that are never instantiated will now be
>          diagnosed.
>        + Types and class templates used in templates must be declared
>          first, or the compiler will assume they are not types, and fail.
>        + Similarly, nested types of template type parameters must be tagged
>          with the 'typename' keyword, except in base lists.  In many cases,
>          but not all, the compiler will tell you where you need to add
>          'typename'.  For more information, see
>
>            http://www.cygnus.com/misc/wp/dec96pub/template.html#temp.res
>
>        + Guiding declarations are no longer supported.  Function
>          declarations, including friend declarations, do not refer to
>          template instantiations.  You can restore the old behavior with
>          -fguiding-decls until you fix your code.
>
>      Other template-related features:
>
>        + Default function arguments in templates will not be evaluated (or
>          checked for semantic validity) unless they are needed.  Default
>          arguments in class bodies will not be parsed until the class
>          definition is complete.
>        + The -ftemplate-depth-NN flag can be used to increase the maximum
>          recursive template instantiation depth, which defaults to 17. If you
>          need to use this flag, the compiler will tell you.
>        + Explicit instantiation of template constructors and destructors is
>           now supported.  For instance:
>
>            template A<int>::A(const A&);
>
>      Still not supported:
>
>        + Member class templates.
>        + Template template parameters.
>        + Template friends.
>
>Changes in Objective-C:
>
>    The Objective-C Runtime Library has been made thread-safe.
>
>    The Objective-C Runtime Library contains an interface for creating
>    mutexes, condition mutexes, and threads; it requires a back-end
>    implementation for the specific platform and/or thread package.
>    Currently supported are DEC/OSF1, IRIX, Mach, OS/2, POSIX, PCThreads,
>    Solaris, and Windows32.  The --enable-threads parameter can be used
>    when configuring GCC to enable and select a thread back-end.
>
>    Objective-C is now configured as separate front-end language to GCC,
>    making it more convenient to conditionally build it.
>
>    The internal structures of the Objective-C Runtime Library have
>    changed sufficiently to warrant a new version number; now version 8.
>    Programs compiled with an older version must be recompiled.
>
>    The Objective-C Runtime Library can be built as a DLL on Windows 95
>    and Windows NT systems.
>    
>    The Objective-C Runtime Library implements +load.
>
>The following new targets are supported (see also list under each
>individual CPU below):
>
>    Embedded target m32r-elf.
>    Embedded Hitachi Super-H using ELF.
>    RTEMS real-time system on various CPU targets.
>    ARC processor.
>    NEC V850 processor.
>    Matsushita MN10200 processor.
>    Matsushita MN10300 processor.
>    Sparc and PowerPC running on VxWorks.
>    Support both glibc versions 1 and 2 on Linux-based GNU systems.
>
>New features for DEC Alpha systems:
>
>    Allow detailed specification of IEEE fp support:
>      -mieee, -mieee-with-inexact, and -mieee-conformant
>      -mfp-trap-mode=xxx, -mfp-round-mode=xxx, -mtrap-precision=xxx
>    -mcpu=xxx for CPU selection
>    Support scheduling parameters for EV5.
>    Add support for BWX, CIX, and MAX instruction set extensions.
>    Support Linux-based GNU systems.
>    Support VMS.
>
>Additional supported processors and systems for MIPS targets:
>
>    MIPS4 instruction set.
>    R4100, R4300 and R5000 processors.
>    N32 and N64 ABI.
>    IRIX 6.2.
>    SNI SINIX.
>    
>New features for Intel x86 family:
>
>    Add scheduling parameters for Pentium and Pentium Pro.
>    Support stabs on Solaris-x86.
>    Intel x86 processors running the SCO OpenServer 5 family.
>    Intel x86 processors running DG/UX.
>    Intel x86 using Cygwin32 or Mingw32 on Windows 95 and Windows NT.
>
>New features for Motorola 68k family:
>
>    Support for 68060 processor.
>    More consistent switches to specify processor.
>    Motorola 68k family running AUX.
>    68040 running pSOS, ELF object files, DBX debugging.
>    Coldfire variant of Motorola m68k family.
>
>New features for the HP PA RISC:
>
>    -mspace and m-no-space
>    -mlong-load-store and -mno-long-load-store
>    -mbig-switch -mno-big-switch
>
>    GCC on the PA requires either gas-2.7 or the HP assembler; for best
>    results using GAS is highly recommended.  GAS is required for -g and
>    exception handling support.
>
>New features for SPARC-based systems:
>
>    The ultrasparc cpu.
>    The sparclet cpu, supporting only a.out file format.
>    Sparc running SunOS 4 with the GNU assembler.
>    Sparc running the Linux-based GNU system.
>    Embedded Sparc processors running the ELF object file format.
>    -mcpu=xxx
>    -mtune=xxx
>    -malign-loops=xxx
>    -malign-jumps=xxx
>    -malign-functions=xxx
>    -mimpure-text and -mno-impure-text
>
>    Options -mno-v8 and -mno-sparclite are no longer supported on SPARC
>    targets.  Options -mcypress, -mv8, -msupersparc, -msparclite, -mf930,
>    and -mf934 are deprecated and will be deleted in GCC 2.9.  Use
>    -mcpu=xxx instead.
>
>New features for rs6000 and PowerPC systems:
>
>    Solaris 2.51 running on PowerPC's.
>    The Linux-based GNU system running on PowerPC's.
>    -mcpu=604e,602,603e,620,801,823,mpc505,821,860,power2
>    -mtune=xxx
>    -mrelocatable-lib, m-no-relocatable-lib
>    -msim, -mmve, -memb
>    -mupdate, -mno-update
>    -mfused-madd, -mno-fused-madd
>
>    -mregnames
>    -meabi
>    -mcall-linux, -mcall-solaris, -mcall-sysv-eabi, -mcall-sysv-noeabi
>    -msdata, -msdata=none, -msdata=default, -msdata=sysv, -msdata=eabi
>    -memb, -msim, -mmvme
>    -myellowknife, -mads
>    wchar_t is now of type long as per the ABI, not unsigned short.
>    -p/-pg support
>    -mcpu=403 now implies -mstrict-align.
>    Implement System V profiling.
>
>    Aix 4.1 GCC targets now default to -mcpu=common so that programs
>    compiled can be moved between rs6000 and powerpc based systems.  A
>    consequence of this is that -static won't work, and that some programs
>    may be slightly slower.
>
>    You can select the default value to use for -mcpu=xxx on rs6000 and
>    powerpc targets by using the --with-cpu=xxx option when configuring the
>    compiler.  In addition, a new options, -mtune=xxx was added that
>    selects the machine to schedule for but does not select the
>    architecture level.
>
>    Directory names used for storing the multilib libraries on System V
>    and embedded PowerPC systems have been shortened to work with commands
>    like tar that have fixed limits on pathname size.
>
>New features for the Hitachi H8/300(H):
>
>    -malign-300
>    -ms (for the Hitachi H8/S processor)
>    -mint32
>
>New features for the ARM:
>
>    -march=xxx, -mtune=xxx, -mcpu=xxx
>    Support interworking with Thumb code.
>    ARM processor with a.out object format, COFF, or AOF assembler.
>    ARM on "semi-hosted" platform.
>    ARM running NetBSD.
>    ARM running the Linux-based GNU system.
>
>New feature for Solaris systems:
>
>    GCC installation no longer makes a copy of system include files,
>    thus insulating GCC better from updates to the operating system.

--
Ted Belding                               address@hidden
University of Michigan Program for the Study of Complex Systems
http://www-personal.umich.edu/~streak/

                  ==================================
   Swarm-Support is for discussion of the technical details of the day
   to day usage of Swarm.  For list administration needs (esp.
   [un]subscribing), please send a message to <address@hidden>
   with "help" in the body of the message.
                  ==================================


reply via email to

[Prev in Thread] Current Thread [Next in Thread]