aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/mkconfig.sh9
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c94dacc..07dcc2f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2001-03-22 Zack Weinberg <zackw@stanford.edu>
+
+ * mkconfig.sh: Use a subshell with redirected stdout,
+ instead of closing stdout and confusing commands that run
+ afterward. Throw away output of cmp.
+
2001-03-22 Gordon Sadler <gbsadler1@lcisp.com>
* Makefile.in (stage1_build): Pass CFLAGS to stage1_build.
diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
index e89d382..5250708fc 100644
--- a/gcc/mkconfig.sh
+++ b/gcc/mkconfig.sh
@@ -12,7 +12,10 @@ fi
output=$1
rm -f $output.T
-exec > $output.T
+
+# We used to exec > $output.T but apparently this has bugs.
+# Use a redirected subshell instead.
+(
# Define TARGET_CPU_DEFAULT if the system wants one.
# This substitutes for lots of *.h files.
@@ -53,10 +56,10 @@ echo "#include \"insn-codes.h\""
echo "#include \"insn-flags.h\""
echo "#endif"
-exec >&-
+) > $output.T
# Avoid changing the actual file if possible.
-if [ -f $output ] && cmp $output.T $output; then
+if [ -f $output ] && cmp $output.T $output >/dev/null 2>&1; then
echo $output is unchanged >&2
rm -f $output.T
else