From 42f35503b56e293759685e9fb2a66ba75a55c339 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 6 Jul 2017 17:19:53 -0400 Subject: cc-wrapper: Make hygienic See the added comments for what exactly has been done. --- pkgs/stdenv/generic/setup.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'pkgs/stdenv/generic/setup.sh') diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index dc3369f6611c..81ed1c635e17 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -336,8 +336,20 @@ fi # Set the relevant environment variables to point to the build inputs # found above. +# +# These `depOffset`s tell the env hook what sort of dependency +# (ignoring propagatedness) is being passed to the env hook. In a real +# language, we'd append a closure with this information to the +# relevant env hook array, but bash doesn't have closures, so it's +# easier to just pass this in. + _addToNativeEnv() { local pkg="$1" + if [[ -n "${crossConfig:-}" ]]; then + local -i depOffset=-1 + else + local -i depOffset=0 + fi # Run the package-specific hooks set by the setup-hook scripts. runHook envHook "$pkg" @@ -349,6 +361,7 @@ done _addToCrossEnv() { local pkg="$1" + local -i depOffset=0 # Run the package-specific hooks set by the setup-hook scripts. runHook crossEnvHook "$pkg" -- cgit 1.4.1