[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.
==================================
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [fwd] GCC 2.8.0 has been released,
Theodore C. Belding <=