Patchwork Massive breakage with your libgcc patches

login
register
mail settings
Submitter Rainer Orth
Date Nov. 21, 2011, 3:43 p.m.
Message ID <yddk46txz05.fsf@manam.CeBiTec.Uni-Bielefeld.DE>
Download mbox | patch
Permalink /patch/126821/
State New
Headers show

Comments

Rainer Orth - Nov. 21, 2011, 3:43 p.m.
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.
Paolo Bonzini - Nov. 21, 2011, 3:57 p.m.
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

Patch

# 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