This is the mail archive of the 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]

April GNU Toolchain Update

Hi Guys,

  This is an experimental posting of an extended version of my gcc
  blog.  Every month I post an update covering changes in gcc, the
  binutils, newlib, and gdb here:

  It was suggested that readers of this mailing list might be interested
  in the information too, so I am posting this trial run.  If you hate
  it, please let me know and I will stop.  If you like then please also
  let me know and I will continue.  If you find mistakes or omissions,
  then I will not be surprised, but I will be very glad to hear them.

  The blog itself came about because every month I perform a merge
  between the public FSF sources and Red Hat's internal, development
  sources.  During the course of this merge I often find out about
  changes and updates that I had not even realised had happened.  I also
  try to keep track of how well different targets are building and
  performing in order to get an overall feel for the state of the


  There are several things to report this month:

  * The GCC version 5 branch has been created.  No releases have been
    made from this branch yet, but when one happens it will be GCC
    5.1.  Meanwhile the mainline development sources have been
    switched to calling themselves GCC version 6.

  * Support has been added for configuring targets that use the Nuxi
    CloudABI.  More details of this ABI can be found here:

  * The linker and assembler now support an option to control how
    DWARF debug sections are compressed:


    Selecting NONE disables compression.  This is the default
    behaviour if this option is not used.  Selecting ZLIB or ZLIB-GNU
    compresses the sections and then renames them to start with a .z.
    This is the old method of indicating that a debug section has been
    compressed.  Selecting ZLIB-GABI compresses the sections, but
    rather than renaming them they instead have the new SHF_COMPRESSED
    bit set in their ELF section header.

    The other binutils tools have been updated to recognise and handle
    this SHF_COMPRESSED bit.  More information on the new bit can be
    found here:!msg/generic-abi/dBOS1H47Q64/PaJvELtaJrsJ

    In another, related change, the binutils will no longer compress a
    debug section if doing so would actually make it bigger.

    Also the zlib compression/decompression library sources have now
    been brought in to the binutils git repository and are now a
    standard part of a binutils release.

    * The linker has a new command line option:


      This option tells the linker to generate a warning message
      whenever it has to guess at the placement of a section in the
      output file.  This happens when the linker script in use does
      not specify where the section should go.

    * The compiler has a new option:

      This tells the address sanitizer to add protection to global
      variables defined in the named section(s).  By default any
      globals in sections with user defined names are not sanitized as
      the compiler does not know what is going to happen to them.  In
      particular variables in such sections sometimes end up being
      merged into an array of values, where the presence of address
      sanitization markers would break the array.

   * The AVR port of the compiler has a new command line option:

     This tells the compiler not to link against AVR-LibC's device
     specific library libdev.a. 

  * The RX port of GCC has a new command line option to disable the
    use of RX string instructions (SMOVF, SUNTIL, etc).  This matters
    because it is unsafe to use these instructions if the program
    might access the I/O portion of the address space.

  * The RL78 port of GCC now has support the multiply and divide
    instructions provided by the G14 cpu, and the divide hardware
    peripheral provided by the G13 core.

  * GDB now honours the content of the file /proc/PID/coredump_filter
    (PID is the process ID) on GNU/Linux systems.  This file can be
    used to specify the types of memory mappings that will be included
    in a corefile.  For more information, please refer to the manual
    page of "core(5)".  GDB also has a new command: "set
    use-coredump-filter on|off".  It allows to set whether GDB will
    read the content of the /proc/PID/coredump_filter file when
    generating a corefile.

  * GDB's "info os cpus" command on GNU/Linux can now display
    information on the cpus/cores on the system.

  * GDB has two new commands: "set serial parity odd|even|none" and
    "show serial parity".  These allows to set or show parity for the
    remote serial I/O.



                 GCC Merge:

Toolchains that do not build GCC successfully:


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:

  fr30-elf:    ICE: unrecognizable insn: (set (reg:DI) (subreg:DI (reg:DF) 0))
  m32c-elf:    ICE: in expand_call, at calls.c

Toolchains that do not build the target LIBIBERTY successfully:

Toolchains that do not build LIBSTDC++-V3 successfully:

  cr16-elf:    ICE: in gen_rtx_SUBREG in emit-rtl.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:

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

[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].

    arm-eabi        ...  failures:  0    
    sh-elf          ...  failures:  1
    x86_64 native   ...  failures:  1
    mn10300-elf     ...  failures:  4
    frv-elf         ...  failures:  5
    msp430-elf      ...  failures:  8
    v850e-elf       ...  failures:  8
    rx-elf          ...  failures:  9	[Worse by 1]
    m32r-elf        ...  failures: 10
    powerpc-eabispe ...  failures: 12
    powerpc-elf     ...  failures: 13
    rl78-elf        ...  failures: 17	[Worse by 1]
    bfin-elf        ...  failures: 19
    h8300-elf       ...  failures: 22	[Worse by 2]
    mipsisa32-elf   ...  failures: 22	[Worse by 2]
    mipsisa64-elf   ...  failures: 24	[Worse by 2]
    iq2000-elf      ...  failures: 43	[Better by 2]
    aarch64-elf     ...  failures: 68	[Better by 1]
    mcore-elf       ...  failures: 94


                x86_64 native bootstrap:
    ld-new: mpfr/src/.libs/libmpfr.a(agm.o)(.text+0x4000000620): reloc against `mpfr_mul': error 2
    gcc/lto/ recipe for target 'lto1' failed



x86_64  GCC  testsuite		BEFORE		 AFTER
				------		------
  # of expected passes		110193		110473
  # of unexpected failures	   161		   160
  # of unexpected successes	    18		    18
  # of expected failures	   277		   278
  # of unresolved testcases	     7		     7
  # of unsupported tests	  1671		  1674

Tests that used to PASS but now FAIL:


x86_64  G++  testsuite		BEFORE		AFTER
				------		-----
  # of expected passes		84875		85278
  # of unexpected failures	   54		   54
  # of unexpected successes	   12		   12
  # of expected failures	  272		  272
  # of unresolved testcases	   19		   15
  # of unsupported tests	 3569		 3623

Tests that used to PASS but now FAIL:


x86_64  GDB  testsuite	        BEFORE		AFTER
				------		-----
  # of expected passes		22429		22414
  # of unexpected failures	  131		  130
  # of expected failures	   31		   30
  # of known failures		   53		   54
  # of unresolved testcases	    5		    5
  # of untested testcases	  120		  120
  # of unsupported tests	  100		  100

Tests that used to PASS but now FAIL:




All ports build successfully before and after the merge.

Ports which have FEWER failures after the merge: 


Ports that have the SAME number of failures before and after the

  aarch64-elf 		alpha-netbsd 		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 		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 
  rx-elf 		s390-linux 		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:

   BIN REGRESSION: objdump compress debug sections 
   BIN REGRESSION: objdump compress debug sections 3

   BIN REGRESSION: objdump compress debug sections 3

   LD REGRESSION: --gc-sections with multiple debug sections

   LD REGRESSION: --gc-sections with multiple debug sections

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