summaryrefslogtreecommitdiff
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)
commitf1d6a5cca1a2d21dc5a78d806628625ae0fe6914 (patch)
treefb9855e066b6636e7be85ad061f184115e7d89b8
parent91ead3aa8118be45e7bc78d8861f97a8a0c8af7e (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> (transplanted from d48c03998dc1c25a3b29b2c0af425631baee3abe)
-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