diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-07-05 08:55:26 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-07-05 08:55:26 +0200 |
commit | 5328aac7be5b7ebf794349f915a379efd04b018b (patch) | |
tree | 029547f7673a785c42f12770a68a3ec31a297bf9 /pkgs/build-support | |
parent | f203b32bb8e824a75f89fd9805680b4a8e92d2a5 (diff) | |
parent | c73f0caea5f0822ea044b4f90de4b64706d91362 (diff) | |
download | nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.tar nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.tar.gz nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.tar.bz2 nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.tar.lz nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.tar.xz nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.tar.zst nixlib-5328aac7be5b7ebf794349f915a379efd04b018b.zip |
Merge branch 'staging'
Comparison looks OK; I'll try some fixes on master directly. http://hydra.nixos.org/eval/1372577?compare=1372497
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 6 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/utils.sh | 21 | ||||
-rw-r--r-- | pkgs/build-support/setup-hooks/win-dll-link.sh | 2 |
3 files changed, 16 insertions, 13 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index ad6f6832298a..935e6fb6267c 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -359,7 +359,13 @@ stdenv.mkDerivation { if [[ "$($ldPath/${prefix}ld -z relro 2>&1 || true)" =~ un(recognized|known)\ option ]]; then hardening_unsupported_flags+=" relro" fi + '' + + + optionalString hostPlatform.isCygwin '' + hardening_unsupported_flags+=" pic" + '' + + '' substituteAll ${preWrap ./add-flags.sh} $out/nix-support/add-flags.sh substituteAll ${preWrap ./add-hardening.sh} $out/nix-support/add-hardening.sh cp -p ${preWrap ./utils.sh} $out/nix-support/utils.sh diff --git a/pkgs/build-support/cc-wrapper/utils.sh b/pkgs/build-support/cc-wrapper/utils.sh index d17930e8ab5d..8cefc47816f8 100644 --- a/pkgs/build-support/cc-wrapper/utils.sh +++ b/pkgs/build-support/cc-wrapper/utils.sh @@ -28,17 +28,16 @@ badPath() { # States: 0 - outside, 1/2 - unquoted arg/slash, 3/4 - 'arg'/slash, 5/6 - "arg"/slash. # State transitions: rspT=(01235 01235 11111 33413 33333 55651 55555) -# Push char on transition: -rspC[01]=1 rspC[11]=1 rspC[21]=1 rspC[33]=1 rspC[43]=1 rspC[55]=1 rspC[65]=1 +# Push (a) arg or (c) char on transition: +rspP[10]=a rspP[01]=c rspP[11]=c rspP[21]=c rspP[33]=c rspP[43]=c rspP[55]=c rspP[65]=c rspParse() { rsp=() - local s="$1" local state=0 local arg='' + local c - for (( i=0; i<${#s}; i++ )); do - local c="${s:$i:1}" + while read -r -N1 c; do local cls=1 case "$c" in ' ' | $'\t' | $'\r' | $'\n') cls=0 ;; @@ -48,12 +47,10 @@ rspParse() { esac local nextstates="${rspT[$state]}" local nextstate="${nextstates:$cls:1}" - if [ "${rspC[$state$nextstate]}" ]; then - arg+="$c" - elif [ "$state$nextstate" = "10" ]; then - rsp+=("$arg") - arg='' - fi + case "${rspP[$state$nextstate]}" in + 'c') arg+="$c" ;; + 'a') rsp+=("$arg"); arg='' ;; + esac state="$nextstate" done @@ -68,7 +65,7 @@ expandResponseParams() { local p="$1" shift if [ "${p:0:1}" = '@' -a -e "${p:1}" ]; then - rspParse "$(<"${p:1}")" + rspParse <"${p:1}" set -- "${rsp[@]}" "$@" else params+=("$p") diff --git a/pkgs/build-support/setup-hooks/win-dll-link.sh b/pkgs/build-support/setup-hooks/win-dll-link.sh index 634a9d18f00d..9658b9f82595 100644 --- a/pkgs/build-support/setup-hooks/win-dll-link.sh +++ b/pkgs/build-support/setup-hooks/win-dll-link.sh @@ -35,7 +35,7 @@ _linkDLLs() { local dllPath2 for dllPath2 in "$dllPath" "$(dirname $(readlink "$dllPath" || echo "$dllPath"))"/*.dll; do if [ -e ./"$(basename "$dllPath2")" ]; then continue; fi - ln -sr "$dllPath2" . + CYGWIN+=\ winsymlinks:nativestrict ln -sr "$dllPath2" . linkCount=$(($linkCount+1)) done done |