From 3e9daece1d1ed6919061f965bc9acea5c6f68a3b Mon Sep 17 00:00:00 2001 From: Bojan Nikolic Date: Fri, 3 Nov 2017 21:36:43 +0000 Subject: [PATCH 1/3] 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 --- pkgs/build-support/cc-wrapper/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 489fb02dcb5..80f794cbdde 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 From 2ed054885b9f52868dae3571a85bb75b3c1eddcf Mon Sep 17 00:00:00 2001 From: Bojan Nikolic Date: Sun, 5 Nov 2017 22:57:44 +0000 Subject: [PATCH 2/3] Remove the unnecessary second conditional --- pkgs/build-support/cc-wrapper/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 80f794cbdde..2445753ff04 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -296,9 +296,8 @@ stdenv.mkDerivation { echo ${libc_lib}/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32 fi - if [ -n "''${dynamicLinker:-}" ]; then - local ldflagsBefore=(-dynamic-linker "$dynamicLinker") - fi + local ldflagsBefore=(-dynamic-linker "$dynamicLinker") + '') + '' fi From 3a63fc1258bcd4576e20af36ad683f18224da0e5 Mon Sep 17 00:00:00 2001 From: Bojan Nikolic Date: Sun, 5 Nov 2017 23:00:24 +0000 Subject: [PATCH 3/3] Remove trailing line --- pkgs/build-support/cc-wrapper/default.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 2445753ff04..a12c835dd9b 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -297,7 +297,6 @@ stdenv.mkDerivation { fi local ldflagsBefore=(-dynamic-linker "$dynamicLinker") - '') + '' fi