about summary refs log tree commit diff
path: root/pkgs/build-support/cc-wrapper
diff options
context:
space:
mode:
authorBojan Nikolic <bojan@bnikolic.co.uk>2017-11-03 21:36:43 +0000
committerBojan Nikolic <bojan@bnikolic.co.uk>2017-11-03 21:36:43 +0000
commit3e9daece1d1ed6919061f965bc9acea5c6f68a3b (patch)
tree80ededa030427fb60533a8122882ce53c560ecb3 /pkgs/build-support/cc-wrapper
parent21806cfb8388c0fedeb035fd280e6cb47adb9c8f (diff)
downloadnixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.tar
nixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.tar.gz
nixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.tar.bz2
nixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.tar.lz
nixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.tar.xz
nixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.tar.zst
nixlib-3e9daece1d1ed6919061f965bc9acea5c6f68a3b.zip
nixos/cc-wrapper: Fix bug if dynamicLinker not found
If a dynamic linker for target is not found the generated script fails
due to unbound variable error (due to "set -u"). Correct by specifying
default value with dynamicLinker:- and not generating ldflagsBefore if
no linker is found.

This problem was found when cross compiling to mingw32 targets
Diffstat (limited to 'pkgs/build-support/cc-wrapper')
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix6
1 files changed, 4 insertions, 2 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 489fb02dcb5d..80f794cbdde2 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -286,7 +286,7 @@ stdenv.mkDerivation {
         *) echo "Multiple dynamic linkers found for platform '${targetPlatform.config}'." >&2;;
       esac
 
-      if [ -n "$dynamicLinker" ]; then
+      if [ -n "''${dynamicLinker:-}" ]; then
         echo $dynamicLinker > $out/nix-support/dynamic-linker
 
     '' + (if targetPlatform.isDarwin then ''
@@ -296,7 +296,9 @@ stdenv.mkDerivation {
           echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
         fi
 
-        local ldflagsBefore=(-dynamic-linker "$dynamicLinker")
+     if [ -n "''${dynamicLinker:-}" ]; then
+             local ldflagsBefore=(-dynamic-linker "$dynamicLinker")
+     fi
     '') + ''
       fi