patches/glibc/2.9/310-2.3.6-fix-pr631.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
parent 1201 c9967a6e3b25
permissions -rw-r--r--
kernel/linux: fix using custom location

Currently, extract and patch are skipped as thus:
- using a custom directory of pre-installed headers
- a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
- a non-custom kernel is used
- a previous build only partially extracted the non-custom sources
- that p[revious build broke during extraction (eg. incomplete tarball...)
- a subsequent build will find a properly named directory, and will
thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type | Extract | Patch
----------------------+---------+-------
Pre-installed headers | N | N
custom directory | N | N
custom tarball | Y | N
mainstream tarball | Y | Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
yann@1201
     1
Original patch from: gentoo/src/patchsets/glibc/2.9/1090_all_glibc-2.3.6-fix-pr631.patch
yann@1201
     2
yann@1201
     3
-= BEGIN original header =-
yann@1201
     4
From dank@kegel.com
yann@1201
     5
Wed Jun 15 09:12:43 PDT 2005
yann@1201
     6
yann@1201
     7
Fixes
yann@1201
     8
yann@1201
     9
build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
yann@1201
    10
build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
yann@1201
    11
... 53 lines deleted ...
yann@1201
    12
build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
yann@1201
    13
collect2: ld returned 1 exit status
yann@1201
    14
make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1
yann@1201
    15
yann@1201
    16
when building glibc with --enable-static-nss.
yann@1201
    17
yann@1201
    18
See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
yann@1201
    19
yann@1201
    20
-= END original header =-
yann@1201
    21
yann@1201
    22
diff -durN glibc-2_9.orig/Makeconfig glibc-2_9/Makeconfig
yann@1201
    23
--- glibc-2_9.orig/Makeconfig	2009-02-02 22:00:36.000000000 +0100
yann@1201
    24
+++ glibc-2_9/Makeconfig	2009-02-02 22:01:04.000000000 +0100
yann@1201
    25
@@ -509,7 +509,7 @@
yann@1201
    26
 
yann@1201
    27
 # The static libraries.
yann@1201
    28
 ifeq (yes,$(build-static))
yann@1201
    29
-link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
yann@1201
    30
+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
yann@1201
    31
 else
yann@1201
    32
 ifeq (yes,$(build-shared))
yann@1201
    33
 # We can try to link the programs with lib*_pic.a...
yann@1201
    34
diff -durN glibc-2_9.orig/elf/Makefile glibc-2_9/elf/Makefile
yann@1201
    35
--- glibc-2_9.orig/elf/Makefile	2008-10-31 21:35:11.000000000 +0100
yann@1201
    36
+++ glibc-2_9/elf/Makefile	2009-02-02 22:01:04.000000000 +0100
yann@1201
    37
@@ -121,6 +121,13 @@
yann@1201
    38
 install-bin-script = ldd
yann@1201
    39
 endif
yann@1201
    40
 
yann@1201
    41
+ifeq (yes,$(build-static-nss))
yann@1201
    42
+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
yann@1201
    43
+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
yann@1201
    44
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
yann@1201
    45
+	     $(resolvobjdir)/libresolv.a
yann@1201
    46
+endif
yann@1201
    47
+
yann@1201
    48
 others		= sprof sln
yann@1201
    49
 install-bin	= sprof
yann@1201
    50
 others-static   = sln