diff options
author | Charles Strahan <charles@cstrahan.com> | 2018-03-06 18:03:13 -0500 |
---|---|---|
committer | Charles Strahan <charles@cstrahan.com> | 2018-03-06 18:03:13 -0500 |
commit | 634c748050391b6f7c908d4716be026f839dceaf (patch) | |
tree | 31743ea7ae464a0312dfc7179babb7f28ca64a17 /pkgs/build-support | |
parent | fc46895e86a33232abbcf8dcee9033d5c58d2f2d (diff) | |
download | nixlib-634c748050391b6f7c908d4716be026f839dceaf.tar nixlib-634c748050391b6f7c908d4716be026f839dceaf.tar.gz nixlib-634c748050391b6f7c908d4716be026f839dceaf.tar.bz2 nixlib-634c748050391b6f7c908d4716be026f839dceaf.tar.lz nixlib-634c748050391b6f7c908d4716be026f839dceaf.tar.xz nixlib-634c748050391b6f7c908d4716be026f839dceaf.tar.zst nixlib-634c748050391b6f7c908d4716be026f839dceaf.zip |
hardening: initial cross support
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/bintools-wrapper/add-flags.sh | 4 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/add-flags.sh | 5 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/add-hardening.sh | 2 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/cc-wrapper.sh | 3 |
4 files changed, 8 insertions, 6 deletions
diff --git a/pkgs/build-support/bintools-wrapper/add-flags.sh b/pkgs/build-support/bintools-wrapper/add-flags.sh index ce213897ee3f..a97809258954 100644 --- a/pkgs/build-support/bintools-wrapper/add-flags.sh +++ b/pkgs/build-support/bintools-wrapper/add-flags.sh @@ -24,10 +24,10 @@ if [ "${NIX_BINTOOLS_WRAPPER_@infixSalt@_TARGET_TARGET:-}" ]; then fi for var in "${var_templates_list[@]}"; do - mangleVarList "$var" "${role_infixes[@]}" + mangleVarList "$var" ${role_infixes[@]+"${role_infixes[@]}"} done for var in "${var_templates_bool[@]}"; do - mangleVarBool "$var" "${role_infixes[@]}" + mangleVarBool "$var" ${role_infixes[@]+"${role_infixes[@]}"} done if [ -e @out@/nix-support/libc-ldflags ]; then diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh index d8b42244607a..7dedacf52479 100644 --- a/pkgs/build-support/cc-wrapper/add-flags.sh +++ b/pkgs/build-support/cc-wrapper/add-flags.sh @@ -10,6 +10,7 @@ var_templates_list=( NIX+CXXSTDLIB_COMPILE NIX+CXXSTDLIB_LINK NIX+GNATFLAGS_COMPILE + NIX+HARDENING_ENABLE ) var_templates_bool=( NIX+ENFORCE_NO_NATIVE @@ -31,10 +32,10 @@ fi # We need to mangle names for hygiene, but also take parameters/overrides # from the environment. for var in "${var_templates_list[@]}"; do - mangleVarList "$var" "${role_infixes[@]}" + mangleVarList "$var" ${role_infixes[@]+"${role_infixes[@]}"} done for var in "${var_templates_bool[@]}"; do - mangleVarBool "$var" "${role_infixes[@]}" + mangleVarBool "$var" ${role_infixes[@]+"${role_infixes[@]}"} done # `-B@out@/bin' forces cc to use ld-wrapper.sh when calling ld. diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh index 72221eaa28b0..de5eb2506a83 100644 --- a/pkgs/build-support/cc-wrapper/add-hardening.sh +++ b/pkgs/build-support/cc-wrapper/add-hardening.sh @@ -6,7 +6,7 @@ declare -A hardeningEnableMap=() # Intentionally word-split in case 'NIX_HARDENING_ENABLE' is defined in Nix. The # array expansion also prevents undefined variables from causing trouble with # `set -u`. -for flag in ${NIX_HARDENING_ENABLE-}; do +for flag in ${NIX_@infixSalt@_HARDENING_ENABLE-}; do hardeningEnableMap[$flag]=1 done diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh index d1018193e5ae..15118d99db72 100644 --- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh +++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh @@ -135,7 +135,8 @@ source @out@/nix-support/add-hardening.sh # Add the flags for the C compiler proper. extraAfter=($NIX_@infixSalt@_CFLAGS_COMPILE) -extraBefore=("${hardeningCFlags[@]}") + +extraBefore=(${hardeningCFlags[@]+"${hardeningCFlags[@]}"}) if [ "$dontLink" != 1 ]; then |