summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/ebuild.sh12
1 files changed, 8 insertions, 4 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index bc4700e0b..e976bd114 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -1905,6 +1905,10 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
unset BIN_PATH BIN BODY FUNC_SRC
fi
+# Subshell/helper die support (must export for the die helper).
+export EBUILD_MASTER_PID=$BASHPID
+trap 'exit 1' SIGTERM
+
if ! hasq "$EBUILD_PHASE" clean cleanrm depend && \
[ -f "${T}"/environment ] ; then
# The environment may have been extracted from environment.bz2 or
@@ -2104,6 +2108,10 @@ fi
ebuild_main() {
# Subshell/helper die support (must export for the die helper).
+ # Since this function is typically executed in a subshell,
+ # setup EBUILD_MASTER_PID to refer to the current $BASHPID,
+ # which seems to give the best results when further
+ # nested subshells call die.
export EBUILD_MASTER_PID=$BASHPID
trap 'exit 1' SIGTERM
@@ -2320,9 +2328,5 @@ elif [[ -n $EBUILD_SH_ARGS ]] ; then
exit $?
fi
-# Subshell/helper die support (must export for the die helper).
-export EBUILD_MASTER_PID=$BASHPID
-trap 'exit 1' SIGTERM
-
# Do not exit when ebuild.sh is sourced by other scripts.
true