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(-)
1 diff -durN gcc-4.2.1.orig/libstdc++-v3/src/Makefile.am gcc-4.2.1/libstdc++-v3/src/Makefile.am
2 --- gcc-4.2.1.orig/libstdc++-v3/src/Makefile.am 2006-07-28 06:57:34.000000000 +0200
3 +++ gcc-4.2.1/libstdc++-v3/src/Makefile.am 2007-08-03 20:32:27.000000000 +0200
5 $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
9 +ifeq ($(enable_shared),yes)
10 + $(AR) cru libstdc++_pic.a .libs/*.o $(top_builddir)/libsupc++/*.o
11 + $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
14 # Added bits to build debug library.
15 if GLIBCXX_BUILD_DEBUG
16 all-local: build_debug
17 diff -durN gcc-4.2.1.orig/libstdc++-v3/src/Makefile.in gcc-4.2.1/libstdc++-v3/src/Makefile.in
18 --- gcc-4.2.1.orig/libstdc++-v3/src/Makefile.in 2006-10-16 21:08:22.000000000 +0200
19 +++ gcc-4.2.1/libstdc++-v3/src/Makefile.in 2007-08-03 20:32:27.000000000 +0200
22 install-data-am: install-data-local
24 -install-exec-am: install-toolexeclibLTLIBRARIES
25 +install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
27 install-info: install-info-am
30 distclean-libtool distclean-tags distdir dvi dvi-am html \
31 html-am info info-am install install-am install-data \
32 install-data-am install-data-local install-exec \
33 + install-exec-local \
34 install-exec-am install-info install-info-am install-man \
35 install-strip install-toolexeclibLTLIBRARIES installcheck \
36 installcheck-am installdirs maintainer-clean \
39 (cd ${debugdir} && $(MAKE) \
40 toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
43 +ifeq ($(enable_shared),yes)
44 + $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
45 + $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
48 # Tell versions [3.59,3.63) of GNU make to not export all variables.
49 # Otherwise a system limit (for SysV at least) may be exceeded.