From a9b942c0617b1cd5f0732d05eadad0114a178f37 Mon Sep 17 00:00:00 2001 From: Robin Gloster Date: Mon, 14 Mar 2016 00:26:52 +0000 Subject: [PATCH] cc-wrapper: treat hardeningDisable as string This fixes passing the env variable to the ld-wrapper through the gcc call. Wtf?! --- pkgs/build-support/cc-wrapper/add-hardening | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/add-hardening b/pkgs/build-support/cc-wrapper/add-hardening index 219aa74894c..d5966136b9d 100644 --- a/pkgs/build-support/cc-wrapper/add-hardening +++ b/pkgs/build-support/cc-wrapper/add-hardening @@ -2,10 +2,10 @@ hardeningFlags=(fortify stackprotector pic strictoverflow format relro bindnow) hardeningFlags+=("${hardeningEnable[@]}") hardeningCFlags=() hardeningLDFlags=() -hardeningDisable=(${hardeningDisable[@]}) +hardeningDisable=${hardeningDisable:-""} if [[ "$($LD -z 2>&1)" =~ "unknown option" ]]; then - hardeningDisable+=(bindnow relro) + hardeningDisable+=" bindnow relro" fi if [[ -n "$NIX_DEBUG" ]]; then echo HARDENING: Value of '$hardeningDisable': $hardeningDisable >&2; fi @@ -14,7 +14,7 @@ if [[ ! $hardeningDisable == "all" ]]; then if [[ -n "$NIX_DEBUG" ]]; then echo 'HARDENING: Is active (not completely disabled with "all" flag)' >&2; fi for flag in "${hardeningFlags[@]}" do - if [[ ! "${hardeningDisable[@]}" =~ "$flag" ]]; then + if [[ ! "${hardeningDisable}" =~ "$flag" ]]; then case $flag in fortify) if [[ -n "$NIX_DEBUG" ]]; then echo HARDENING: enabling fortify >&2; fi