From 9f7e7c7c3865a91fb77c1145ed4b3b92b457829f Mon Sep 17 00:00:00 2001 From: law Date: Mon, 1 Sep 1997 17:02:53 +0000 Subject: [PATCH] * cccp.c (sys_errlist): Remove special 4.4bsd declaration. * collect2.c (sys_errlist): Likewise. * cpplib.c (sys_errlist): Likewise. * gcc.c (sys_errlist): Likewise. * protoize (sys_errlist): Likewise. * configure.in: Check for strerror. * xm-freebsd.h (HAVE_STRERROR): Remove definition. * xm-gnu.h (HAVE_STRERROR): Likewise. * xm-linux.h (HAVE_STRERROR): Likewise. * xm-netbsd.h (HAVE_STRERROR): Likewise. * xm-bsd386.h (HAVE_STRERROR): Likewise. * xm-cygwin32.h (HAVE_STRERROR): Likewise. * xm-dos.h (HAVE_STRERROR): Likewise. * xm-mingw32.h (HAVE_STRERROR): Likewise. * xm-pa.h (HAVE_STRERROR): Likewise. * xm-papro.h (HAVE_STRERROR): Likewise. * xm-sysv4.h (HAVE_STRERROR): Likewise. * configure, config.in: Rebuilt. Remove the need to define HAVE_STRERROR for each host port. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15011 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 19 ++++++++++++++ gcc/cccp.c | 4 --- gcc/collect2.c | 4 --- gcc/config.in | 3 +++ gcc/config/alpha/xm-linux.h | 1 - gcc/config/i386/xm-bsd386.h | 2 -- gcc/config/i386/xm-cygwin32.h | 1 - gcc/config/i386/xm-dos.h | 3 --- gcc/config/i386/xm-mingw32.h | 1 - gcc/config/pa/xm-pa.h | 3 --- gcc/config/pa/xm-papro.h | 3 --- gcc/config/rs6000/xm-cygwin32.h | 1 - gcc/config/rs6000/xm-sysv4.h | 3 --- gcc/config/xm-freebsd.h | 3 --- gcc/config/xm-gnu.h | 1 - gcc/config/xm-linux.h | 3 --- gcc/config/xm-netbsd.h | 1 - gcc/configure | 56 +++++++++++++++++++++++++++++++++++++++++ gcc/configure.in | 2 ++ gcc/cpplib.c | 4 --- gcc/gcc.c | 4 --- gcc/protoize.c | 4 --- 22 files changed, 80 insertions(+), 46 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b2732bc922..e7fdc68a310 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,24 @@ Mon Sep 1 08:29:46 1997 Jeffrey A Law (law@cygnus.com) + * cccp.c (sys_errlist): Remove special 4.4bsd declaration. + * collect2.c (sys_errlist): Likewise. + * cpplib.c (sys_errlist): Likewise. + * gcc.c (sys_errlist): Likewise. + * protoize (sys_errlist): Likewise. + * configure.in: Check for strerror. + * xm-freebsd.h (HAVE_STRERROR): Remove definition. + * xm-gnu.h (HAVE_STRERROR): Likewise. + * xm-linux.h (HAVE_STRERROR): Likewise. + * xm-netbsd.h (HAVE_STRERROR): Likewise. + * xm-bsd386.h (HAVE_STRERROR): Likewise. + * xm-cygwin32.h (HAVE_STRERROR): Likewise. + * xm-dos.h (HAVE_STRERROR): Likewise. + * xm-mingw32.h (HAVE_STRERROR): Likewise. + * xm-pa.h (HAVE_STRERROR): Likewise. + * xm-papro.h (HAVE_STRERROR): Likewise. + * xm-sysv4.h (HAVE_STRERROR): Likewise. + * configure, config.in: Rebuilt. + * Makefile.in: Add several missing "else true" clauses. * collect2.c: Change DONT_DECLARE_SYS_SIGLIST to SYS_SIGLIST_DECLARED. diff --git a/gcc/cccp.c b/gcc/cccp.c index 0df37379490..9a1108e6d0f 100644 --- a/gcc/cccp.c +++ b/gcc/cccp.c @@ -306,11 +306,7 @@ extern char *version_string; #ifndef VMS #ifndef HAVE_STRERROR extern int sys_nerr; -#if defined(bsd4_4) -extern const char *const sys_errlist[]; -#else extern char *sys_errlist[]; -#endif #else /* HAVE_STRERROR */ char *strerror (); #endif diff --git a/gcc/collect2.c b/gcc/collect2.c index 13cb59367bb..7c17824cc01 100644 --- a/gcc/collect2.c +++ b/gcc/collect2.c @@ -45,11 +45,7 @@ extern int errno; #endif #ifndef HAVE_STRERROR -#if defined(bsd4_4) -extern const char *const sys_errlist[]; -#else extern char *sys_errlist[]; -#endif extern int sys_nerr; #else char *strerror(); diff --git a/gcc/config.in b/gcc/config.in index f14c397b9dc..3200bbb2ef1 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -19,6 +19,9 @@ /* Define if `sys_siglist' is declared by . */ #undef SYS_SIGLIST_DECLARED +/* Define if you have the strerror function. */ +#undef HAVE_STRERROR + /* Define if you have the header file. */ #undef HAVE_STDDEF_H diff --git a/gcc/config/alpha/xm-linux.h b/gcc/config/alpha/xm-linux.h index 1333d2160c3..ea180dfb027 100644 --- a/gcc/config/alpha/xm-linux.h +++ b/gcc/config/alpha/xm-linux.h @@ -1,2 +1 @@ -#define HAVE_STRERROR #define USE_BFD diff --git a/gcc/config/i386/xm-bsd386.h b/gcc/config/i386/xm-bsd386.h index abcce3f01cb..6b8eee7db03 100644 --- a/gcc/config/i386/xm-bsd386.h +++ b/gcc/config/i386/xm-bsd386.h @@ -1,5 +1,3 @@ /* Configuration for GCC for Intel i386 running BSDI's BSD/386 as host. */ #include "i386/xm-i386.h" - -#define HAVE_STRERROR diff --git a/gcc/config/i386/xm-cygwin32.h b/gcc/config/i386/xm-cygwin32.h index b3f4c04b5fb..c45e75cd773 100644 --- a/gcc/config/i386/xm-cygwin32.h +++ b/gcc/config/i386/xm-cygwin32.h @@ -20,7 +20,6 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define NO_STAB_H -#define HAVE_STRERROR #define HAVE_RUSAGE #define HAVE_FILE_H #define EXECUTABLE_SUFFIX ".exe" diff --git a/gcc/config/i386/xm-dos.h b/gcc/config/i386/xm-dos.h index 1dd0c013b1d..e6e06f4e809 100644 --- a/gcc/config/i386/xm-dos.h +++ b/gcc/config/i386/xm-dos.h @@ -15,6 +15,3 @@ #define MKTEMP_EACH_FILE 1 #define NO_PRECOMPILES 1 - -/* sys_errlist proto in cccp.c doesn't match djgpp */ -#define HAVE_STRERROR diff --git a/gcc/config/i386/xm-mingw32.h b/gcc/config/i386/xm-mingw32.h index 57ff72abf30..b6bd1c3ee3e 100644 --- a/gcc/config/i386/xm-mingw32.h +++ b/gcc/config/i386/xm-mingw32.h @@ -20,7 +20,6 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define NO_STAB_H -#define HAVE_STRERROR #define HAVE_RUSAGE #define HAVE_FILE_H diff --git a/gcc/config/pa/xm-pa.h b/gcc/config/pa/xm-pa.h index 3d86e88986c..0249055bf6e 100644 --- a/gcc/config/pa/xm-pa.h +++ b/gcc/config/pa/xm-pa.h @@ -50,9 +50,6 @@ extern int errno; /* Don't try to use sys_siglist. */ #define NO_SYS_SIGLIST -/* We have strerror, don't try to use sys_errlist. */ -#define HAVE_STRERROR - /* 4.3BSD, OSF1 and Lites on the PA are all derived from NET2 or later code from Berkeley. */ #define __BSD_NET2__ diff --git a/gcc/config/pa/xm-papro.h b/gcc/config/pa/xm-papro.h index 66ec811b4ac..d36e2015ce7 100644 --- a/gcc/config/pa/xm-papro.h +++ b/gcc/config/pa/xm-papro.h @@ -50,9 +50,6 @@ extern int errno; /* Don't try to use sys_siglist. */ #define NO_SYS_SIGLIST -/* We have strerror, don't try to use sys_errlist. */ -#define HAVE_STRERROR - /* HP's compiler has problems with enum bitfields. */ #define ONLY_INT_FIELDS diff --git a/gcc/config/rs6000/xm-cygwin32.h b/gcc/config/rs6000/xm-cygwin32.h index f7e30a15524..158e54edc0f 100644 --- a/gcc/config/rs6000/xm-cygwin32.h +++ b/gcc/config/rs6000/xm-cygwin32.h @@ -23,7 +23,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "rs6000/xm-rs6000.h" -#define HAVE_STRERROR #define HAVE_RUSAGE #define HAVE_FILE_H #define EXECUTABLE_SUFFIX ".exe" diff --git a/gcc/config/rs6000/xm-sysv4.h b/gcc/config/rs6000/xm-sysv4.h index 3a13a579461..5089c7dd467 100644 --- a/gcc/config/rs6000/xm-sysv4.h +++ b/gcc/config/rs6000/xm-sysv4.h @@ -56,9 +56,6 @@ extern char *alloca (); #define ONLY_INT_FIELDS #endif -/* We have STRERROR */ -#define HAVE_STRERROR - #ifdef __PPC__ #ifndef __STDC__ extern char *malloc (), *realloc (), *calloc (); diff --git a/gcc/config/xm-freebsd.h b/gcc/config/xm-freebsd.h index ab3aa114382..b71ff56ca10 100644 --- a/gcc/config/xm-freebsd.h +++ b/gcc/config/xm-freebsd.h @@ -22,6 +22,3 @@ Boston, MA 02111-1307, USA. */ running FreeBSD. This file should not be specified as $xm_file itself; instead $xm_file should be CPU/xm-freebsd.h, which should include both CPU/xm-CPU.h and this file xm-freebsd.h. */ - -/* FreeBSD has strerror. */ -#define HAVE_STRERROR diff --git a/gcc/config/xm-gnu.h b/gcc/config/xm-gnu.h index 62debf6de94..64e8e2fa817 100644 --- a/gcc/config/xm-gnu.h +++ b/gcc/config/xm-gnu.h @@ -23,7 +23,6 @@ Boston, MA 02111-1307, USA. */ instead $xm_file should be CPU/xm-gnu.h, which should include both CPU/xm-CPU.h and this file xm-gnu.h. */ -#define HAVE_STRERROR /* GNU has strerror. */ #define POSIX /* GNU complies to POSIX.1. */ #ifndef inhibit_libc diff --git a/gcc/config/xm-linux.h b/gcc/config/xm-linux.h index 4ccf001173b..2a2b62bc964 100644 --- a/gcc/config/xm-linux.h +++ b/gcc/config/xm-linux.h @@ -22,9 +22,6 @@ Boston, MA 02111-1307, USA. */ #undef HAVE_VPRINTF #define HAVE_VPRINTF -#undef HAVE_STRERROR -#define HAVE_STRERROR - #undef HAVE_POPEN #define HAVE_POPEN diff --git a/gcc/config/xm-netbsd.h b/gcc/config/xm-netbsd.h index 00000ce9706..099a9234ffa 100644 --- a/gcc/config/xm-netbsd.h +++ b/gcc/config/xm-netbsd.h @@ -23,5 +23,4 @@ Boston, MA 02111-1307, USA. */ instead $xm_file should be CPU/xm-netbsd.h, which should include both CPU/xm-CPU.h and this file xm-netbsd.h. */ -#define HAVE_STRERROR #define HAVE_VPRINTF diff --git a/gcc/configure b/gcc/configure index b91c782f123..0e16d03cc16 100755 --- a/gcc/configure +++ b/gcc/configure @@ -1560,6 +1560,62 @@ EOF fi +for ac_func in strerror +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1567: 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:1595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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 + + # File extensions manext='.1' objext='.o' diff --git a/gcc/configure.in b/gcc/configure.in index cb2d6f1bffc..2611ed85907 100644 --- a/gcc/configure.in +++ b/gcc/configure.in @@ -142,6 +142,8 @@ GCC_NEED_DECLARATION(free) AC_DECL_SYS_SIGLIST +AC_CHECK_FUNCS(strerror) + # File extensions manext='.1' objext='.o' diff --git a/gcc/cpplib.c b/gcc/cpplib.c index 50ef8caae34..2f0fff79f64 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -7483,11 +7483,7 @@ extern int errno; #ifndef VMS #ifndef HAVE_STRERROR extern int sys_nerr; -#if defined(bsd4_4) -extern const char *const sys_errlist[]; -#else extern char *sys_errlist[]; -#endif #else /* HAVE_STRERROR */ char *strerror (); #endif diff --git a/gcc/gcc.c b/gcc/gcc.c index c09285b6270..a03f972c655 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -143,11 +143,7 @@ extern int errno; #ifndef HAVE_STRERROR extern int sys_nerr; -#if defined(bsd4_4) -extern const char *const sys_errlist[]; -#else extern char *sys_errlist[]; -#endif #else extern char *strerror(); #endif diff --git a/gcc/protoize.c b/gcc/protoize.c index bf5cfc764d2..bd4ac02bf56 100644 --- a/gcc/protoize.c +++ b/gcc/protoize.c @@ -89,11 +89,7 @@ extern int errno; #ifndef HAVE_STRERROR extern int sys_nerr; -#if defined(bsd4_4) -extern const char *const sys_errlist[]; -#else extern char *sys_errlist[]; -#endif #else extern char *strerror(); #endif -- 2.11.0