mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 06:53:01 +00:00
buildFHSEnv: fix NIX_LDFLAGS
propagation to ld
wrapper
Before the change the following command did not work: $ nix develop -i --impure --expr 'with import <nixpkgs> { system = "i686-linux"; }; (buildFHSUserEnv { name = "t"; targetPkgs = ps: with ps; [ libmpc stdenv.cc ]; }).env' $ ld -lmpc -o a ld: cannot find -lmpc: No such file or directory It is expected to work as `NIX_LDFLAGS` does contain valid values: $ echo $NIX_LDFLAGS -L/usr/lib -L/usr/lib32 Note that for `gcc` it does work: $ printf "int main(){}" | gcc -x c - -lmpc -o a It happens because `HOST` role is enabled for `cc`: $ echo $NIX_CC_WRAPPER_TARGET_HOST_i686_unknown_linux_gnu 1 But not for `BINTOOLS`: $ echo $NIX_BINTOOLS_WRAPPER_TARGET_HOST_i686_unknown_linux_gnu <empty> The change adds BINTOOLS role and fixes linking: $ nix develop -i --impure --expr 'with import ~/nm { system = "i686-linux"; }; (buildFHSUserEnv { name = "t"; targetPkgs = ps: with ps; [ libmpc stdenv.cc ]; }).env' $ printf "int main(){}" | gcc -x c - -lmpc -o a $ ld -lmpc -o a ld: warning: cannot find entry symbol _start; not setting start address
This commit is contained in:
parent
f03d4e0eec
commit
2da0307220
@ -105,6 +105,7 @@ let
|
||||
|
||||
# Force compilers and other tools to look in default search paths
|
||||
unset NIX_ENFORCE_PURITY
|
||||
export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
|
||||
export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32'
|
||||
|
@ -78,6 +78,7 @@ let
|
||||
|
||||
# Force compilers and other tools to look in default search paths
|
||||
unset NIX_ENFORCE_PURITY
|
||||
export NIX_BINTOOLS_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
|
||||
export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
|
||||
export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32'
|
||||
|
Loading…
Reference in New Issue
Block a user