May 2015 Toolchain Update
Nick Clifton
nickc@redhat.com
Mon May 18 09:26:00 GMT 2015
Hi Guys,
There are several things to report this month:
* GCC now supports targets configured to use the MUSL C library:
http://www.musl-libc.org/
* The Compiler has a new warning option: -Wmisleading-indentation
This generates warnings when the indentation of the code does
not reflect the block structure. For example:
if (some_condition ())
foo ();
bar (); /* Gotcha: this is not guarded by the "if". */
The warning is disabled by default.
* The Compiler also has a new shift warning: -Wshift-negative-value
This generates warnings when left shifting a negative value.
The warning is enabled by -Wextra in C99 and C++11 modes (and
newer). The warning can be suppressed by an appropriate cast.
For example:
val |= ~0 << loaded; // Generates warning
val |= (unsigned) ~0 << loaded; // Does not warn
* GCC supports a new option: -fno-plt
When compiling position independent code this tells the compiler
not to use PLT for external function calls. Instead the address
is loaded from the GOT and then branched to directly. This
leads to more efficient code by eliminating PLT stubs and
exposing GOT load to optimizations.
Not all architectures support this option, and some other
optimization features, such as lazy binding, may disable it.
* GCC's sanitizer has a new option: -fsanitize=bounds-strict
This option enables strict instrumentation of array bounds.
Most out of bounds accesses are detected, including flexible
array members and flexible array member-like arrays.
* The AArch64 backend supports a new option to enable a workaround
for the ARM Cortex-A53 erratum number 843419. The workaround
itself is implemented in the linker, but it can be enabled via
the compiler option:
-mfix-cortex-a53-843419
Note, specifying -mcpu=cortex-a53 is not enough to enable this
option as not all versions of the A53 need the erratum.
* The AArch64 backend also supports a new core type of "native".
When used as -mcpu=native or -mtune=native it tells the backend
to base its core selection on the host system. If the compiler
cannot recognise the processor of the host system then the
option does nothing.
* The Linker now supports the Intel MCU architecture:
https://groups.google.com/forum/#!topic/ia32-abi/cn7TM6J_TIg
* GDB 7.9.1 has been released!
GDB 7.9.1 brings the following fixes and enhancements over GDB 7.9:
+ PR build/18033 (C++ style comment used in gdb/iq2000-tdep.c and
gdb/compile/compile-*.c)
+ PR build/18298 ("compile" command cannot find compiler if tools
configured with triplet instead of quadruplet)
+ PR tui/18311 (Random SEGV when displaying registers in TUI mode)
+ PR python/18299 (exception when registering a global
pretty-printer in verbose mode)
+ PR python/18066 (argument "word" seems broken in Command.complete
(text, word))
+ PR pascal/17815 (Fix pascal behavior for class fields with testcase)
+ PR python/18285 (ptype expr-with-xmethod causes SEGV)
Cheers
Nick
================================================================
GCC Merge:
Toolchains that do not build GCC successfully:
None.
Toolchains that do not build LIBGCC successfully:
mep-elf: ICE: in pre_and_rev_post_order_compute, at cfganal.c
Toolchains that do not build NEWLIB successfully:
None.
Toolchains that do not build the target LIBIBERTY successfully:
None.
Toolchains that do not build LIBSTDC++-V3 successfully:
cr16-elf: ICE: in gen_rtx_SUBREG in emit-rtl.c
m32c-elf: ICE: in connect_traces, at dwarf2cfi.c
Toolchains that fail to build GDB:
Not supported:
arc-elf cr16-elf epiphany-elf
ia64-elf mcore-elf mmix-mmixware
nds32le-elf nios2-elf pdp11-aout
tilepro-gnu-linux visium-elf
No sim:
mips64vr-elf
Toolchains that DO build all their target libraries and gdb:
aarch64-elf arm-eabi avr-elf
bfin-elf c6x-elf cris-elf
frv-elf h8300-elf i386-elf
iq2000-elf lm32-elf m32r-elf
mipsisa32-elf mipsisa64-elf mn10300-elf
moxie-elf msp430-elf rl78-elf
powerpc-eabispe powerpc-elf rx-elf
sh-elf sh64-elf spu-elf
tx39-elf v850e-elf visium-elf
xstormy16-elf
----------------------------------------------------------------
[SIM based] GCC DG Testsuite Results
The chart below is sorted on the number of unexpected
failures, rather than alphabetically, in order to provide a
small guide to toolchain quality. [The better/worse number
shows how the results have changed compared to last month].
x86_64 native ... failures: 0 [better by 1]
arm-eabi ... failures: 0
mipsisa32-elf ... failures: 0 [better by 22]
mipsisa64-elf ... failures: 0 [better by 24]
sh-elf ... failures: 1
mn10300-elf ... failures: 1 [better by 3]
m32r-elf ... failures: 2 [better by 8]
rx-elf ... failures: 2 [better by 7]
msp430-elf ... failures: 3 [better by 5]
frv-elf ... failures: 4 [better by 1]
h8300-elf ... failures: 4 [better by 18]
v850e-elf ... failures: 4 [better by 4]
powerpc-eabispe ... failures: 7 [better by 5]
rl78-elf ... failures: 7 [better by 10]
bfin-elf ... failures: 11 [better by 8]
powerpc-elf ... failures: 11 [better by 2]
iq2000-elf ... failures: 35 [better by 8]
aarch64-elf ... failures: 40 [better by 28]
mcore-elf ... failures: 58 [better by 36]
----------------------------------------------------------------
x86_64 native bootstrap:
BEFORE:
Success.
AFTER:
Success.
----------------------------------------------------------------
x86_64 GCC testsuite BEFORE AFTER
------ ------
# of expected passes 110473 110955
# of unexpected failures 160 161
# of unexpected successes 18 18
# of expected failures 278 279
# of unresolved testcases 7 7
# of unsupported tests 1674 1678
Tests that used to PASS but now FAIL:
gcc.dg/uninit-19.c
x86_64 G++ testsuite BEFORE AFTER
------ -----
# of expected passes 85278 85739
# of unexpected failures 54 54
# of unexpected successes 12 12
# of expected failures 272 272
# of unresolved testcases 15 15
# of unsupported tests 3623 3637
Tests that used to PASS but now FAIL:
None.
x86_64 GDB testsuite BEFORE AFTER
------ -----
# of expected passes 22402 22415
# of unexpected failures 143 230
# of expected failures 30 30
# of known failures 53 53
# of unresolved testcases 5 5
# of untested testcases 120 120
# of unsupported tests 100 100
Tests that used to PASS but now FAIL:
None.
================================================================
BINUTILS MERGE
All ports build successfully before and after the merge.
Ports which have FEWER failures after the merge:
mep-elf s390-linux
Ports that have the SAME number of failures before and after the
merge:
aarch64-elf alpha-netbsd am33_2.0-linux
arc-elf arm-eabi avr-elf
bfin-elf c6x-elf cr16-elf
cris-elf crx-elf dlx-elf
epiphany-elf fido-elf fr30-elf
frv-elf frv-uclinux ft32-elf
h8300-elf hppa-linux-gnu i386-darwin
i386-elf i386-netware i386-pc-go32
i686-pc-cygwin i686-pc-linux-gnu ia64-elf
iq2000-elf lm32-elf lm32-rtems4.0
m32c-elf m32r-elf m68hc12-elf
mcore-elf mcore-pe microblaze-elf
mingw32-pe mips64vr-elf mipsisa32-elf
mipsisa64-elf mmix-mmixware mn10300-elf
moxie-elf msp430-elf mt-elf
nds32le-elf nios2-elf or1k-elf
pdp11-aout powerpc-eabispe powerpc-elf
powerpc64-linux-gnu ppc-linux rl78-elf
rx-elf s390x-ibm-tpf sh-elf
sh-pe sh64-elf spu-elf
tic6x-elf tilegx-gnu-linux tilepro-gnu-linux
tx39-elf v850e-elf vax-netbsdelf
visium-elf x86_64-pc-cygwin x86_64-pc-linux-gnu
x86_64-pc-mingw64 xstormy16-elf xtensa-elf
z8k-coff
Ports which have MORE failures after the merge:
None.
More information about the Gcc
mailing list