X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fgccbug.in;h=3bbc93f72e712c84c22d7474049fdbd861b683a9;hb=a72c95fc7e2acb858a9d53d17f8f06bc21a45be6;hp=dc362fab4d9688b22012640156c5f0d9c417b1c3;hpb=86220f453c768a8deb58678e4010a892011a2cce;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/gccbug.in b/gcc/gccbug.in index dc362fab4d9..3bbc93f72e7 100755 --- a/gcc/gccbug.in +++ b/gcc/gccbug.in @@ -1,6 +1,6 @@ #!/bin/sh # 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 # version written by Heinz G. Seidl (hgs@cygnus.com). # @@ -30,7 +30,7 @@ SUBMITTER=net GNATS_ADDR=gcc-gnats@gcc.gnu.org # The default release for this host. -DEFAULT_RELEASE="@gcc_version@" +DEFAULT_RELEASE="@gcc_version_full@" # The default organization. DEFAULT_ORGANIZATION= @@ -77,9 +77,21 @@ else fi fi -TEMP=$TMPDIR/p$$ -BAD=$TMPDIR/pbad$$ -REF=$TMPDIR/pf$$ +if [ @have_mktemp_command@ = yes ]; then + TEMP0=`mktemp $TMPDIR/poXXXXXX` || exit 1 + TEMP=`mktemp $TMPDIR/pXXXXXX` || exit 1 + BAD=`mktemp $TMPDIR/pbadXXXXXX` || exit 1 + REF=`mktemp $TMPDIR/pfXXXXXX` || exit 1 + REMOVE_TEMP="rm -f $TEMP0 $TEMP $BAD $REF" +else + TEMPD=$TMPDIR/pd$$ + TEMP0=$TEMPD/po$$ + TEMP=$TEMPD/p$$ + BAD=$TEMPD/pbad$$ + REF=$TEMPD/pf$$ + mkdir $TEMPD || exit 1 + REMOVE_TEMP="rm -rf $TEMPD" +fi # find a user name if [ "$LOGNAME" = "" ]; then @@ -101,9 +113,9 @@ elif [ -f $HOME/.fullname ]; then else # Must use temp file due to incompatibilities in quoting behavior # and to protect shell metacharacters in the expansion of $LOGNAME - $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP - ORIGINATOR="`cat $TEMP`" - rm -f $TEMP + $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP0 + ORIGINATOR="`cat $TEMP0`" + rm -f $TEMP0 fi if [ -n "$ORGANIZATION" ]; then @@ -146,42 +158,44 @@ SEVERITY_C= while [ $# -gt 0 ]; do case "$1" in -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" 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" if [ "$IN_FILE" != "-" -a ! -r "$IN_FILE" ]; then echo "$COMMAND: cannot read $IN_FILE" + $REMOVE_TEMP exit 1 fi ;; -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" ;; - -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" ;; -p | -P | --print) PRINT=true ;; -L | --list) FORMAT=norm ;; -l | -CL | --lisp) FORMAT=lisp ;; --request-id) REQUEST_ID=true ;; - -h | --help) echo "$USAGE"; exit 0 ;; - -V | --version) echo "$VERSION"; exit 0 ;; - -*) echo "$USAGE" ; exit 1 ;; - *) echo "$USAGE" ; exit 1 + -h | --help) echo "$USAGE"; $REMOVE_TEMP; exit 0 ;; + -V | --version) echo "$VERSION"; $REMOVE_TEMP; exit 0 ;; + -*) echo "$USAGE" ; $REMOVE_TEMP; exit 1 ;; + *) echo "$USAGE" ; $REMOVE_TEMP; exit 1 esac shift done # spam does not need to be listed here -CATEGORIES="c++ c debug fortran gc host java libf2c libgcc libobjc libstdc++ middle-end objc optimization other profiling target" +CATEGORIES="bootstrap c++ c debug fortran java libf2c libgcj libobjc libstdc++ middle-end objc optimization other preprocessor target web" case "$FORMAT" in lisp) echo "$CATEGORIES" | \ awk 'BEGIN {printf "( "} {printf "(\"%s\") ",$0} END {printf ")\n"}' + $REMOVE_TEMP exit 0 ;; norm) l=`echo "$CATEGORIES" | \ @@ -193,30 +207,29 @@ case "$FORMAT" in awk 'BEGIN {print "Known categories:"; i = 0 } { printf ("%-'$l'.'$l's", $0); if ((++i % '$c') == 0) { print "" } } END { print ""; }' + $REMOVE_TEMP exit 0 ;; esac ORIGINATOR_C='' ORGANIZATION_C='' -CONFIDENTIAL_C='<[ yes | no ] (one line)>' SYNOPSIS_C='' if [ -z "$SEVERITY_C" ]; then SEVERITY_C='<[ non-critical | serious | critical ] (one line)>' fi -PRIORITY_C='<[ low | medium | high ] (one line)>' -CATEGORY_C='' -CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>' +PRIORITY_C='<[ low | medium ] (one line)>' +CATEGORY_C='' RELEASE_C='' ENVIRONMENT_C='' DESCRIPTION_C='' -HOW_TO_REPEAT_C='' +HOW_TO_REPEAT_C='' FIX_C='' # Catch some signals. ($xs kludge needed by Sun /bin/sh) xs=0 -trap 'rm -f $REF $TEMP; exit $xs' 0 -trap 'echo "$COMMAND: Aborting ..."; rm -f $REF $TEMP; xs=1; exit' 1 3 13 15 +trap '$REMOVE_TEMP; exit $xs' 0 +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 [ -n "$IN_FILE" ]; then @@ -256,8 +269,8 @@ SEND-PR: -*- send-pr -*- SEND-PR: Lines starting with `SEND-PR' will be removed automatically, as SEND-PR: will all comments (text enclosed in `<' and `>'). SEND-PR: -SEND-PR: Please consult the send-pr man page `send-pr(1)' or the Texinfo -SEND-PR: manual if you are not sure how to fill out a problem report. +SEND-PR: Please consult the GCC manual if you are not sure how to +SEND-PR: fill out a problem report. SEND-PR: Note that the Synopsis field is mandatory. The Subject (for SEND-PR: the mail) will be made the same as Synopsis unless explicitly SEND-PR: changed. @@ -291,12 +304,29 @@ X-GNATS-Notify: >Submitter-Id: $SUBMITTER >Originator: $ORIGINATOR >Organization: ${ORGANIZATION-$ORGANIZATION_C} ->Confidential: $CONFIDENTIAL_C +>Confidential: no +SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public. >Synopsis: $SYNOPSIS_C >Severity: $SEVERITY_C +SEND-PR: critical GCC is completely not operational; no work-around known. +SEND-PR: serious GCC is not working properly; a work-around is possible. +SEND-PR: non-critical Report indicates minor problem. >Priority: $PRIORITY_C +SEND-PR: medium The problem should be solved in the next release. +SEND-PR: low The problem should be solve in a future release. >Category: $CATEGORY_C ->Class: $CLASS_C +>Class: <[ doc-bug | accepts-illegal | rejects-legal | wrong-code | ice-on-legal-code| ice-on-illegal-code | pessimizes-code | sw-bug | change-request | support ] (one line)> +SEND-PR: doc-bug The doumentation is incorrect. +SEND-PR: accepts-illegal GCC fails to reject erroneous code. +SEND-PR: rejects-legal GCC gives an error message for correct code. +SEND-PR: wrong-code The machine code generated by gcc is incorrect. +SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE) +SEND-PR: for correct code +SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error +SEND-PR: pessimizes-code GCC misses an important optimization opportunity +SEND-PR: sw-bug Software bug of some other class than above +SEND-PR: change-request A feature in GCC is missing. +SEND-PR: support I need help with gcc. >Release: ${DEFAULT_RELEASE-$RELEASE_C} >Environment: `[ -n "$SYSTEM" ] && echo System: $SYSTEM` @@ -306,6 +336,7 @@ X-GNATS-Notify: host: @host@ build: @build@ target: @target@ +configured with: @gcc_config_arguments@ >Description: $DESCRIPTION_C >How-To-Repeat: @@ -364,7 +395,7 @@ while [ -z "$REQUEST_ID" ]; do PATTERN=">Confidential:" CONFIDENTIAL=`eval sed -n -e "\"$SED_CMD\"" $TEMP` case "$CONFIDENTIAL" in - ""|yes|no) CNT=`expr $CNT + 1` ;; + no) CNT=`expr $CNT + 1` ;; *) echo "$COMMAND: \`$CONFIDENTIAL' is not a valid value for \`Confidential'." ;; esac # @@ -382,7 +413,8 @@ while [ -z "$REQUEST_ID" ]; do PATTERN=">Priority:" PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` case "$PRIORITY" in - ""|low|medium|high) CNT=`expr $CNT + 1` ;; + ""|low|medium) CNT=`expr $CNT + 1` ;; + high) echo "$COMMAND: \`Priority: high' is reserved for GCC maintainers." ;; *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'." esac # @@ -410,7 +442,7 @@ while [ -z "$REQUEST_ID" ]; do PATTERN=">Class:" CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` case "$CLASS" in - ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;; + ""|doc-bug|accepts-illegal|rejects-legal|wrong-code|ice-on-legal-code|ice-on-illegal-code|pessimizes-code|sw-bug|change-request|support) CNT=`expr $CNT + 1` ;; *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." esac # @@ -441,6 +473,7 @@ while [ -z "$REQUEST_ID" ]; do a*) if [ -z "$BATCH" ]; then echo "$COMMAND: the problem report remains in $BAD and is not sent." + REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" mv $TEMP $BAD else echo "$COMMAND: the problem report is not sent." @@ -501,6 +534,7 @@ else echo "$COMMAND: mysterious mail failure." if [ -z "$BATCH" ]; then echo "$COMMAND: the problem report remains in $BAD and is not sent." + REMOVE_TEMP="rm -f $TEMP0 $TEMP $REF" mv $REF $BAD else echo "$COMMAND: the problem report is not sent."