> John, thanks for the patch. Don't hesitate to send its siblings (that
> of autoupdate, autoreconf, autoscan, autoheader and ifnames :) :) :)
Here is a patch for the siblings. I also reverted the two `|| exit'
commands in autoconf.sh to `|| { (exit 1); exit; }' because I had one
test failure under hpux (Semantics 4). However, the debug script was
sucessfull. I also couldn't get it to happen again run the script
manually. Possibly, `exit' doesn't always provide a defined exit to
the exit trap or maybe the `rm' in the exit trap failed because one
of the files in tmp was still busy.
I have run `make check' man times under i686 linux with no failures.
Dave
--
J. David Anglin [EMAIL PROTECTED]
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
2000-08-11 J. David Anglin <[EMAIL PROTECTED]>
* autoheader.sh: Fix trap (EXIT) status.
autoreconf.sh: Likewise.
autoupdate.sh: Likewise.
autoconf.sh: Change `exit' to `{ (exit 1); exit; }' after m4 and
awk commands to ensure exit state is in a defined state.
--- autoheader.sh.orig Mon Aug 7 15:03:20 2000
+++ autoheader.sh Fri Aug 11 16:47:24 2000
@@ -88,6 +88,7 @@
done
debug=false
localdir=.
+status=0
tmp=
verbose=:
warning_all=false
@@ -179,7 +180,7 @@
$debug ||
{
trap 'status=$?; rm -rf $tmp && exit $status' 0
- trap 'exit $?' 1 2 13 15
+ trap '(exit $?); exit' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
@@ -193,7 +194,7 @@
} ||
{
echo "$me: cannot create a temporary directory in $TMPDIR" >&2
- exit 1;
+ (exit 1); exit
}
# Preach.
@@ -216,7 +217,7 @@
More sophisticated templates can also be produced, see the
documentation.
EOF
- $warning_error && exit 1
+ $warning_error && { (exit 1); exit; }
fi
acconfigs=
@@ -229,7 +230,7 @@
*) exec >&2
echo "$me: invalid number of arguments."
echo "$help"
- exit 1 ;;
+ (exit 1); exit ;;
esac
# Set up autoconf.
@@ -248,7 +249,7 @@
$2"' \
--trace AC_DEFINE:'syms="$$syms $1"' \
--trace AC_DEFINE_UNQUOTED:'syms="$$syms $1"' \
- $infile >$tmp/traces.sh || exit 1
+ $infile >$tmp/traces.sh || { (exit 1); exit; }
$verbose $me: sourcing $tmp/traces.sh >&2
. $tmp/traces.sh
@@ -270,7 +271,8 @@
config_h=`echo "$config_h" | sed -e 's/ .*//'`
# Support "outfile[:infile]", defaulting infile="outfile.in".
case "$config_h" in
-"") echo "$me: error: AC_CONFIG_HEADERS not found in $infile" >&2; exit 1 ;;
+"") echo "$me: error: AC_CONFIG_HEADERS not found in $infile" >&2
+ (exit 1); exit ;;
*:*) config_h_in=`echo "$config_h" | sed 's/.*://'`
config_h=`echo "$config_h" | sed 's/:.*//'` ;;
*) config_h_in="$config_h.in" ;;
@@ -304,7 +306,6 @@
# Check that all the symbols have a template.
$verbose $me: checking completeness of the template >&2
-status=0
# Regexp for a white space.
w='[ ]'
if test -n "$syms"; then
@@ -335,4 +336,4 @@
fi
fi
-exit $status
+(exit $status); exit
--- autoreconf.sh.orig Wed Aug 9 13:06:15 2000
+++ autoreconf.sh Fri Aug 11 16:55:59 2000
@@ -100,6 +100,7 @@
localdir=.
# m4dir -- local Autoconf extensions. Typically `m4'.
m4dir=
+status=0
# symlink -- when --install, use symlinks instead.
symlink=false
verbose=:
@@ -240,7 +241,7 @@
$debug ||
{
trap 'status=$?; rm -rf $tmp && exit $status' 0
- trap 'exit $?' 1 2 13 15
+ trap '(exit $?); exit' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
@@ -254,7 +255,7 @@
} ||
{
echo "$me: cannot create a temporary directory in $TMPDIR" >&2
- exit 1;
+ (exit 1); exit
}
# When debugging, it is convenient that all the related temporary
@@ -273,7 +274,7 @@
EOF
# update.sh --
-# Exit 0 iff the first argument is not the most recent of all or is missing.
+# Exit 0 if the first argument is not the most recent of all or is missing.
cat >$tmp/update.sh <<\EOF
test -f "$1" || exit 0
test x`ls -1dt "$@" 2>/dev/null | sed 1q` != x"$1"
--- autoupdate.sh.orig Mon Aug 7 15:03:26 2000
+++ autoupdate.sh Fri Aug 11 16:59:18 2000
@@ -94,6 +94,7 @@
done
debug=false
localdir=.
+status=0
tmp=
verbose=:
@@ -160,7 +161,7 @@
$debug ||
{
trap 'status=$?; rm -rf $tmp && exit $status' 0
- trap 'exit $?' 1 2 13 15
+ trap '(exit $?); exit' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
@@ -174,7 +175,7 @@
} ||
{
echo "$me: cannot create a temporary directory in $TMPDIR" >&2
- exit 1;
+ (exit 1); exit
}
# Find the input files.
@@ -260,7 +261,7 @@
cat >$file
elif test ! -r "$file"; then
echo "$me: $file: No such file or directory" >&2
- exit 1
+ (exit 1); exit
fi
# input.m4 -- m4 program to produce the updated file.
@@ -334,7 +335,7 @@
fi
done
-exit 0
+(exit $status); exit
# No shell is expected to read this, nevertheless, we still use a here
# document so that `sh -n' succeeds.
--- autoconf.sh.orig Fri Aug 11 12:47:47 2000
+++ autoconf.sh Fri Aug 11 18:11:17 2000
@@ -297,7 +297,8 @@
## --------------------------------- ##
script)
# M4 expansion.
- $run_m4f -D_AC_WARNINGS=$_ac_warnings $infile >$tmp/configure || exit
+ $run_m4f -D_AC_WARNINGS=$_ac_warnings $infile >$tmp/configure ||
+ { (exit 1); exit; }
# You can add your own prefixes to pattern if you want to check for
# them too.
@@ -552,7 +553,8 @@
do
# The request may be several lines long, hence sed has to quit.
trace_opt="$trace_opt -t "`echo "$trace" | sed -e 's/:.*//;q'`
- echo "$trace" | $AWK -f $tmp/translate.awk >>$tmp/trace.m4 || exit
+ echo "$trace" | $AWK -f $tmp/translate.awk >>$tmp/trace.m4 ||
+ { (exit 1); exit; }
done
echo "divert(0)dnl" >>$tmp/trace.m4