From 67a41eafe9c92269c9f6788f5f54a4b0d282cb96 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Tue, 8 Aug 2017 10:14:54 +0200
Subject: [PATCH] cc-wrapper: fix set -u errors

cc @Ericson2314
---
 pkgs/build-support/cc-wrapper/add-flags.sh  | 7 ++++---
 pkgs/build-support/cc-wrapper/ld-wrapper.sh | 5 +++++
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh
index 3d01dba6476..7af2ae58f3a 100644
--- a/pkgs/build-support/cc-wrapper/add-flags.sh
+++ b/pkgs/build-support/cc-wrapper/add-flags.sh
@@ -10,12 +10,13 @@ declare -a role_prefixes=()
 if [[ -n "${NIX_CC_WRAPPER_@infixSalt@_TARGET_BUILD:-}" ]]; then
     role_prefixes+=(_BUILD)
 fi
-if [[ -n "${NIX_CC_WRAPPER_@infixSalt@_TARGET_HOST:-}" ]]; then
-    role_prefixes+=('')
-fi
 if [[ -n "${NIX_CC_WRAPPER_@infixSalt@_TARGET_TARGET:-}" ]]; then
     role_prefixes+=(_TARGET)
 fi
+# use this as default if no role is inferred
+if [[ -n "${NIX_CC_WRAPPER_@infixSalt@_TARGET_HOST:-}" || ${#role_prefixes[@]} -eq 0 ]]; then
+    role_prefixes+=('')
+fi
 
 # For each role we serve, we accumulate the input parameters into our own
 # cc-wrapper-derivation-specific environment variables.
diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
index e47a6bfec86..afa7798e49f 100644
--- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
@@ -20,6 +20,11 @@ fi
 
 source @out@/nix-support/utils.sh
 
+# make set -u happy if the outside environment is unset
+# this should never happen, but does in an LLVM test
+if [ -z "${NIX_STORE:-}" ]; then
+    NIX_STORE=/nix/store
+fi
 
 # Optionally filter out paths not refering to the store.
 expandResponseParams "$@"