Use _CALL_DL_FCT to call function from dynamically loaded object.
[kopensolaris-gnu/glibc.git] / glibcbug.in
index 2808789..0f392e7 100644 (file)
@@ -6,23 +6,49 @@
 #       these variables are filled in by configure
 #
 VERSION="@VERSION@"
-BUGGLIBC="bugs@gnu.ai.mit.edu"
+RELEASE="@RELEASE@"
 ADDONS="@subdirs@"
+HOST="@host@"
+CC='@CC@'
+CFLAGS="@CFLAGS@"
+SYSINCLUDES="@SYSINCLUDES@"
+VERSIONING="@VERSIONING@"
+BUILD_STATIC="@static@"
+BUILD_SHARED="@shared@"
+BUILD_PIC_DEFAULT="@pic_default@"
+BUILD_PROFILE="@profile@"
+BUILD_OMITFP="@omitfp@"
+BUILD_BOUNDED="@bounded@"
+BUILD_STATIC_NSS="@static_nss@"
+STDIO="@stdio@"
 
-PATH=/bin:/usr/bin:/usr/local/bin:$PATH
-export PATH
+TEMP=`mktemp -q /tmp/glibcbugXXXXXX 2>/dev/null`
+if test $? -ne 0; then
+  TEMP=/tmp/glibcbug.$$
+  echo > $TEMP
+  chmod 600 $TEMP
+fi
+TEMPx=`mktemp -q /tmp/glibcbugXXXXXX 2>/dev/null`
+if test $? -ne 0; then
+  TEMPx=/tmp/glibcbug.$$.x
+  echo > $TEMPx
+  chmod 600 $TEMPx
+fi
 
-TEMP=/tmp/glibcbug.$$
+if test "$RELEASE" = "stable"; then
+  BUGGLIBC="bugs@gnu.org"
+else
+  BUGGLIBC="libc-alpha@cygnus.com"
+fi
 
 BUGADDR=${1-$BUGGLIBC}
-ENVIRONMENT=`uname -a`
 
 : ${EDITOR=emacs}
 
 : ${USER=${LOGNAME-`whoami`}}
 
-trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15
-trap 'rm -f $TEMP $TEMP.x' 0
+trap 'rm -f $TEMP $TEMPx; exit 1' 1 2 3 13 15
+trap 'rm -f $TEMP $TEMPx' 0
 
 
 # How to read the passwd database.
@@ -53,7 +79,6 @@ else
   # 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
 fi
 
 if [ -n "$ORGANIZATION" ]; then
@@ -84,6 +109,13 @@ SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
         ( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
 ARCH=`[ -f /bin/arch ] && /bin/arch`
 MACHINE=`[ -f /bin/machine ] && /bin/machine`
+CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'`
+
+case $HOST in *linux*)
+  KHDRS=`(echo '#include <linux/version.h>'
+         echo '! UTS_RELEASE' ) |
+        $CC $SYSINCLUDES -E - | sed -n '/!/s/[! "]//gp'`;;
+esac
 
 ORGANIZATION_C='<organization of PR author (multiple lines)>'
 SYNOPSIS_C='<synopsis of the problem (one line)>'
@@ -119,10 +151,24 @@ ${ORGANIZATION- $ORGANIZATION_C}
 >Release:      libc-${VERSION}
 >Environment:
        $ENVIRONMENT_C
+`[ -n "$HOST" ] && echo Host type: $HOST`
 `[ -n "$SYSTEM" ] && echo System: $SYSTEM`
 `[ -n "$ARCH" ] && echo Architecture: $ARCH`
 `[ -n "$MACHINE" ] && echo Machine: $MACHINE`
 `[ -n "$ADDONS" ] && echo Addons: $ADDONS`
+`[ -n "$CFLAGS" ] && echo Build CFLAGS: $CFLAGS`
+`[ -n "$CC" ] && echo Build CC: $CC`
+`[ -n "$CCVERSION" ] && echo Compiler version: $CCVERSION`
+`[ -n "$KHDRS" ] && echo Kernel headers: $KHDRS`
+`[ -n "$VERSIONING" ] && echo Symbol versioning: $VERSIONING`
+`[ -n "$BUILD_STATIC" ] && echo Build static: $BUILD_STATIC`
+`[ -n "$BUILD_SHARED" ] && echo Build shared: $BUILD_SHARED`
+`[ -n "$BUILD_PIC_DEFAULT" ] && echo Build pic-default: $BUILD_PIC_DEFAULT`
+`[ -n "$BUILD_PROFILE" ] && echo Build profile: $BUILD_PROFILE`
+`[ -n "$BUILD_OMITFP" ] && echo Build omitfp: $BUILD_OMITFP`
+`[ -n "$BUILD_BOUNDED" ] && echo Build bounded: $BUILD_BOUNDED`
+`[ -n "$BUILD_STATIC_NSS" ] && echo Build static-nss: $BUILD_STATIC_NSS`
+`[ -n "$STDIO" ] && echo Stdio: $STDIO`
 
 >Description:
        $DESCRIPTION_C
@@ -133,11 +179,11 @@ ${ORGANIZATION- $ORGANIZATION_C}
 EOF
 
 chmod u+w $TEMP
-cp $TEMP $TEMP.x
+cp $TEMP $TEMPx
 
 eval $EDIT $TEMP
 
-if cmp -s $TEMP $TEMP.x; then
+if cmp -s $TEMP $TEMPx; then
        echo "File not changed, no bug report submitted."
        exit 1
 fi
@@ -230,9 +276,9 @@ sed  -e "
 /^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
 /^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
 /^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
-" $TEMP > $TEMP.x
+" $TEMP > $TEMPx
 
-if $MAIL_AGENT $BUGGLIBC < $TEMP.x; then
+if $MAIL_AGENT < $TEMPx; then
   echo "$COMMAND: problem report sent"
   xs=0; exit
 else