* Bah. All this time gcc was linking programs against

/usr/lib/crt1.o, while it should be using $glibc/lib/crt1.o.  This
  quick hack (prepending $glibc/lib to the GCC search path using "-B")
  fixes the problem, but a better solution to prevent this sort of
  thing is to remove these static paths from gcc.

  Note: this problem was found using the pure UML Nix environment
  (where we don't have /usr/lib).

svn path=/nixpkgs/trunk/; revision=810
This commit is contained in:
Eelco Dolstra 2004-02-19 16:55:23 +00:00
parent 16c0047575
commit b7ad383924
2 changed files with 10 additions and 2 deletions

View file

@ -5,7 +5,11 @@ export NIX_CXX=/usr/bin/g++
export NIX_LD=/usr/bin/ld
export NIX_CFLAGS_COMPILE="-isystem $param4/include $NIX_CFLAGS_COMPILE"
export NIX_CFLAGS_LINK="-L$param4/lib $NIX_CFLAGS_LINK"
# The "-B$param4/lib" is a quick hack to force gcc to link against the
# crt1.o from our own glibc, rather than the one in /usr/lib. The
# real solution is of course to prevent those paths from being used by
# gcc in the first place.
export NIX_CFLAGS_LINK="-B$param4/lib -L$param4/lib $NIX_CFLAGS_LINK"
export NIX_LDFLAGS="-dynamic-linker $param4/lib/ld-linux.so.2 -rpath $param4/lib $NIX_LDFLAGS"
export NIX_LIBC_INCLUDES="$param4/include"

View file

@ -5,7 +5,11 @@ export NIX_CXX=$param2/bin/g++
export NIX_LD=$param3/bin/ld
export NIX_CFLAGS_COMPILE="-isystem $param4/include $NIX_CFLAGS_COMPILE"
export NIX_CFLAGS_LINK="-L$param4/lib -L$param2/lib $NIX_CFLAGS_LINK"
# The "-B$param4/lib" is a quick hack to force gcc to link against the
# crt1.o from our own glibc, rather than the one in /usr/lib. The
# real solution is of course to prevent those paths from being used by
# gcc in the first place.
export NIX_CFLAGS_LINK="-B$param4/lib -L$param4/lib -L$param2/lib $NIX_CFLAGS_LINK"
export NIX_LDFLAGS="-dynamic-linker $param4/lib/ld-linux.so.2 -rpath $param4/lib -rpath $param2/lib $NIX_LDFLAGS"
export NIX_LIBC_INCLUDES="$param4/include"