Commit 955be633 by Joseph Myers Committed by Joseph Myers

configure.in: Check for the mktemp command.

	* configure.in: Check for the mktemp command.
	* configure: Regenerate.
	* gccbug.in: Use a separate temporary file $TEMP0 for one use of
	$TEMP.  Create temporary files with mktemp, if available at
	configure time; otherwise use set -C.  Remove temporary files
	before exit.

From-SVN: r38671
parent 234fb86c
2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
* configure.in: Check for the mktemp command.
* configure: Regenerate.
* gccbug.in: Use a separate temporary file $TEMP0 for one use of
$TEMP. Create temporary files with mktemp, if available at
configure time; otherwise use set -C. Remove temporary files
before exit.
2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
* configure.in: Require at least texinfo 4.0. Check for whether * configure.in: Require at least texinfo 4.0. Check for whether
Pod::Man is sufficiently recent to regenerate GCC manpages. Pod::Man is sufficiently recent to regenerate GCC manpages.
* configure: Regenerate. * configure: Regenerate.
......
...@@ -446,6 +446,9 @@ AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=]) ...@@ -446,6 +446,9 @@ AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
# See if GNAT has been installed # See if GNAT has been installed
AC_CHECK_PROG(gnat, gnatbind, yes, no) AC_CHECK_PROG(gnat, gnatbind, yes, no)
# See if we have the mktemp command.
AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
# Do we have a single-tree copy of texinfo? # Do we have a single-tree copy of texinfo?
if test -f $srcdir/../texinfo/Makefile.in; then if test -f $srcdir/../texinfo/Makefile.in; then
MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo' MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
......
#!/bin/sh #!/bin/sh
# Submit a problem report to a GNATS site. # Submit a problem report to a GNATS site.
# Copyright (C) 1993, 2000 Free Software Foundation, Inc. # Copyright (C) 1993, 2000, 2001 Free Software Foundation, Inc.
# Contributed by Brendan Kehoe (brendan@cygnus.com), based on a # Contributed by Brendan Kehoe (brendan@cygnus.com), based on a
# version written by Heinz G. Seidl (hgs@cygnus.com). # version written by Heinz G. Seidl (hgs@cygnus.com).
# #
...@@ -77,9 +77,30 @@ else ...@@ -77,9 +77,30 @@ else
fi fi
fi fi
TEMP=$TMPDIR/p$$ if [ @have_mktemp_command@ = yes ]; then
BAD=$TMPDIR/pbad$$ TEMP0=`mktemp $TMPDIR/poXXXXXX` || exit 1
REF=$TMPDIR/pf$$ TEMP=`mktemp $TMPDIR/pXXXXXX` || exit 1
BAD=`mktemp $TMPDIR/pbadXXXXXX` || exit 1
REF=`mktemp $TMPDIR/pfXXXXXX` || exit 1
else
TEMP0=$TMPDIR/po$$
TEMP=$TMPDIR/p$$
BAD=$TMPDIR/pbad$$
REF=$TMPDIR/pf$$
# set -C _may_ use O_EXCL, but it need not.
set -C
bad_temp=0
: > $TEMP0 || bad_temp=1
: > $TEMP || bad_temp=1
: > $BAD || bad_temp=1
: > $REF || bad_temp=1
if [ $bad_temp = 1 ]; then
rm -f $TEMP0 $TEMP $BAD $REF
exit 1;
fi
set +C
fi
REMOVE_TEMP="rm -f $TEMP0 $TEMP $BAD $REF"
# find a user name # find a user name
if [ "$LOGNAME" = "" ]; then if [ "$LOGNAME" = "" ]; then
...@@ -101,9 +122,9 @@ elif [ -f $HOME/.fullname ]; then ...@@ -101,9 +122,9 @@ elif [ -f $HOME/.fullname ]; then
else else
# Must use temp file due to incompatibilities in quoting behavior # Must use temp file due to incompatibilities in quoting behavior
# and to protect shell metacharacters in the expansion of $LOGNAME # and to protect shell metacharacters in the expansion of $LOGNAME
$PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP0
ORIGINATOR="`cat $TEMP`" ORIGINATOR="`cat $TEMP0`"
rm -f $TEMP rm -f $TEMP0
fi fi
if [ -n "$ORGANIZATION" ]; then if [ -n "$ORGANIZATION" ]; then
...@@ -146,32 +167,33 @@ SEVERITY_C= ...@@ -146,32 +167,33 @@ SEVERITY_C=
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
case "$1" in case "$1" in
-r) ;; # Ignore for backward compat. -r) ;; # Ignore for backward compat.
-t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi -t | --to) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
shift ; GNATS_ADDR="$1" shift ; GNATS_ADDR="$1"
EXPLICIT_GNATS_ADDR=true EXPLICIT_GNATS_ADDR=true
;; ;;
-f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi -f | --file) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
shift ; IN_FILE="$1" shift ; IN_FILE="$1"
if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then
echo "$COMMAND: cannot read $IN_FILE" echo "$COMMAND: cannot read $IN_FILE"
$REMOVE_TEMP
exit 1 exit 1
fi fi
;; ;;
-b | --batch) BATCH=true ;; -b | --batch) BATCH=true ;;
-c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi -c | --cc) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
shift ; CC="$1" shift ; CC="$1"
;; ;;
-s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; exit 1; fi -s | --severity) if [ $# -eq 1 ]; then echo "$USAGE"; $REMOVE_TEMP; exit 1; fi
shift ; SEVERITY_C="$1" shift ; SEVERITY_C="$1"
;; ;;
-p | -P | --print) PRINT=true ;; -p | -P | --print) PRINT=true ;;
-L | --list) FORMAT=norm ;; -L | --list) FORMAT=norm ;;
-l | -CL | --lisp) FORMAT=lisp ;; -l | -CL | --lisp) FORMAT=lisp ;;
--request-id) REQUEST_ID=true ;; --request-id) REQUEST_ID=true ;;
-h | --help) echo "$USAGE"; exit 0 ;; -h | --help) echo "$USAGE"; $REMOVE_TEMP; exit 0 ;;
-V | --version) echo "$VERSION"; exit 0 ;; -V | --version) echo "$VERSION"; $REMOVE_TEMP; exit 0 ;;
-*) echo "$USAGE" ; exit 1 ;; -*) echo "$USAGE" ; $REMOVE_TEMP; exit 1 ;;
*) echo "$USAGE" ; exit 1 *) echo "$USAGE" ; $REMOVE_TEMP; exit 1
esac esac
shift shift
done done
...@@ -182,6 +204,7 @@ CATEGORIES="c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end ...@@ -182,6 +204,7 @@ CATEGORIES="c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end
case "$FORMAT" in case "$FORMAT" in
lisp) echo "$CATEGORIES" | \ lisp) echo "$CATEGORIES" | \
awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}' awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}'
$REMOVE_TEMP
exit 0 exit 0
;; ;;
norm) l=`echo "$CATEGORIES" | \ norm) l=`echo "$CATEGORIES" | \
...@@ -193,6 +216,7 @@ case "$FORMAT" in ...@@ -193,6 +216,7 @@ case "$FORMAT" in
awk 'BEGIN {print "Known categories:"; i = 0 } awk 'BEGIN {print "Known categories:"; i = 0 }
{ printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } } { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } }
END { print ""; }' END { print ""; }'
$REMOVE_TEMP
exit 0 exit 0
;; ;;
esac esac
...@@ -213,8 +237,8 @@ FIX_C='<how to correct or work around the problem, if known (multiple lines)>' ...@@ -213,8 +237,8 @@ FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
# Catch some signals. ($xs kludge needed by Sun /bin/sh) # Catch some signals. ($xs kludge needed by Sun /bin/sh)
xs=0 xs=0
trap 'rm -f $REF $TEMP; exit $xs' 0 trap '$REMOVE_TEMP; exit $xs' 0
trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP; xs=1; exit' 1 3 13 15 trap 'echo "$COMMAND: Aborting ..."; $REMOVE_TEMP; xs=1; exit' 1 3 13 15
# If they told us to use a specific file, then do so. # If they told us to use a specific file, then do so.
if [ -n "$IN_FILE" ]; then if [ -n "$IN_FILE" ]; then
...@@ -458,6 +482,7 @@ while [ -z "$REQUEST_ID" ]; do ...@@ -458,6 +482,7 @@ while [ -z "$REQUEST_ID" ]; do
a*) a*)
if [ -z "$BATCH" ]; then if [ -z "$BATCH" ]; then
echo "$COMMAND: the problem report remains in $BAD and is not sent." echo "$COMMAND: the problem report remains in $BAD and is not sent."
REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF"
mv $TEMP $BAD mv $TEMP $BAD
else else
echo "$COMMAND: the problem report is not sent." echo "$COMMAND: the problem report is not sent."
...@@ -518,6 +543,7 @@ else ...@@ -518,6 +543,7 @@ else
echo "$COMMAND: mysterious mail failure." echo "$COMMAND: mysterious mail failure."
if [ -z "$BATCH" ]; then if [ -z "$BATCH" ]; then
echo "$COMMAND: the problem report remains in $BAD and is not sent." echo "$COMMAND: the problem report remains in $BAD and is not sent."
REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF"
mv $REF $BAD mv $REF $BAD
else else
echo "$COMMAND: the problem report is not sent." echo "$COMMAND: the problem report is not sent."
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment