Message ID | yddk46txz05.fsf@manam.CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
On 11/21/2011 04:43 PM, Rainer Orth wrote: > Paolo Bonzini<bonzini@gnu.org> writes: > >> On 11/07/2011 07:15 PM, Rainer Orth wrote: >>> Bernd Schmidt<bernds@codesourcery.com> writes: >>> >>>> On 11/03/11 20:20, Rainer Orth wrote: >>>>> >>>>> * config/c6x/t-elf (LIB2ADDEH): Set. >>>>> * config/c6x/t-c6x-elf: Remove. >>>> >>>> It builds now, but parts of libgcc are missing. There's no sign of >>>> muldf3, for examples. >>> >>> I found the problem: before, LIB2ADD was passed in from gcc/config via >>> libgcc.mvars, and added to in t-softfp. Now the order of the t-* >>> fragments has been kept the same, with the assignment to LIB2ADD in >>> c6x/t-elf overriding what has been constructed by t-softfp before. >>> >>> The following patch did the trick for me, could you give it a try? >> >> Looks ok, but these look like they could also be broken. > > Sorry it took me so long, but this weekend I finally had a close look > at both the explicit settings of LIB2ADD and LIB2FUNCS_EXCLUDE. The > latter are unproblematic since the files affected are disjunct. For > LIB2ADD, here are the problematic cases. All others explicitly setting > LIB2ADD have no issues since there are no t-* fragments setting LIB2ADD > before. > > i386/t-darwin64:LIB2ADD = $(srcdir)/config/darwin-64.c > > The file is currently unused, was lost in the migration for > x86_64-*-darwin*. The same settings are already in i386/t-darwin, so > the file is superfluous and can be removed. > > iq2000/t-iq2000:LIB2ADD = $(srcdir)/udivmod.c \ > > This file is unused, now restored, otherwise no problem. > > pa/t-pa64:LIB2ADD = $(srcdir)/config/pa/quadlib.c > > This overrides pa/t-hpux, originally we had pa/t-pa64 pa/t-pa-hpux > without overrides, but the result is ok. > > rs6000/t-darwin64:LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \ > > Overrides rs6000/t-darwin, as it did before the move. > > rs6000/t-lynx:LIB2ADD = $(srcdir)/config/rs6000/tramp.S > > This file is currently unused, but necessary. t-lynx is also missing, > but no settings left. > > rs6000/t-netbsd:LIB2ADD = $(srcdir)/config/rs6000/tramp.S > > unused, necessary > > sh/t-netbsd:LIB2ADD = > > The override poses no problem, but is unnecessary since nothing sets > LIB2ADD before. > > t-vxworks:LIB2ADD = $(srcdir)/config/vxlib.c $(srcdir)/config/vxlib-tls.c > > Ok, but missing from powerpc-wrs-vxworks which didn't add to tmake_file. > > The following patch implements those observations. > > Ok for mainline? > > Rainer > > > 2011-11-20 Rainer Orth<ro@CeBiTec.Uni-Bielefeld.DE> > > libgcc: > * config.host (iq2000*-*-elf*): Add iq2000/t-iq2000 to tmake_file. > (powerpc-*-netbsd*): Add rs6000/t-netbsd to tmake_file. > (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add to tmake_file. > (powerpc-*-lynxos*): Add rs6000/t-lynx to tmake_file. > * config/i386/t-darwin64: Remove. > * config/sh/t-netbsd (LIB2ADD): Remove. > > > > > > Ok. Paolo
# HG changeset patch # Parent 5acb7cf614f2b6be2dd842aa54595488a6283198 Fix LIB2ADD overrides in libgcc diff --git a/libgcc/config.host b/libgcc/config.host --- a/libgcc/config.host +++ b/libgcc/config.host @@ -672,7 +672,7 @@ ia64-hp-*vms*) md_unwind_header=ia64/vms-unwind.h ;; iq2000*-*-elf*) - tmake_file=t-fdpbit + tmake_file="iq2000/t-iq2000 t-fdpbit" # Don't use default. extra_parts= ;; @@ -856,7 +856,7 @@ powerpc-*-freebsd*) extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-netbsd*) - tmake_file="$tmake_file rs6000/t-crtstuff" + tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff" ;; powerpc-*-eabispe*) tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic" @@ -896,10 +896,10 @@ powerpc-*-linux* | powerpc64-*-linux*) md_unwind_header=rs6000/linux-unwind.h ;; powerpc-wrs-vxworks|powerpc-wrs-vxworksae) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="$tmake_file rs6000/t-ppccomm-ldbl t-fdpbit" ;; powerpc-*-lynxos*) - tmake_file="$tmake_file t-fdpbit" + tmake_file="$tmake_file rs6000/t-lynx t-fdpbit" ;; powerpcle-*-elf*) tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" diff --git a/libgcc/config/i386/t-darwin64 b/libgcc/config/i386/t-darwin64 deleted file mode 100644 --- a/libgcc/config/i386/t-darwin64 +++ /dev/null @@ -1,2 +0,0 @@ -LIB2_SIDITI_CONV_FUNCS = yes -LIB2ADD = $(srcdir)/config/darwin-64.c diff --git a/libgcc/config/sh/t-netbsd b/libgcc/config/sh/t-netbsd --- a/libgcc/config/sh/t-netbsd +++ b/libgcc/config/sh/t-netbsd @@ -1,5 +1,3 @@ LIB1ASMFUNCS_CACHE = _ic_invalidate -LIB2ADD = - HOST_LIBGCC2_CFLAGS += -mieee