Uros Bizjak <ubiz...@gmail.com> writes: > Alpha needs the same fix. I need following patch to bootstrap the compiler: > > --cut here-- > Index: gcc/config.gcc > =================================================================== > --- gcc/config.gcc (revision 176282) > +++ gcc/config.gcc (working copy) > @@ -757,6 +757,7 @@ > extra_options="${extra_options} alpha/elf.opt" > target_cpu_default="MASK_GAS" > tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee alpha/t-linux" > + extra_parts="$extra_parts crtfastmath.o" > ;; > alpha*-*-freebsd*) > tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
I've made a pass over the possibly affected targets (+: inconsistency, config.gcc needs crtfastmath.o addition; 0: no problem): config.gcc alpha*-*-linux* + alpha*-*-freebsd* + alpha*-dec-osf5.1* 0 i[34567]86-*-darwin* 0 x86_64-*-darwin* 0 i[34567]86-*-linux* 0 i[34567]86-*-kfreebsd*-gnu + + crtprec??.o x86_64-*-linux* 0 x86_64-*-kfreebsd*-gnu 0 i[34567]86-*-solaris2* 0 i[34567]86-*-cygwin* 0 i[34567]86-*-mingw* 0 x86_64-*-mingw* 0 ia64*-*-elf* + ia64*-*-freebsd* + ia64*-*-linux* + mips-sgi-irix6.5* 0 mips64*-*-linux* + mips*-*-linux* + sparc-*-elf* 0 sparc-*-linux* + sparc-*-rtems* 0 sparc*-*-solaris2* 0 sparc64-*-elf* 0 sparc64-*-freebsd* + sparc64-*-linux* + The affected ones have defaults for extra_parts for either *-*-linux* or *-*-freebsd* and previously had EXTRA_PARTS in gcc/config/$cpu/t-crtfm, i.e. alpha, i386, and sparc. With the latter now gone, we've got an inconsistency. I think the following patch should fix all broken targets. For those that previously had crtfastmath.o in EXTRA_PARTS, I'm adding it to config.gcc (extra_parts) explicitly. The non-Linux x86 glibc targets were missed before. I move the extra_parts addition down so they all benefit from it. The duplication with i386/t-linux64 shouldn't matter since gcc/Makefile.in (GCC_EXTRA_PARTS) merges them and removes duplicates. ia64*-*-elf* is also affected because it has its own extra_parts, which is now unnecessary. Unless I get confirmation that this patch breaks nothing and fixes the majority of affected targets, I'll leave it as is and work to remove the duplication over the weekend, moving extra_parts/EXTRA_PARTS/EXTRA_MULTILIB_PARTS and referenced source files over to libgcc. While this is the way we want to go, it is clearly more risky than this stop gap measure. Sorry. Rainer 2011-07-14 Rainer Orth <r...@cebitec.uni-bielefeld.de> gcc: * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts. (alpha*-*-freebsd*): Likewise. (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*, i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o, crtprec80.o, crtfastmath.o to extra_parts for all targets. (ia64*-*-elf*): Remove extra_parts. (sparc-*-linux*): Add crtfastmath.o to extra_parts. (sparc64-*-linux*): Likewise. (sparc64-*-freebsd*): Likewise. Revert: * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts. (ia64*-*-linux*): Likewise. (mips64*-*-linux*): Likewise. (mips*-*-linux*): Likewise. Index: gcc/config.gcc =================================================================== --- gcc/config.gcc (revision 176266) +++ gcc/config.gcc (working copy) @@ -757,13 +757,14 @@ extra_options="${extra_options} alpha/elf.opt" target_cpu_default="MASK_GAS" tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee alpha/t-linux" + extra_parts="${extra_parts} crtfastmath.o" ;; alpha*-*-freebsd*) tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h" extra_options="${extra_options} alpha/elf.opt" target_cpu_default="MASK_GAS" tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o crtfastmath.o" ;; alpha*-*-netbsd*) tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h" @@ -1304,9 +1305,6 @@ esac else tm_file="${tm_file} i386/gnu-user.h i386/linux.h" - # This is a hack to avoid a configuration mismatch - # until the toplevel libgcc move is complete. - extra_parts="${extra_parts} crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" fi ;; i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;; @@ -1315,6 +1313,9 @@ i[34567]86-*-gnu*) tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h";; esac tmake_file="${tmake_file} i386/t-crtstuff" + # This is a hack to avoid a configuration mismatch + # until the toplevel libgcc move is complete. + extra_parts="${extra_parts} crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ;; x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \ @@ -1594,13 +1595,13 @@ then target_cpu_default="${target_cpu_default}|MASK_GNU_LD" fi - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; ia64*-*-freebsd*) tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h" target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" tmake_file="${tmake_file} ia64/t-ia64" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; ia64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h" @@ -1609,7 +1610,7 @@ tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" fi target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; ia64*-*-hpux*) tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h" @@ -1849,6 +1850,7 @@ tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65" ;; esac + extra_parts="$extra_parts crtfastmath.o" gnu_ld=yes gas=yes test x$with_llsc != x || with_llsc=yes @@ -1868,6 +1870,7 @@ mipsisa32*) tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" esac + extra_parts="$extra_parts crtfastmath.o" test x$with_llsc != x || with_llsc=yes ;; mips*-*-openbsd*) @@ -2493,6 +2496,7 @@ else tm_file="${tm_file} sparc/linux.h" fi + extra_parts="${extra_parts} crtfastmath.o" ;; sparc-*-netbsdelf*) tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" @@ -2528,6 +2532,7 @@ tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/linux64.h" extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64" + extra_parts="${extra_parts} crtfastmath.o" ;; sparc64-*-freebsd*|ultrasparc-*-freebsd*) tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h" @@ -2537,6 +2542,7 @@ x) with_cpu=ultrasparc ;; *) echo "$with_cpu not supported for freebsd target"; exit 1 ;; esac + extra_parts="${extra_parts} crtfastmath.o" ;; sparc64-*-netbsd*) tm_file="sparc/biarch64.h ${tm_file}" -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University