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.