aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libiberty/ChangeLog24
-rw-r--r--libiberty/Makefile.in222
-rw-r--r--libiberty/_doprnt.c9
-rwxr-xr-xlibiberty/configure113
-rw-r--r--libiberty/configure.in2
-rw-r--r--libiberty/copysign.c12
-rw-r--r--libiberty/maint-tool98
-rw-r--r--libiberty/mkstemps.c4
-rw-r--r--libiberty/putenv.c6
-rw-r--r--libiberty/setenv.c8
-rw-r--r--libiberty/vsprintf.c6
11 files changed, 405 insertions, 99 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index fdccb59a..cb53fb6 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,27 @@
+2002-01-18 DJ Delorie <dj@redhat.com>
+
+ * Makefile.in (TESTLIB): New. This library is for future
+ testsuites.
+ (CFILES, REQUIRED_OFILES, CONFIGURED_OFILES): Re-alphabetize,
+ break down by letter.
+ (REQUIRED_OFILES): List long-to-compile files first.
+ (maint-deps): New, target for updating dependencies.
+ (dependencies): Update.
+ * maint-tool: Add dependency-generating option.
+ * configure.in: Check for _doprnt even if we're not providing it.
+ * configure: Regenerate.
+
+ * _doprnt.c: Modifications to allow compiling on any platform.
+ * copysign.c: Likewise.
+ * putenv.c: Likewise.
+ * setenv.c: Likewise.
+ * vsprintf.c: Likewise.
+
+2002-01-15 Douglas B Rupp <rupp@gnat.com>
+
+ * mkstemps.c (mkstemps): On VMS, open temp file with option
+ that causes it to be deleted when closed.
+
2002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* cp-demangle.c (long_options): Const-ify.
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 093c449..5fa9630 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -64,6 +64,7 @@ PICFLAG =
MAKEOVERRIDES =
TARGETLIB = libiberty.a
+TESTLIB = testlib.a
LIBOBJS = @LIBOBJS@
@@ -116,42 +117,69 @@ COMPILE.c = $(CC) -c @DEFS@ $(LIBCFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiber
$(COMPILE.c) $<
# NOTE: If you add new files to the library, add them to this list
-# (alphabetical), and add them to REQUIRED_OFILES or funcs in
-# configure.in.
-CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \
- bsearch.c bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \
- cp-demangle.c dyn-string.c fdmatch.c fnmatch.c ffs.c getcwd.c \
- getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c \
- floatformat.c hashtab.c hex.c index.c insque.c lbasename.c \
- md5.c make-temp-file.c memchr.c \
- memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c \
- partition.c pexecute.c putenv.c random.c \
- regex.c rename.c rindex.c setenv.c \
- sigsetmask.c safe-ctype.c sort.c spaces.c splay-tree.c strcasecmp.c \
- strncasecmp.c strchr.c strdup.c strerror.c strncmp.c strrchr.c \
- strsignal.c strstr.c strtod.c strtol.c strtoul.c tmpnam.c vasprintf.c \
- vfork.c vfprintf.c vprintf.c vsprintf.c waitpid.c xatexit.c xexit.c \
- xmalloc.c xmemdup.c xstrdup.c xstrerror.c ternary.c fibheap.c
-
-# These are always included in the library.
-REQUIRED_OFILES = argv.o alloca.o choose-temp.o concat.o cplus-dem.o \
- cp-demangle.o dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o \
- getpwd.o getruntime.o hashtab.o hex.o floatformat.o lbasename.o \
- md5.o make-temp-file.o objalloc.o \
- obstack.o partition.o pexecute.o regex.o safe-ctype.o sort.o spaces.o \
- splay-tree.o strerror.o strsignal.o xatexit.o xexit.o xmalloc.o \
- xmemdup.o xstrdup.o xstrerror.o ternary.o fibheap.o
+# (alphabetical), and add them to REQUIRED_OFILES, or
+# CONFIGURED_OFILES and funcs in configure.in.
+CFILES = alloca.c argv.c asprintf.c atexit.c \
+ basename.c bcmp.c bcopy.c bsearch.c bzero.c \
+ calloc.c choose-temp.c clock.c concat.c cp-demangle.c \
+ cplus-dem.c \
+ dyn-string.c \
+ fdmatch.c ffs.c fibheap.c floatformat.c fnmatch.c \
+ getcwd.c getopt.c getopt1.c getpagesize.c getpwd.c getruntime.c \
+ hashtab.c hex.c \
+ index.c insque.c \
+ lbasename.c \
+ make-temp-file.c md5.c memchr.c memcmp.c memcpy.c memmove.c \
+ memset.c mkstemps.c \
+ objalloc.c obstack.c \
+ partition.c pexecute.c putenv.c \
+ random.c regex.c rename.c rindex.c \
+ safe-ctype.c setenv.c sigsetmask.c sort.c spaces.c \
+ splay-tree.c strcasecmp.c strchr.c strdup.c strerror.c \
+ strncasecmp.c strncmp.c strrchr.c strsignal.c strstr.c \
+ strtod.c strtol.c strtoul.c \
+ ternary.c tmpnam.c \
+ vasprintf.c vfork.c vfprintf.c vprintf.c vsprintf.c \
+ waitpid.c \
+ xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c
+
+# These are always included in the library. The first four are listed
+# first and by compile time to optimize parallel builds.
+REQUIRED_OFILES = regex.o cplus-dem.o cp-demangle.o md5.o \
+ alloca.o argv.o \
+ choose-temp.o concat.o \
+ dyn-string.o \
+ fdmatch.o fibheap.o floatformat.o fnmatch.o \
+ getopt.o getopt1.o getpwd.o getruntime.o \
+ hashtab.o hex.o \
+ lbasename.o \
+ make-temp-file.o \
+ objalloc.o obstack.o \
+ partition.o pexecute.o \
+ safe-ctype.o sort.o spaces.o splay-tree.o strerror.o \
+ strsignal.o \
+ ternary.o \
+ xatexit.o xexit.o xmalloc.o xmemdup.o xstrdup.o xstrerror.o
# These are all the objects that configure may add to the library via
-# $funcs. This list exists here only for "make maint-missing".
-CONFIGURED_OFILES = asprintf.o atexit.o basename.o bcmp.o bcopy.o \
- bsearch.o bzero.o calloc.o clock.o ffs.o getcwd.o \
- getpagesize.o index.o insque.o memchr.o memcmp.o memcpy.o \
- memmove.o memset.o mkstemps.o putenv.o random.o rename.o \
- rindex.o setenv.o sigsetmask.o strcasecmp.o strchr.o strdup.o \
- strncasecmp.o strncmp.o strrchr.o strstr.o strtod.o strtol.o \
- strtoul.o tmpnam.o vasprintf.o vfork.o vfprintf.o vprintf.o \
- vsprintf.o waitpid.o
+# $funcs or EXTRA_OFILES. This list exists here only for "make
+# maint-missing" and "make check".
+CONFIGURED_OFILES = asprintf.o atexit.o \
+ basename.o bcmp.o bcopy.o bsearch.o bzero.o \
+ calloc.o clock.o copysign.o \
+ _doprnt.o \
+ ffs.o \
+ getcwd.o getpagesize.o \
+ index.o insque.o \
+ memchr.o memcmp.o memcpy.o memmove.o memset.o mkstemps.o \
+ putenv.o \
+ random.o rename.o rindex.o \
+ setenv.o sigsetmask.o strcasecmp.o strchr.o strdup.o \
+ strncasecmp.o strncmp.o strrchr.o strstr.o strtod.o strtol.o \
+ strtoul.o \
+ tmpnam.o \
+ vasprintf.o vfork.o vfprintf.o vprintf.o vsprintf.o \
+ waitpid.o
$(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
-rm -f $(TARGETLIB) pic/$(TARGETLIB)
@@ -166,6 +194,12 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS)
cd ..; \
else true; fi
+$(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
+ -rm -f $(TESTLIB)
+ $(AR) $(AR_FLAGS) $(TESTLIB) \
+ $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
+ $(RANLIB) $(TESTLIB)
+
info: libiberty.info info-subdir
install-info: install-info-subdir
clean-info: clean-info-subdir
@@ -268,6 +302,9 @@ maint-buildall : $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
maint-undoc : $(srcdir)/functions.texi
@$(PERL) $(srcdir)/maint-tool -s $(srcdir) undoc
+maint-deps :
+ @$(PERL) $(srcdir)/maint-tool -s $(srcdir) deps $(INCDIR)
+
# Need to deal with profiled libraries, too.
# Cleaning has to be done carefully to ensure that we don't clean our SUBDIRS
@@ -323,53 +360,92 @@ maintainer-clean-subdir: config.h
done
$(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS): stamp-picdir
+$(CONFIGURED_OFILES): stamp-picdir
+
+# The dependencies in the remainder of this file are automatically
+# generated by "make maint-deps". Manual edits will be lost.
-alloca.o: config.h $(INCDIR)/libiberty.h
+_doprnt.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
+alloca.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+argv.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+asprintf.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
atexit.o: config.h
-argv.o: config.h $(INCDIR)/libiberty.h
-basename.o: $(INCDIR)/libiberty.h
-choose-temp.o: config.h
+basename.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/safe-ctype.h
+bsearch.o: config.h $(INCDIR)/ansidecl.h
+calloc.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+choose-temp.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
clock.o: config.h
-concat.o: config.h $(INCDIR)/libiberty.h
-cplus-dem.o: config.h $(INCDIR)/demangle.h
-cp-demangle.o: config.h $(INCDIR)/dyn-string.h $(INCDIR)/demangle.h
-dyn-string.o: config.h $(INCDIR)/dyn-string.h
-fdmatch.o: $(INCDIR)/libiberty.h
-fibheap.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/fibheap.h
-fnmatch.o: config.h $(INCDIR)/fnmatch.h
+concat.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+copysign.o: $(INCDIR)/ansidecl.h
+cp-demangle.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h \
+ $(INCDIR)/dyn-string.h $(INCDIR)/getopt.h $(INCDIR)/libiberty.h
+cplus-dem.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/demangle.h \
+ $(INCDIR)/getopt.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h
+dyn-string.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/dyn-string.h \
+ $(INCDIR)/libiberty.h
+fdmatch.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+fibheap.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/fibheap.h \
+ $(INCDIR)/libiberty.h
+floatformat.o: $(INCDIR)/ansidecl.h $(INCDIR)/floatformat.h
+fnmatch.o: config.h $(INCDIR)/fnmatch.h $(INCDIR)/safe-ctype.h
getcwd.o: config.h
getopt.o: config.h $(INCDIR)/getopt.h
getopt1.o: config.h $(INCDIR)/getopt.h
getpagesize.o: config.h
-getpwd.o: config.h $(INCDIR)/libiberty.h
-getruntime.o: config.h $(INCDIR)/libiberty.h
-hex.o: $(INCDIR)/libiberty.h
-floatformat.o: $(INCDIR)/floatformat.h
-lbasename.o: $(INCDIR)/libiberty.h
-make-temp-file.o: config.h
-mkstemps.o: config.h
-md5.o: config.h
-objalloc.o: config.h $(INCDIR)/objalloc.h
+getpwd.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+getruntime.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+hashtab.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/hashtab.h \
+ $(INCDIR)/libiberty.h
+hex.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+lbasename.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/safe-ctype.h
+make-temp-file.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+md5.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/md5.h
+memchr.o: $(INCDIR)/ansidecl.h
+memcmp.o: $(INCDIR)/ansidecl.h
+memcpy.o: $(INCDIR)/ansidecl.h
+memmove.o: $(INCDIR)/ansidecl.h
+memset.o: $(INCDIR)/ansidecl.h
+mkstemps.o: config.h $(INCDIR)/ansidecl.h
+objalloc.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/objalloc.h
obstack.o: config.h $(INCDIR)/obstack.h
-partition.o: config.h $(INCDIR)/partition.h
-pexecute.o: config.h $(INCDIR)/libiberty.h
+partition.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/partition.h
+pexecute.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/safe-ctype.h
+putenv.o: config.h $(INCDIR)/ansidecl.h
+random.o: $(INCDIR)/ansidecl.h
regex.o: config.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h
rename.o: config.h
-setenv.o: config.h
-sort.o: config.h $(INCDIR)/sort.h $(INCDIR)/ansidecl.h
-spaces.o: $(INCDIR)/libiberty.h
-splay-tree.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/splay-tree.h $(INCDIR)/ansidecl.h
-strerror.o: config.h $(INCDIR)/libiberty.h
-strsignal.o: config.h $(INCDIR)/libiberty.h
-strtol.o: config.h
-strtoul.o: config.h
-ternary.o: config.h $(INCDIR)/ternary.h $(INCDIR)/libiberty.h
-vasprintf.o: config.h
-xatexit.o: $(INCDIR)/libiberty.h
-xexit.o: config.h $(INCDIR)/libiberty.h
-xmalloc.o: config.h $(INCDIR)/libiberty.h
-xmemdup.o: config.h $(INCDIR)/libiberty.h
-xstrdup.o: config.h $(INCDIR)/libiberty.h
-xstrerror.o: config.h $(INCDIR)/libiberty.h
+safe-ctype.o: $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
+setenv.o: config.h $(INCDIR)/ansidecl.h
+sigsetmask.o: $(INCDIR)/ansidecl.h
+sort.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/sort.h
+spaces.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+splay-tree.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/splay-tree.h
+strcasecmp.o: $(INCDIR)/ansidecl.h
+strchr.o: $(INCDIR)/ansidecl.h
+strerror.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+strncasecmp.o: $(INCDIR)/ansidecl.h
+strncmp.o: $(INCDIR)/ansidecl.h
+strrchr.o: $(INCDIR)/ansidecl.h
+strsignal.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+strtod.o: $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
+strtol.o: config.h $(INCDIR)/safe-ctype.h
+strtoul.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/safe-ctype.h
+ternary.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/ternary.h
+vasprintf.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+vfork.o: $(INCDIR)/ansidecl.h
+vprintf.o: $(INCDIR)/ansidecl.h
+vsprintf.o: $(INCDIR)/ansidecl.h
waitpid.o: config.h
-hashtab.o: config.h $(INCDIR)/libiberty.h $(INCDIR)/hashtab.h $(INCDIR)/ansidecl.h
+xatexit.o: $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+xexit.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+xmalloc.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+xmemdup.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+xstrdup.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+xstrerror.o: config.h $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
diff --git a/libiberty/_doprnt.c b/libiberty/_doprnt.c
index a91e27f..8ce1415 100644
--- a/libiberty/_doprnt.c
+++ b/libiberty/_doprnt.c
@@ -1,5 +1,5 @@
/* Provide a version of _doprnt in terms of fprintf.
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 3/29/98
This program is free software; you can redistribute it and/or modify it
@@ -29,9 +29,16 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_STRING_H
#include <string.h>
#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
#undef _doprnt
+#ifdef HAVE__DOPRNT
+#define TEST
+#endif
+
#ifdef TEST /* Make sure to use the internal one. */
#define _doprnt my_doprnt
#endif
diff --git a/libiberty/configure b/libiberty/configure
index 8ddd98d..be1fa94 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -2734,23 +2734,79 @@ fi
done
+ else
+ for ac_func in _doprnt
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2742: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2747 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
fi
for v in $vars; do
echo $ac_n "checking for $v""... $ac_c" 1>&6
-echo "configure:2742: checking for $v" >&5
+echo "configure:2798: checking for $v" >&5
if eval "test \"`echo '$''{'libiberty_cv_var_$v'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2747 "configure"
+#line 2803 "configure"
#include "confdefs.h"
int *p;
int main() {
extern int $v; p = &$v;
; return 0; }
EOF
-if { (eval echo configure:2754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "libiberty_cv_var_$v=yes"
else
@@ -2776,12 +2832,12 @@ EOF
for ac_func in $checkfuncs
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2780: checking for $ac_func" >&5
+echo "configure:2836: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2785 "configure"
+#line 2841 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2804,7 +2860,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2830,21 +2886,21 @@ done
fi
-for ac_hdr in unistd.h
+for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2838: checking for $ac_hdr" >&5
+echo "configure:2894: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2843 "configure"
+#line 2899 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2848: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2873,12 +2929,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2877: checking for $ac_func" >&5
+echo "configure:2933: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2882 "configure"
+#line 2938 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -2901,7 +2957,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:2905: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -2926,7 +2982,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:2930: checking for working mmap" >&5
+echo "configure:2986: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2934,7 +2990,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 2938 "configure"
+#line 2994 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -2962,11 +3018,24 @@ else
#include <fcntl.h>
#include <sys/mman.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
/* This mess was copied from the GNU getpagesize.h. */
#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-# include <unistd.h>
-# endif
/* Assume that all systems that can run configure have sys/param.h. */
# ifndef HAVE_SYS_PARAM_H
@@ -3074,7 +3143,7 @@ main()
}
EOF
-if { (eval echo configure:3078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -3098,7 +3167,7 @@ fi
echo $ac_n "checking for working strncmp""... $ac_c" 1>&6
-echo "configure:3102: checking for working strncmp" >&5
+echo "configure:3171: checking for working strncmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_strncmp_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3106,7 +3175,7 @@ else
ac_cv_func_strncmp_works=no
else
cat > conftest.$ac_ext <<EOF
-#line 3110 "configure"
+#line 3179 "configure"
#include "confdefs.h"
/* Test by Jim Wilson and Kaveh Ghazi.
@@ -3170,7 +3239,7 @@ main ()
}
EOF
-if { (eval echo configure:3174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_strncmp_works=yes
else
diff --git a/libiberty/configure.in b/libiberty/configure.in
index 3357370..0160edf 100644
--- a/libiberty/configure.in
+++ b/libiberty/configure.in
@@ -358,6 +358,8 @@ if test -z "${setobjs}"; then
|| test $ac_cv_func_vfprintf != yes \
|| test $ac_cv_func_vsprintf != yes; then
AC_REPLACE_FUNCS(_doprnt)
+ else
+ AC_CHECK_FUNCS(_doprnt)
fi
for v in $vars; do
diff --git a/libiberty/copysign.c b/libiberty/copysign.c
index 0b5f8c3..5c48a54 100644
--- a/libiberty/copysign.c
+++ b/libiberty/copysign.c
@@ -129,6 +129,7 @@ typedef union
} __ieee_float_shape_type;
#endif
+#if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
double DEFUN(copysign, (x, y), double x AND double y)
{
@@ -138,3 +139,14 @@ double DEFUN(copysign, (x, y), double x AND double y)
a.number.sign =b.number.sign;
return a.value;
}
+
+#else
+
+double DEFUN(copysign, (x, y), double x AND double y)
+{
+ if ((x < 0 && y > 0) || (x > 0 && y < 0))
+ return -x;
+ return x;
+}
+
+#endif
diff --git a/libiberty/maint-tool b/libiberty/maint-tool
index 75b0c50..ceeb48d 100644
--- a/libiberty/maint-tool
+++ b/libiberty/maint-tool
@@ -36,6 +36,7 @@ if ($mode eq "-s") {
&missing() if $mode eq "missing";
&undoc() if $mode eq "undoc";
+&deps() if $mode eq "deps";
exit 0;
@@ -178,3 +179,100 @@ sub undoc {
write;
}
}
+
+######################################################################
+
+sub deps_for {
+ my($f) = @_;
+ my(%d);
+ open(F, $f);
+ %d = ();
+ while (<F>) {
+ if (/^#\s*include\s+["<](.*)[">]/) {
+ $d{$1} = 1;
+ }
+ }
+ close(F);
+ return keys %d;
+}
+
+sub canonicalize {
+ my ($p) = @_;
+ 0 while $p =~ s@/\./@/@g;
+ 0 while $p =~ s@^\./@@g;
+ 0 while $p =~ s@/[^/]+/\.\./@/@g;
+ return $p;
+}
+
+sub locals_first {
+ my ($a,$b) = @_;
+ return -1 if $a eq "config.h";
+ return 1 if $b eq "config.h";
+ return $a cmp $b;
+}
+
+sub deps {
+
+ $incdir = shift @ARGV;
+
+ opendir(INC, $incdir);
+ while ($f = readdir INC) {
+ next unless $f =~ /\.h$/;
+ $mine{$f} = "\$(INCDIR)/$f";
+ $deps{$f} = join(' ', &deps_for("$incdir/$f"));
+ }
+ $mine{'config.h'} = "config.h";
+
+ open(IN, "$srcdir/Makefile.in");
+ open(OUT, ">$srcdir/Makefile.tmp");
+ while (<IN>) {
+ last if /remainder of this file/;
+ print OUT;
+ }
+ print OUT "# The dependencies in the remainder of this file are automatically\n";
+ print OUT "# generated by \"make maint-deps\". Manual edits will be lost.\n\n";
+
+ opendir(S, $srcdir);
+ for $f (sort readdir S) {
+ if ($f =~ /\.c$/) {
+
+ %scanned = ();
+ @pending = &deps_for("$srcdir/$f");
+ while (@pending) {
+ @tmp = @pending;
+ @pending = ();
+ for $p (@tmp) {
+ next unless $mine{$p};
+ if (!$scanned{$p}) {
+ push(@pending, split(' ', $deps{$p}));
+ $scanned{$p} = 1;
+ }
+ }
+ }
+ @deps = sort { &locals_first($a,$b) } keys %scanned;
+ $obj = $f;
+ $obj =~ s/\.c$/.o/;
+ $obj = "$obj:";
+ if ($#deps >= 0) {
+ print OUT $obj;
+ $len = length($obj);
+ for $dt (@deps) {
+ $d = $mine{$dt};
+ if ($len + length($d) > 70) {
+ printf OUT " \\\n\t$d";
+ $len = 8 + length($d);
+ } else {
+ print OUT " $d";
+ $len += length($d) + 1;
+ }
+ }
+ print OUT "\n";
+ }
+ }
+ }
+ closedir(S);
+ close(IN);
+ close(OUT);
+
+ rename("$srcdir/Makefile.tmp", "$srcdir/Makefile.in");
+}
diff --git a/libiberty/mkstemps.c b/libiberty/mkstemps.c
index 8fe5784..1f6600a 100644
--- a/libiberty/mkstemps.c
+++ b/libiberty/mkstemps.c
@@ -121,7 +121,11 @@ mkstemps (template, suffix_len)
v /= 62;
XXXXXX[5] = letters[v % 62];
+#ifdef VMS
+ fd = open (template, O_RDWR|O_CREAT|O_EXCL, 0600, "fop=tmd");
+#else
fd = open (template, O_RDWR|O_CREAT|O_EXCL, 0600);
+#endif
if (fd >= 0)
/* The file does not exist. */
return fd;
diff --git a/libiberty/putenv.c b/libiberty/putenv.c
index 58012fc..6d027dc 100644
--- a/libiberty/putenv.c
+++ b/libiberty/putenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1994, 1995, 1996, 2002 Free Software Foundation, Inc.
This file based on putenv.c in the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -39,6 +39,8 @@ name is unset/removed.
#include "ansidecl.h"
+#define putenv libiberty_putenv
+
#if HAVE_STDLIB_H
# include <stdlib.h>
#endif
@@ -58,6 +60,8 @@ extern char *alloca ();
# endif /* alloca */
#endif /* HAVE_ALLOCA_H */
+#undef putenv
+
/* Below this point, it's verbatim code from the glibc-2.0 implementation */
diff --git a/libiberty/setenv.c b/libiberty/setenv.c
index 79e38ed..8394faf 100644
--- a/libiberty/setenv.c
+++ b/libiberty/setenv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
This file based on setenv.c in the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -36,6 +36,9 @@ environment. This implementation is not safe for multithreaded code.
# include <config.h>
#endif
+#define setenv libiberty_setenv
+#define unsetenv libiberty_unsetenv
+
#include "ansidecl.h"
#include <sys/types.h> /* For `size_t' */
#include <stdio.h> /* For `NULL' */
@@ -61,6 +64,9 @@ extern int errno;
extern char **environ;
#endif
+#undef setenv
+#undef unsetenv
+
/* LOCK and UNLOCK are defined as no-ops. This makes the libiberty
* implementation MT-Unsafe. */
#define LOCK
diff --git a/libiberty/vsprintf.c b/libiberty/vsprintf.c
index bf0760c..b69e9bc 100644
--- a/libiberty/vsprintf.c
+++ b/libiberty/vsprintf.c
@@ -3,7 +3,7 @@
implementations of stdio; newer ones should already have vsprintf.
Written by Per Bothner of Cygnus Support.
Based on libg++'s "form" (written by Doug Lea; dl@rocky.oswego.edu).
- Copyright (C) 1991, 1995 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1995, 2002 Free Software Foundation, Inc.
This file is part of the libiberty library. This library is free
software; you can redistribute it and/or modify it under the
@@ -31,6 +31,8 @@ the executable file might be covered by the GNU General Public License. */
#include <ansidecl.h>
#undef vsprintf
+#if defined _IOSTRG && defined _IOWRT
+
int
vsprintf (buf, format, ap)
char *buf;
@@ -53,3 +55,5 @@ vsprintf (buf, format, ap)
return ret;
}
+
+#endif