Bart De VOS pointed out that removing absolute paths from the libc linker scripts is plainly wrong.
It dates from dawn ages of the original crosstool code, and is not well explained. At that time, binutils might not understand the sysroot stuff, and it was necessary to remove absolute paths in that case.
/trunk/scripts/build/libc/glibc.sh | 14 2 12 0 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
2 Wed Jun 15 09:12:43 PDT 2005
6 build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r'
7 build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent'
8 ... 53 lines deleted ...
9 build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r'
10 collect2: ld returned 1 exit status
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
13 when building glibc with --enable-static-nss.
15 See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631
17 --- glibc-2.3.5/Makeconfig.old Wed Jun 15 08:13:12 2005
18 +++ glibc-2.3.5/Makeconfig Wed Jun 15 08:13:14 2005
21 # The static libraries.
22 ifeq (yes,$(build-static))
23 -link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a
24 +link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a
26 ifeq (yes,$(build-shared))
27 # We can try to link the programs with lib*_pic.a...
28 --- glibc-2.3.5/elf/Makefile.old Wed Jun 15 07:46:49 2005
29 +++ glibc-2.3.5/elf/Makefile Wed Jun 15 08:14:00 2005
31 install-bin-script = ldd
34 +ifeq (yes,$(build-static-nss))
35 +nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
36 +resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
37 +otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
38 + $(resolvobjdir)/libresolv.a
45 Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>