From 994cb768506d827f03295d23b2cb672aa00c00f5 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 28 Nov 2017 15:03:50 -0500 Subject: [PATCH 1/3] cc-wrapper: Don't leave CMD defined after setup hook Rename to `cmd` too, as uppercase typically means the variable is exported. --- pkgs/build-support/cc-wrapper/setup-hook.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index a8f29bd5877..c55bcf75a9e 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -138,15 +138,15 @@ export NIX_${role}CC=@out@ export ${role}CC=@named_cc@ export ${role}CXX=@named_cxx@ -for CMD in \ +for cmd in \ ar as nm objcopy ranlib strip strings size ld windres do if - PATH=$_PATH type -p "@targetPrefix@$CMD" > /dev/null + PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null then - export "${role}$(echo "$CMD" | tr "[:lower:]" "[:upper:]")=@targetPrefix@${CMD}"; + export "${role}$(echo "$cmd" | tr "[:lower:]" "[:upper:]")=@targetPrefix@${cmd}"; fi done # No local scope in sourced file -unset role +unset -v role cmd From f4cb1e2ffccbc3ef2ef57866869b81d61b6a2529 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 21 Sep 2017 01:31:52 -0400 Subject: [PATCH 2/3] cc-wrapper: Export env vars for objdump and readelf in setup-hook Also fix alphabetical order --- pkgs/build-support/cc-wrapper/setup-hook.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index c55bcf75a9e..4b4c40dd1c1 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -139,7 +139,7 @@ export ${role}CC=@named_cc@ export ${role}CXX=@named_cxx@ for cmd in \ - ar as nm objcopy ranlib strip strings size ld windres + ar as ld nm objcopy objdump readelf ranlib strip strings size windres do if PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null From 43e113739786ed51de7e829637493a58273cdf02 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 21 Aug 2017 13:55:39 -0400 Subject: [PATCH 3/3] cc-wrapper: Define new- and old-style cross env vars For example, `BUILD_CC` and `CC_FOR_BUILD` --- pkgs/build-support/cc-wrapper/setup-hook.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/setup-hook.sh b/pkgs/build-support/cc-wrapper/setup-hook.sh index 4b4c40dd1c1..7822b7f84d0 100644 --- a/pkgs/build-support/cc-wrapper/setup-hook.sh +++ b/pkgs/build-support/cc-wrapper/setup-hook.sh @@ -97,10 +97,12 @@ ccWrapper_addCVars () { # setup-hook, which `role` tracks. if [ -n "${crossConfig:-}" ]; then export NIX_CC_WRAPPER_@infixSalt@_TARGET_BUILD=1 - role="BUILD_" + role_pre='BUILD_' + role_post='_FOR_BUILD' else export NIX_CC_WRAPPER_@infixSalt@_TARGET_HOST=1 - role="" + role_pre='' + role_post='' fi # Eventually the exact sort of env-hook we create will depend on the role. This @@ -133,10 +135,12 @@ fi # Export tool environment variables so various build systems use the right ones. -export NIX_${role}CC=@out@ +export NIX_${role_pre}CC=@out@ -export ${role}CC=@named_cc@ -export ${role}CXX=@named_cxx@ +export ${role_pre}CC=@named_cc@ +export ${role_pre}CXX=@named_cxx@ +export CC${role_post}=@named_cc@ +export CXX${role_post}=@named_cxx@ for cmd in \ ar as ld nm objcopy objdump readelf ranlib strip strings size windres @@ -144,9 +148,11 @@ do if PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null then - export "${role}$(echo "$cmd" | tr "[:lower:]" "[:upper:]")=@targetPrefix@${cmd}"; + upper_case="$(echo "$cmd" | tr "[:lower:]" "[:upper:]")" + export "${role_pre}${upper_case}=@targetPrefix@${cmd}"; + export "${upper_case}${role_post}=@targetPrefix@${cmd}"; fi done # No local scope in sourced file -unset -v role cmd +unset -v role_pre role_post cmd upper_case