diff options
author | Shea Levy <shea@shealevy.com> | 2016-10-31 10:07:30 -0400 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2016-10-31 10:07:30 -0400 |
commit | 225602d9f2fc5d437e4996c9697dd272d18846c0 (patch) | |
tree | 9ee631e894407643224fb0e5990a4aaa282bd2ca /pkgs/build-support/cc-wrapper | |
parent | 31f0fdef32f014eee619ce27c0b5f44b255c311f (diff) | |
parent | 1ad1edbb32ce01ba8b47d8e8dad357b0edd6a4dc (diff) | |
download | nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.tar nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.tar.gz nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.tar.bz2 nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.tar.lz nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.tar.xz nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.tar.zst nixlib-225602d9f2fc5d437e4996c9697dd272d18846c0.zip |
Merge branch 'response-files' of git://github.com/corngood/nixpkgs into staging
Diffstat (limited to 'pkgs/build-support/cc-wrapper')
-rw-r--r-- | pkgs/build-support/cc-wrapper/cc-wrapper.sh | 2 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/ld-wrapper.sh | 2 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/utils.sh | 24 |
3 files changed, 26 insertions, 2 deletions
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh index 03f068d8298e..3ccdc34db5b2 100644 --- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh +++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh @@ -24,7 +24,7 @@ nonFlagArgs=0 [[ "@prog@" = *++ ]] && isCpp=1 || isCpp=0 cppInclude=1 -params=("$@") +expandResponseParams "$@" n=0 while [ $n -lt ${#params[*]} ]; do p=${params[n]} diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh index 44d9a047936a..056cfa920535 100644 --- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh +++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh @@ -16,7 +16,7 @@ source @out@/nix-support/utils.sh # Optionally filter out paths not refering to the store. -params=("$@") +expandResponseParams "$@" if [ "$NIX_ENFORCE_PURITY" = 1 -a -n "$NIX_STORE" \ -a \( -z "$NIX_IGNORE_LD_THROUGH_GCC" -o -z "$NIX_LDFLAGS_SET" \) ]; then rest=() diff --git a/pkgs/build-support/cc-wrapper/utils.sh b/pkgs/build-support/cc-wrapper/utils.sh index 3ab512d85c4e..481d642f9674 100644 --- a/pkgs/build-support/cc-wrapper/utils.sh +++ b/pkgs/build-support/cc-wrapper/utils.sh @@ -22,3 +22,27 @@ badPath() { "${p:0:4}" != "/tmp" -a \ "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP" } + +expandResponseParams() { + local inparams=("$@") + local n=0 + local p + params=() + while [ $n -lt ${#inparams[*]} ]; do + p=${inparams[n]} + case $p in + @*) + if [ -e "${p:1}" ]; then + args=$(<"${p:1}") + eval 'for arg in '$args'; do params+=("$arg"); done' + else + params+=("$p") + fi + ;; + *) + params+=("$p") + ;; + esac + n=$((n + 1)) + done +} |