This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
September 2015 GNU Toolchain Update
- From: Nick Clifton <nickc at redhat dot com>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 25 Sep 2015 13:33:34 +0100
- Subject: September 2015 GNU Toolchain Update
- Authentication-results: sourceware.org; auth=none
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