diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2023-08-21 07:37:01 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyich@gmail.com> | 2023-08-21 07:50:37 +0100 |
commit | 2da03072206223ed6ee968bdd654a4d82da33001 (patch) | |
tree | 8dce735de05a0825276ea6bdcecfa79e08802b03 /pkgs/build-support/build-fhsenv-chroot | |
parent | f03d4e0eec54bd1b344977bfc172446c56c95987 (diff) | |
download | nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.tar nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.tar.gz nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.tar.bz2 nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.tar.lz nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.tar.xz nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.tar.zst nixpkgs-2da03072206223ed6ee968bdd654a4d82da33001.zip |
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
Diffstat (limited to 'pkgs/build-support/build-fhsenv-chroot')
-rw-r--r-- | pkgs/build-support/build-fhsenv-chroot/env.nix | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/pkgs/build-support/build-fhsenv-chroot/env.nix b/pkgs/build-support/build-fhsenv-chroot/env.nix index abc9ac4c026..a1a26472373 100644 --- a/pkgs/build-support/build-fhsenv-chroot/env.nix +++ b/pkgs/build-support/build-fhsenv-chroot/env.nix @@ -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' |