patches/glibc/2.3.3/glibc-2.3.3-libeh-kludge.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
wget "http://sources.redhat.com/cgi-bin/get-raw-msg?listname=libc-alpha&date=2003-09&msgid=20030911190500.GE12344%40sunsite.ms.mff.cuni.cz"
yann@1
     2
aka http://sources.redhat.com/ml/libc-alpha/2003-09/msg00104.html
yann@1
     3
yann@1
     4
This seems to fix the error
yann@1
     5
   gcc-3.4.1-glibc-2.3.3/lib/gcc/powerpc-7400-linux-gnu/3.4.1/../../../../powerpc-7400-linux-gnu/bin/ld: cannot find -lgcc_eh
yann@1
     6
   make[1]: *** [build/powerpc-7400-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-glibc/libc.so] Error 1
yann@1
     7
but I assume it might cause trouble with nptl
yann@1
     8
FIXME: once we figure out why this patch is wrong, fix it right :-)
yann@1
     9
yann@1
    10
Date: Thu, 11 Sep 2003 21:05:00 +0200
yann@1
    11
From: Jakub Jelinek <jakub at redhat dot com>
yann@1
    12
To: libc-alpha at sources dot redhat dot com
yann@1
    13
Subject: Re: Another ugly bootstrapping patch for libgcc_eh
yann@1
    14
Message-ID: <20030911190500.GE12344@sunsite.ms.mff.cuni.cz>
yann@1
    15
Reply-To: Jakub Jelinek <jakub at redhat dot com>
yann@1
    16
References: <20030911194944.GA6104@nevyn.them.org> <20030911180703.GD12344@sunsite.ms.mff.cuni.cz> <20030911203621.GA31503@nevyn.them.org>
yann@1
    17
In-Reply-To: <20030911203621 dot GA31503 at nevyn dot them dot org>
yann@1
    18
yann@1
    19
On Thu, Sep 11, 2003 at 04:36:21PM -0400, Daniel Jacobowitz wrote:
yann@1
    20
> > Why exactly do you need that?
yann@1
    21
> > What exact library needs the functions from libgcc_eh.a?
yann@1
    22
> > There shouldn't be any these days (__register_*/__frame_state_for etc.
yann@1
    23
> > functions should come from sysdeps/generic on arches which need them,
yann@1
    24
> > _Unwind_* come from unwind*.c).
yann@1
    25
> > IMHO both:
yann@1
    26
> > 
yann@1
    27
> > # Force the backward compatibility EH functions to be linked.
yann@1
    28
> > LDFLAGS-c.so += -u __register_frame
yann@1
    29
> > 
yann@1
    30
> > in Makerules and -lgcc_eh in Makeconfig should go.
yann@1
    31
> 
yann@1
    32
> If you say so.  That -lgcc_eh's been in and out quite a number of
yann@1
    33
> times.  I was just assuming that it was necessary.
yann@1
    34
yann@1
    35
I have been testing following patch on hammer.
yann@1
    36
linuxthreads built just fine and NPTL libraries too,
yann@1
    37
and in both cases libraries had the same exported symbols as without
yann@1
    38
the patch (though its .text slightly shrunk because it no longer contained
yann@1
    39
unneeded libgcc_eh routines (and also libc.so has fewer .plt slots).
yann@1
    40
Unfortunately, sln in NPTL build doesn't link, as libgcc_eh.a is needed
yann@1
    41
in this case.
yann@1
    42
So, IMHO we need my Makerules change and Daniel's patch.
yann@1
    43
yann@1
    44
2003-09-11  Jakub Jelinek  <jakub@redhat.com>
yann@1
    45
yann@1
    46
	#* Makerules (LDFLAGS-c.so): Remove -u __register_frame.
yann@1
    47
	* Makeconfig (gnulib): Remove -lgcc_eh.
yann@1
    48
yann@1
    49
# Ulrich already applied this.
yann@1
    50
#--- libc/Makerules.jj	2003-07-23 03:56:16.000000000 -0400
yann@1
    51
#+++ libc/Makerules	2003-09-11 16:22:44.000000000 -0400
yann@1
    52
#@@ -572,8 +572,6 @@ LDFLAGS-c.so = -nostdlib -nostartfiles
yann@1
    53
# LDLIBS-c.so += $(gnulib)
yann@1
    54
# # Give libc.so an entry point and make it directly runnable itself.
yann@1
    55
# LDFLAGS-c.so += -e __libc_main
yann@1
    56
#-# Force the backward compatibility EH functions to be linked.
yann@1
    57
#-LDFLAGS-c.so += -u __register_frame
yann@1
    58
# # Pre-link the objects of libc_pic.a so that we can locally resolve
yann@1
    59
# # COMMON symbols before we link against ld.so.  This is because ld.so
yann@1
    60
# # contains some of libc_pic.a already, which will prevent the COMMONs
yann@1
    61
--- libc/Makeconfig.jj	2003-07-22 08:25:32.000000000 -0400
yann@1
    62
+++ libc/Makeconfig	2003-09-11 16:23:08.000000000 -0400
yann@1
    63
@@ -505,7 +505,7 @@ link-libc-bounded = $(common-objpfx)libc
yann@1
    64
 link-extra-libs-bounded = $(foreach lib,$(LDLIBS-$(@F:%-bp=%)),$(common-objpfx)$(lib)_b.a)
yann@1
    65
 
yann@1
    66
 ifndef gnulib
yann@1
    67
-gnulib := -lgcc -lgcc_eh
yann@1
    68
+gnulib := -lgcc
yann@1
    69
 endif
yann@1
    70
 ifeq ($(elf),yes)
yann@1
    71
 +preinit = $(addprefix $(csu-objpfx),crti.o)
yann@1
    72
yann@1
    73
yann@1
    74
	Jakub
yann@1
    75