This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

September 2015 GNU Toolchain Update


Hi Guys,

  There are lots of things to report in this month's update...

  * The G++ ABI has been increased to version 10.
  
    This adds mangling of attributes that affect type identity, such
    as ia32 calling convention attributes (e.g. stdcall).

    ABI conflicts can be detected with -Wabi.  This option can also be
    used with an explicit version number to warn about compatibility
    with a particular version level, e.g. -Wabi=2 to warn about
    changes relative to ABI version 2.


  * GCC has a new configure time option: --enable-default-ssp
    This turns on -fstack-protector-strong by default.


  * Several new warning options have been added to GCC:
  
    -Wtemplates 

      Warns when a primary template declaration is encountered. 

    -Wmultiple-inheritance

      Warns when a class is defined with multiple direct base classes.

    -Wvirtual-inheritance

      Warns when a class is defined with a virtual direct base classes.

    -Wnamespaces

      Warns when a namespace definition is opened.

    These warnings are provided to support coding rules that disallow
    certain features of C++.  The warning are automatically disabled
    when parsing system header files.

    -Wunused-const-variable

      Warns whenever a constant static variable is unused aside from
      its declaration.  This warning is enabled by -Wunused-variable
      for C, but not for C++.   In C++ this is normally not an error
      since const variables take the place of #define's in C++. 
 
    -Wsubobject-linkage

      Warns if a class type has a base or a field whose type uses the
      anonymous namespace or depends on a type with no linkage.  If a
      type A depends on a type B with no or internal linkage, defining
      it in multiple translation units would be an ODR violation
      because the meaning of B is different in each translation unit.
      If A only appears in a single translation unit, the best way to
      silence the warning is to give it internal linkage by putting it
      in an anonymous namespace as well.  The compiler doesn't give
      this warning for types defined in the main .C file, as those are
      unlikely to have multiple definitions.


  * Some new target specific options have been added as well:

    For AArch64 targets the command line option -mtls-size=<size> can
    be used to specify bit size of immediate TLS offsets.  Valid
    values are 12, 24, 32, 48.

    Also for AArch64, the option -mpc-relative-literal-loads enables
    PC relative literal loads.  If this option is used, literal pools
    are assumed to have a range of up to 1MiB and an appropriate
    instruction sequence is used.

    For MIPS targets the option -mcompact-branches=<when> can be used
    to control the form of generated branches.  A value of 'never'
    ensures that compact branch instructions will never be generated.
    'Always' means that a compact branch instruction will be generated
    if available.  Otherwise a delay slot form of the branch will be
    used instead.  A value of 'optimal' (which is the default) will
    cause a delay slot branch to be used if one is available in the
    current ISA and the delay slot is successfully filled.  If the
    delay slot is not filled, a compact branch will be chosen if one
    is available.

    For S/390 systems the option -mhtm can be used to enable the
    builtins that support the transactional execution facility.  This
    option is enabled by default when -march=zEC12 is used.

    Also for the S/390 the -mvx option enables the generation of code
    using the vector extension instructions.  This option involves a
    change to the ABI that affects vector types.  It is enabled by
    default when -march=z13 is used.
    A second option: -mzvector can be used to enable 'vector' as a new
    language type, and to enable builtin functions associated with the
    z13 vector instructions.  This option is disabled by default.

    The Intel x86_64 Skylake architecture is now supported as a
    parameter to the -march= and -mtune command line options.  The
    values 'skylake' or 'skylake-avx512' can be used.

    The Xtensa target has a new option -mauto-litpools which will
    intersperse literal pools in the text section, possibly with
    multiple pools per function.  This option allows the compilation
    of very big functions, which may not be possible when the
    -mtext-section-literals is used on its own.
 

  * The linker has enhanced its handling of orphan sections.  (Orphan
    sections are section in the input files whose placement is not
    specified by the linker script being used).  The new option:

      --orphan-handling=[place|warn|error|discard]

    tells the linker what to do.  The default is 'place' which gives
    the current behaviour, 'warn' and 'error' issue a warning or error
    message respectively, and 'discard' will silently discard any and
    all orphan sections.


  * The new PowerPC64 specific linker command line option
    --no-save-restore-funcs  tells the linker not to provide the
    out-of-line register save and restore functions used by -Os compiled
    code.  The default is to provide any such referenced function for
    a normal final link, but not do so for a relocatable link.


  * The GAS assembler now supports symbol and label names that are
    enclosed in double quotes (").  This allows them to contain
    characters that are not part of valid symbol names in high level
    languages. 


  * The STRINGS program has a new command line option
    --output-separator=<str> to provide a character or sequence of
    characters to be used as separators between the strings that are
    emitted. 


  * GDB 7.10 has been released.

    GDB 7.10 brings new targets, features and improvements, including:

   + Improved support for accessing shared libraries directly from
     the target system when debugging remotely.

   + Various Guile and Python scripting improvements, including (but not
     limited to):

     ** Support for auto-loading Python/Guile scripts contained
        in a special section named `.debug_gdb_scripts'.

     ** Support for writing a frame unwinder in Python.

   + Support for record-replay and reverse debugging on Aarch64 Linux.

   + GDB now has support for fork events on extended-remote Linux targets
     (Linux kernels 2.5.60 and later).

   + Support for DTrace USDT (Userland Static Defined Tracing) probes
     on x86_64 GNU/Linux targets.

   + Vector ABI support on S/390 GNU/Linux targets.

   + GDB now reads the GDBHISTSIZE environment variable rather than
     HISTSIZE to determine the size of GDB's command history.

   + Support for setting the parity when connecting to the target
     using a serial interface.

   + It is now possible to limit the number of candidates to be
     considered during completion.

   + Support for Sun's version of the "stabs" debug file format
     has been removed.

   + Support for the following targets and native configurations has
     been removed:

     ** HP/PA running HP-UX (hppa*-*-hpux*)
     ** Itanium running HP-UX (ia64-*-hpux*)

     Support for the "-xdb" command-line switch (HP-UX XDB compatibility
     mode) has also been removed.

Cheers
  Nick

PS.  The monthly gcc/g++ DG tests show little change this time around:

                GCC/DG unexpected failures
                --------------------------
                        Aug'15  Sep'15
arm-eabi                4       4
bfin-elf                11      12
frv-elf                 541     24
h8300-elf               71      71
iq2000-elf              684     687
m32r-elf                -       9
mcore-elf               519     517
mipsisa32-elf           25      24
mipsisa64-elf           26      25
mn10300-elf             468     12
msp430-elf              100     559
powerpc-eabispe         15      15
rl78-elf                99      99
rx-elf                  42      41
sh-elf                  6       6
v850e-elf               31      31
x86_64-pc-linux-gnu     2       2

                G++/DG unexpected failures
                --------------------------
                        Aug'15  Sep'15
arm-eabi                35      35
bfin-elf                23      23
frv-elf                 -       124
h8300-elf               294     297
iq2000-elf              3296    3336
m32r-elf                -       102
mcore-elf               2221    2222
mipsisa32-elf           926     923
mipsisa64-elf           926     926
mn10300-elf             -       74
msp430-elf              1050    2449
powerpc-eabispe         135     150
rl78-elf                -       884
rx-elf                  50      50
sh-elf                  35      35
v850e-elf               -       94
x86_64-pc-linux-gnu     17      17


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]