forked from mirrors/nixpkgs
f3c23487a2
stdenv. In this gcc-wrapper2 I made the ld-wrapper.sh to handle the linking with shared objects through direct pass as ld command arguments of the absolute path to shared objects, instead of using the -L/-l combinations. cmake 'FindXXX.cmake' modules make a strong usage of the dynamic linking directly passing the absolute path to the shared object to the linker, and as our wrapper did not add any -rpath for those, writting the nix expressions for some cmake packages resulted in a lot of tricks, compared to using this gcc-wrapper2. This gcc-wrapper2/ld-wrapper.sh should become the gcc-wrapper/ld-wrapper in a stdenv update. I also updated some cmake expressions to use this gcc-wrapper2, and reduced its tricks. I also updated the cmake setup-hook for it to make cmake not touch any rpath decided at build time, when running the 'make install' of makefiles created by cmake. svn path=/nixpkgs/trunk/; revision=18885
25 lines
850 B
Plaintext
25 lines
850 B
Plaintext
# `-B@out@/bin' forces gcc to use ld-wrapper.sh when calling ld.
|
|
export NIX_CFLAGS_COMPILE="-B@out@/bin/ $NIX_CFLAGS_COMPILE"
|
|
|
|
if test -e @out@/nix-support/libc-cflags; then
|
|
export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE"
|
|
fi
|
|
|
|
if test -e @out@/nix-support/gcc-cflags; then
|
|
export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/gcc-cflags) $NIX_CFLAGS_COMPILE"
|
|
fi
|
|
|
|
if test -e @out@/nix-support/libc-ldflags; then
|
|
export NIX_LDFLAGS="$NIX_LDFLAGS $(cat @out@/nix-support/libc-ldflags)"
|
|
fi
|
|
|
|
if test -e @out@/nix-support/gcc-ldflags; then
|
|
export NIX_LDFLAGS="$NIX_LDFLAGS $(cat @out@/nix-support/gcc-ldflags)"
|
|
fi
|
|
|
|
if test -e @out@/nix-support/libc-ldflags-before; then
|
|
export NIX_LDFLAGS_BEFORE="$(cat @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE"
|
|
fi
|
|
|
|
export NIX_GCC_WRAPPER_FLAGS_SET=1
|