patches/glibc/2.5.1/120-fix-pr631.patch
author Daniel Price <daniel.price@gmail.com>
Tue Nov 20 16:59:17 2012 -0800 (2012-11-20)
changeset 3126 333d3e40cbd1
parent 744 4bf8448536d5
permissions -rw-r--r--
scripts: refine static linking check to better guide the user

The current mechanism to check if static linking is possible, and the mesage
displayed on failure, can be puzzling to the unsuspecting user.

Also, the current implementation is not using the existing infrastructure,
and is thus difficult to enhance with new tests.

So, switch to using the standard CT_DoExecLog infra, and use four tests to
check for the host compiler:
- check we can run it
- check it can build a trivial program
- check it can statically link that program
- check if it statically link with libstdc++

That should cover most of the problems. Hopefully.

(At the same time, fix a typo in a comment)

Signed-off-by: Daniel Price <daniel.price@gmail.com>
[yann.morin.1998@free.fr: split original patch for self-contained changes]
[yann.morin.1998@free.fr: use steps to better see gcc's output]
[yann.morin.1998@free.fr: commit log]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <163f86b5216fc08c672a.1353459722@nipigon.dssd.com>
Patchwork-Id: 200536
yann@402
     1
From dank@kegel.com
yann@402
     2
Wed Jun 15 09:12:43 PDT 2005
yann@402
     3
yann@402
     4
Fixes
yann@402
     5
yann@402
     6
build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
yann@402
     7
build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
yann@402
     8
... 53 lines deleted ...
yann@402
     9
build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
yann@402
    10
collect2: ld returned 1 exit status
yann@402
    11
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@402
    12
yann@402
    13
when building glibc with --enable-static-nss.
yann@402
    14
yann@402
    15
See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
yann@402
    16
yann@402
    17
--- glibc-2.3.5/Makeconfig.old	Wed Jun 15 08:13:12 2005
yann@402
    18
+++ glibc-2.3.5/Makeconfig	Wed Jun 15 08:13:14 2005
yann@402
    19
@@ -510,7 +510,7 @@
yann@402
    20
 
yann@402
    21
 # The static libraries.
yann@402
    22
 ifeq (yes,$(build-static))
yann@402
    23
-link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
yann@402
    24
+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
yann@402
    25
 else
yann@402
    26
 ifeq (yes,$(build-shared))
yann@402
    27
 # We can try to link the programs with lib*_pic.a...
yann@402
    28
--- glibc-2.3.5/elf/Makefile.old	Wed Jun 15 07:46:49 2005
yann@402
    29
+++ glibc-2.3.5/elf/Makefile	Wed Jun 15 08:14:00 2005
yann@402
    30
@@ -120,6 +120,13 @@
yann@402
    31
 install-bin-script = ldd
yann@402
    32
 endif
yann@402
    33
 
yann@402
    34
+ifeq (yes,$(build-static-nss))
yann@402
    35
+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
yann@402
    36
+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
yann@402
    37
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
yann@402
    38
+	     $(resolvobjdir)/libresolv.a
yann@402
    39
+endif
yann@402
    40
+
yann@402
    41
 others		= sprof sln
yann@402
    42
 install-bin	= sprof
yann@402
    43
 others-static   = sln
yann@402
    44
yann@402
    45
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>