summaryrefslogtreecommitdiff
path: root/scripts/crosstool-NG.sh.in
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@free.fr>2012-05-08 16:31:10 (GMT)
committerYann E. MORIN" <yann.morin.1998@free.fr>2012-05-08 16:31:10 (GMT)
commit08f2b68bfb4e9f495241ed66c7fababfd3f716ad (patch)
tree96f5cf8cd48a361f2758071df9d54f4e16120901 /scripts/crosstool-NG.sh.in
parent8891442c9b52580ae7b8c79cbc8d1334bd12052b (diff)
scripts: fix catching failures
POSIX 1003.1-2008 does not say whether "set -e" should catch a sub-shell that exits with !0 (it has a list of conditions to catch, but no list of conditions not to catch, and this situation is not listed). bash-3 does not catch such a failure, but bash-4 does. That why, on my Squeeze system I did not see the issue, while Thomas did on is Lenny chroot. Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Diffstat (limited to 'scripts/crosstool-NG.sh.in')
-rw-r--r--scripts/crosstool-NG.sh.in4
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
index d794743..818723f 100644
--- a/scripts/crosstool-NG.sh.in
+++ b/scripts/crosstool-NG.sh.in
@@ -596,6 +596,10 @@ if [ "${CT_ONLY_DOWNLOAD}" != "y" -a "${CT_ONLY_EXTRACT}" != "y" ]; then
fi
if [ ${do_it} -eq 1 ]; then
( do_${step} )
+ # POSIX 1003.1-2008 does not say if "set -e" should catch a
+ # sub-shell ending with !0. bash-3 does not, while bash-4 does,
+ # so the following line is for bash-3; bash-4 would choke above.
+ [ $? -ne 0 ]
if [ "${CT_STOP}" = "${step}" ]; then
do_stop=1
fi