glibc: Patch test-installation.pl to ignore libgcc_s.
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Aug 2012 14:06:31 +0000 (10:06 -0400)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 22 Aug 2012 14:06:31 +0000 (10:06 -0400)
lfs/glibc
src/patches/glibc-test-installation.pl-libgcc_s.patch [new file with mode: 0644]
src/patches/glibc-test-installation.pl-nss_test1.patch [new file with mode: 0644]

index f2553e9..234a7ce 100644 (file)
--- a/lfs/glibc
+++ b/lfs/glibc
@@ -237,14 +237,13 @@ endif
 
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-nss_test1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-libgcc_s.patch
 
        # Fixes:
        #   Makefile:235: *** mixed implicit and normal rules.  Stop.
        cd $(DIR_APP) && sed -i 's/ot \$$/ot:\n\ttouch $$@\n$$/' manual/Makefile
 
-       # Fix an issue when building glibc with gcc 4.7.
-       #cd $(DIR_APP) && sed -i "s/ -lgcc_s//" Makeconfig
-
 ifeq "$(ROOT)" ""
 ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \
diff --git a/src/patches/glibc-test-installation.pl-libgcc_s.patch b/src/patches/glibc-test-installation.pl-libgcc_s.patch
new file mode 100644 (file)
index 0000000..a63d5d8
--- /dev/null
@@ -0,0 +1,97 @@
+From 6e236b92765cdafb46d19e4907471699accc8269 Mon Sep 17 00:00:00 2001
+From: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date: Thu, 26 Apr 2012 09:18:48 +0530
+Subject: [PATCH] move libgcc_s soname definition to shlib-versions
+
+diff --git a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c
+index adce6e7..60dfbe6 100644
+--- a/nptl/sysdeps/pthread/unwind-forcedunwind.c
++++ b/nptl/sysdeps/pthread/unwind-forcedunwind.c
+@@ -21,7 +21,7 @@
+ #include <unwind.h>
+ #include <pthreadP.h>
+ #include <sysdep.h>
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ static void *libgcc_s_handle;
+ static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
+diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
+index c4f3d6d..1b22086 100755
+--- a/scripts/test-installation.pl
++++ b/scripts/test-installation.pl
+
+@@ -105,9 +105,10 @@ while (<SOVERSIONS>) {
+     # - libnss1_* from glibc-compat add-on
+     # - libthread_db since it contains unresolved references
+     # - it's just a test NSS module
++    # - We don't provide the libgcc so we don't test it
+     if ($name ne "nss_ldap" && $name ne "db1"
+       && !($name =~/^nss1_/) && $name ne "thread_db"
+-      && $name ne "nss_test1") {
++      && $name ne "nss_test1" && $name ne "libgcc_s") {
+       $link_libs .= " -l$name";
+       $versions{$name} = $version;
+     }
+diff --git a/shlib-versions b/shlib-versions
+index c530a44..840e08f 100644
+--- a/shlib-versions
++++ b/shlib-versions
+@@ -124,3 +124,7 @@ sparc64.*-.*-.*            libBrokenLocale=1       GLIBC_2.2
+ # The asynchronous name lookup library.
+ .*-.*-.*              libanl=1
++
++# This defines the libgcc soname version this glibc is to load for
++# asynchronous cancellation to work correctly.
++.*-.*-.*              libgcc_s=1
+diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c
+index 3638bbe..3bad5b5 100644
+--- a/sysdeps/generic/framestate.c
++++ b/sysdeps/generic/framestate.c
+@@ -1,5 +1,5 @@
+ /* __frame_state_for unwinder helper function wrapper.
+-   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
++   Copyright (C) 2001-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
+@@ -23,7 +23,7 @@
+ #define __frame_state_for fallback_frame_state_for
+ #include <unwind-dw2.c>
+ #undef __frame_state_for
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ typedef struct frame_state * (*framesf)(void *pc, struct frame_state *);
+ struct frame_state *__frame_state_for (void *pc,
+diff --git a/sysdeps/generic/libgcc_s.h b/sysdeps/generic/libgcc_s.h
+deleted file mode 100644
+index e74a103..0000000
+--- a/sysdeps/generic/libgcc_s.h
++++ /dev/null
+@@ -1,2 +0,0 @@
+-/* Name of libgcc_s library provided by gcc.  */
+-#define LIBGCC_S_SO "libgcc_s.so.1"
+diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c
+index 1d3e33f..6afaebd 100644
+--- a/sysdeps/gnu/unwind-resume.c
++++ b/sysdeps/gnu/unwind-resume.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2003 Free Software Foundation, Inc.
++/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Jakub Jelinek <jakub@redhat.com>.
+@@ -19,7 +19,7 @@
+ #include <dlfcn.h>
+ #include <stdio.h>
+ #include <unwind.h>
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
+ static _Unwind_Reason_Code (*libgcc_s_personality)
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-test-installation.pl-nss_test1.patch b/src/patches/glibc-test-installation.pl-nss_test1.patch
new file mode 100644 (file)
index 0000000..8881d94
--- /dev/null
@@ -0,0 +1,31 @@
+From 9191c04a7e19fffbea0a08523e579cd8e55142df Mon Sep 17 00:00:00 2001
+From: Ulrich Drepper <drepper@gmail.com>
+Date: Sat, 23 Jul 2011 15:28:31 -0400
+Subject: [PATCH] Adjust test for correct installation
+
+diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
+index 90cd9d7..25a919b 100755
+--- a/scripts/test-installation.pl
++++ b/scripts/test-installation.pl
+@@ -1,5 +1,5 @@
+ #! /usr/bin/perl -w
+-# Copyright (C) 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
++# Copyright (C) 1997, 1998, 1999, 2004, 2011 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1997.
+@@ -105,8 +105,10 @@ while (<SOVERSIONS>) {
+     # - libdb1 since it conflicts with libdb
+     # - libnss1_* from glibc-compat add-on
+     # - libthread_db since it contains unresolved references
++    # - it's just a test NSS module
+     if ($name ne "nss_ldap" && $name ne "db1"
+-      && !($name =~/^nss1_/) && $name ne "thread_db") {
++      && !($name =~/^nss1_/) && $name ne "thread_db"
++      && $name ne "nss_test1") {
+       $link_libs .= " -l$name";
+       $versions{$name} = $version;
+     }
+-- 
+1.7.3.4
+