diff options
author | Yann E. MORIN" <yann.morin.1998@free.fr> | 2012-05-08 18:31:10 +0200 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@free.fr> | 2012-05-08 18:31:10 +0200 |
commit | 08f2b68bfb4e9f495241ed66c7fababfd3f716ad (patch) | |
tree | 96f5cf8cd48a361f2758071df9d54f4e16120901 | |
parent | 8891442c9b52580ae7b8c79cbc8d1334bd12052b (diff) | |
download | crosstool-ng-08f2b68bfb4e9f495241ed66c7fababfd3f716ad.tar.gz crosstool-ng-08f2b68bfb4e9f495241ed66c7fababfd3f716ad.tar.bz2 crosstool-ng-08f2b68bfb4e9f495241ed66c7fababfd3f716ad.zip |
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>
-rw-r--r-- | scripts/crosstool-NG.sh.in | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index d7947432..818723fb 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 |