diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 43a2951dae1..cb53fb61827 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,22 @@ +2002-01-18 DJ Delorie + + * 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 * mkstemps.c (mkstemps): On VMS, open temp file with option diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in index 093c449328c..5fa96302812 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 +# (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. -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 +# 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 -alloca.o: config.h $(INCDIR)/libiberty.h +# The dependencies in the remainder of this file are automatically +# generated by "make maint-deps". Manual edits will be lost. + +_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 a91e27f4127..8ce14158c99 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 #endif +#ifdef HAVE_STDLIB_H +#include +#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 8ddd98d07e3..be1fa94a5f1 100755 --- a/libiberty/configure +++ b/libiberty/configure @@ -2734,23 +2734,79 @@ 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 - if eval "test \"`echo '$''{'libiberty_cv_var_$v'+set}'`\" = set"; then + 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 < +/* 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 <&6 +fi +done + + fi + + for v in $vars; do + echo $ac_n "checking for $v""... $ac_c" 1>&6 +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 <&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 <&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 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 <&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 < #include +#if HAVE_SYS_TYPES_H +# include +#endif + +#if HAVE_STDLIB_H +# include +#endif + +#if HAVE_SYS_STAT_H +# include +#endif + +#if HAVE_UNISTD_H +# include +#endif + /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE -# ifdef HAVE_UNISTD_H -# include -# 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 <&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 335737045b5..0160edfc596 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 0b5f8c3d9df..5c48a5422eb 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 75b0c508cd9..ceeb48dbf39 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 () { + 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 () { + 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/putenv.c b/libiberty/putenv.c index 58012fc83ad..6d027dc5aaa 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 #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 79e38ed56b0..8394fafe4e1 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 #endif +#define setenv libiberty_setenv +#define unsetenv libiberty_unsetenv + #include "ansidecl.h" #include /* For `size_t' */ #include /* 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 bf0760cf6d3..b69e9bc9ca6 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 #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