Loading pkgs/build-support/cc-wrapper/cc-wrapper.sh +17 −12 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ cppInclude=1 expandResponseParams "$@" declare -i n=0 nParams=${#params[@]} while [ "$n" -lt "$nParams" ]; do while (( "$n" < "$nParams" )); do p=${params[n]} p2=${params[n+1]:-} # handle `p` being last one if [ "$p" = -c ]; then Loading Loading @@ -83,7 +83,7 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then rest=() nParams=${#params[@]} declare -i n=0 while [ "$n" -lt "$nParams" ]; do while (( "$n" < "$nParams" )); do p=${params[n]} p2=${params[n+1]:-} # handle `p` being last one if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then Loading @@ -101,21 +101,24 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then fi n+=1 done params=("${rest[@]}") # Old bash empty array hack params=(${rest+"${rest[@]}"}) fi # Clear march/mtune=native -- they bring impurity. if [ "$NIX_@infixSalt@_ENFORCE_NO_NATIVE" = 1 ]; then rest=() for p in "${params[@]}"; do # Old bash empty array hack for p in ${params+"${params[@]}"}; do if [[ "$p" = -m*=native ]]; then skip "$p" else rest+=("$p") fi done params=("${rest[@]}") # Old bash empty array hack params=(${rest+"${rest[@]}"}) fi if [[ "$isCpp" = 1 ]]; then Loading Loading @@ -163,14 +166,13 @@ fi # Optionally print debug info. if [ -n "${NIX_DEBUG:-}" ]; then set +u # Old bash workaround, see ld-wrapper for explanation. # Old bash workaround, see ld-wrapper for explanation. echo "extra flags before to @prog@:" >&2 printf " %q\n" "${extraBefore[@]}" >&2 printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 echo "original flags to @prog@:" >&2 printf " %q\n" "${params[@]}" >&2 printf " %q\n" ${params+"${params[@]}"} >&2 echo "extra flags after to @prog@:" >&2 printf " %q\n" "${extraAfter[@]}" >&2 set -u printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 fi if [ -n "$NIX_CC_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then Loading @@ -178,5 +180,8 @@ if [ -n "$NIX_CC_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then fi PATH="$path_backup" set +u # Old bash workaround, see above. exec @prog@ "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}" # Old bash workaround, see above. exec @prog@ \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ ${extraAfter+"${extraAfter[@]}"} pkgs/build-support/cc-wrapper/ld-wrapper.sh +18 −14 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}" rest=() nParams=${#params[@]} declare -i n=0 while [ "$n" -lt "$nParams" ]; do while (( "$n" < "$nParams" )); do p=${params[n]} p2=${params[n+1]:-} # handle `p` being last one if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then Loading @@ -51,7 +51,8 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}" fi n+=1 done params=("${rest[@]}") # Old bash empty array hack params=(${rest+"${rest[@]}"}) fi source @out@/nix-support/add-hardening.sh Loading @@ -73,11 +74,12 @@ relocatable= # Find all -L... switches for rpath, and relocatable flags for build id. if [ "$NIX_@infixSalt@_DONT_SET_RPATH" != 1 ] || [ "$NIX_@infixSalt@_SET_BUILD_ID" = 1 ]; then prev= # Old bash thinks empty arrays are undefined, ugh, so temporarily disable # `set -u`. set +u for p in "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}"; do set -u # Old bash thinks empty arrays are undefined, ugh. for p in \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ ${extraAfter+"${extraAfter[@]}"} do case "$prev" in -L) libDirs+=("$p") Loading Loading @@ -155,14 +157,13 @@ fi # Optionally print debug info. if [ -n "${NIX_DEBUG:-}" ]; then set +u # Old bash workaround, see above. # Old bash workaround, see above. echo "extra flags before to @prog@:" >&2 printf " %q\n" "${extraBefore[@]}" >&2 printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 echo "original flags to @prog@:" >&2 printf " %q\n" "${params[@]}" >&2 printf " %q\n" ${params+"${params[@]}"} >&2 echo "extra flags after to @prog@:" >&2 printf " %q\n" "${extraAfter[@]}" >&2 set -u printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 fi if [ -n "$NIX_LD_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then Loading @@ -170,5 +171,8 @@ if [ -n "$NIX_LD_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then fi PATH="$path_backup" set +u # Old bash workaround, see above. exec @prog@ "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}" # Old bash workaround, see above. exec @prog@ \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ ${extraAfter+"${extraAfter[@]}"} pkgs/build-support/cc-wrapper/utils.sh +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ badPath() { } expandResponseParams() { declare -g params=("$@") declare -ga params=("$@") local arg for arg in "$@"; do if [[ "$arg" == @* ]]; then Loading Loading
pkgs/build-support/cc-wrapper/cc-wrapper.sh +17 −12 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ cppInclude=1 expandResponseParams "$@" declare -i n=0 nParams=${#params[@]} while [ "$n" -lt "$nParams" ]; do while (( "$n" < "$nParams" )); do p=${params[n]} p2=${params[n+1]:-} # handle `p` being last one if [ "$p" = -c ]; then Loading Loading @@ -83,7 +83,7 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then rest=() nParams=${#params[@]} declare -i n=0 while [ "$n" -lt "$nParams" ]; do while (( "$n" < "$nParams" )); do p=${params[n]} p2=${params[n+1]:-} # handle `p` being last one if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then Loading @@ -101,21 +101,24 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "$NIX_STORE" ]]; then fi n+=1 done params=("${rest[@]}") # Old bash empty array hack params=(${rest+"${rest[@]}"}) fi # Clear march/mtune=native -- they bring impurity. if [ "$NIX_@infixSalt@_ENFORCE_NO_NATIVE" = 1 ]; then rest=() for p in "${params[@]}"; do # Old bash empty array hack for p in ${params+"${params[@]}"}; do if [[ "$p" = -m*=native ]]; then skip "$p" else rest+=("$p") fi done params=("${rest[@]}") # Old bash empty array hack params=(${rest+"${rest[@]}"}) fi if [[ "$isCpp" = 1 ]]; then Loading Loading @@ -163,14 +166,13 @@ fi # Optionally print debug info. if [ -n "${NIX_DEBUG:-}" ]; then set +u # Old bash workaround, see ld-wrapper for explanation. # Old bash workaround, see ld-wrapper for explanation. echo "extra flags before to @prog@:" >&2 printf " %q\n" "${extraBefore[@]}" >&2 printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 echo "original flags to @prog@:" >&2 printf " %q\n" "${params[@]}" >&2 printf " %q\n" ${params+"${params[@]}"} >&2 echo "extra flags after to @prog@:" >&2 printf " %q\n" "${extraAfter[@]}" >&2 set -u printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 fi if [ -n "$NIX_CC_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then Loading @@ -178,5 +180,8 @@ if [ -n "$NIX_CC_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then fi PATH="$path_backup" set +u # Old bash workaround, see above. exec @prog@ "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}" # Old bash workaround, see above. exec @prog@ \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ ${extraAfter+"${extraAfter[@]}"}
pkgs/build-support/cc-wrapper/ld-wrapper.sh +18 −14 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}" rest=() nParams=${#params[@]} declare -i n=0 while [ "$n" -lt "$nParams" ]; do while (( "$n" < "$nParams" )); do p=${params[n]} p2=${params[n+1]:-} # handle `p` being last one if [ "${p:0:3}" = -L/ ] && badPath "${p:2}"; then Loading @@ -51,7 +51,8 @@ if [[ "${NIX_ENFORCE_PURITY:-}" = 1 && -n "${NIX_STORE:-}" fi n+=1 done params=("${rest[@]}") # Old bash empty array hack params=(${rest+"${rest[@]}"}) fi source @out@/nix-support/add-hardening.sh Loading @@ -73,11 +74,12 @@ relocatable= # Find all -L... switches for rpath, and relocatable flags for build id. if [ "$NIX_@infixSalt@_DONT_SET_RPATH" != 1 ] || [ "$NIX_@infixSalt@_SET_BUILD_ID" = 1 ]; then prev= # Old bash thinks empty arrays are undefined, ugh, so temporarily disable # `set -u`. set +u for p in "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}"; do set -u # Old bash thinks empty arrays are undefined, ugh. for p in \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ ${extraAfter+"${extraAfter[@]}"} do case "$prev" in -L) libDirs+=("$p") Loading Loading @@ -155,14 +157,13 @@ fi # Optionally print debug info. if [ -n "${NIX_DEBUG:-}" ]; then set +u # Old bash workaround, see above. # Old bash workaround, see above. echo "extra flags before to @prog@:" >&2 printf " %q\n" "${extraBefore[@]}" >&2 printf " %q\n" ${extraBefore+"${extraBefore[@]}"} >&2 echo "original flags to @prog@:" >&2 printf " %q\n" "${params[@]}" >&2 printf " %q\n" ${params+"${params[@]}"} >&2 echo "extra flags after to @prog@:" >&2 printf " %q\n" "${extraAfter[@]}" >&2 set -u printf " %q\n" ${extraAfter+"${extraAfter[@]}"} >&2 fi if [ -n "$NIX_LD_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then Loading @@ -170,5 +171,8 @@ if [ -n "$NIX_LD_WRAPPER_@infixSalt@_EXEC_HOOK" ]; then fi PATH="$path_backup" set +u # Old bash workaround, see above. exec @prog@ "${extraBefore[@]}" "${params[@]}" "${extraAfter[@]}" # Old bash workaround, see above. exec @prog@ \ ${extraBefore+"${extraBefore[@]}"} \ ${params+"${params[@]}"} \ ${extraAfter+"${extraAfter[@]}"}
pkgs/build-support/cc-wrapper/utils.sh +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ badPath() { } expandResponseParams() { declare -g params=("$@") declare -ga params=("$@") local arg for arg in "$@"; do if [[ "$arg" == @* ]]; then Loading