Paolo Bonzini <[email protected]> writes:
> On 11/07/2011 07:15 PM, Rainer Orth wrote:
>> Bernd Schmidt<[email protected]> 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 <[email protected]>
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.
# 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
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University