i?86-elf and x86_64-elf targets default to -fasynchronous-unwind-tables, like most other x86 targets, and so since they build crtend.o they need to build it with -fno-asynchronous-unwind-tables, like other targets. This patch accordingly makes them use i386/t-crtstuff.
I'm not set up for full testing of these targets with FSF sources, but did a sanity check on this patch by building cc1 for i686-elf, and in a 4.6-based tree it fixes "ld: error in crtend.o(.eh_frame); no .eh_frame_hdr table will be created.". OK to commit? 2011-10-03 Joseph Myers <jos...@codesourcery.com> * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff. Index: gcc/config.gcc =================================================================== --- gcc/config.gcc (revision 179480) +++ gcc/config.gcc (working copy) @@ -1229,11 +1229,11 @@ x86_64-*-darwin*) ;; i[34567]86-*-elf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h" - tmake_file="${tmake_file} i386/t-i386elf t-svr4" + tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff t-svr4" ;; x86_64-*-elf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h" - tmake_file="${tmake_file} i386/t-i386elf t-svr4" + tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff t-svr4" ;; i[34567]86-*-freebsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h" -- Joseph S. Myers jos...@codesourcery.com