summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-01 17:02:53 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-01 17:02:53 +0000
commit9f7e7c7c3865a91fb77c1145ed4b3b92b457829f (patch)
treeaf45a06594372a8ce31307986642e8135b3e6fb6
parent7561ae90b3f0d4a3a0d5c0042a75dcb53a104c91 (diff)
downloadgcc-9f7e7c7c3865a91fb77c1145ed4b3b92b457829f.tar.gz
* 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
-rw-r--r--gcc/ChangeLog19
-rw-r--r--gcc/cccp.c4
-rw-r--r--gcc/collect2.c4
-rw-r--r--gcc/config.in3
-rw-r--r--gcc/config/alpha/xm-linux.h1
-rw-r--r--gcc/config/i386/xm-bsd386.h2
-rw-r--r--gcc/config/i386/xm-cygwin32.h1
-rw-r--r--gcc/config/i386/xm-dos.h3
-rw-r--r--gcc/config/i386/xm-mingw32.h1
-rw-r--r--gcc/config/pa/xm-pa.h3
-rw-r--r--gcc/config/pa/xm-papro.h3
-rw-r--r--gcc/config/rs6000/xm-cygwin32.h1
-rw-r--r--gcc/config/rs6000/xm-sysv4.h3
-rw-r--r--gcc/config/xm-freebsd.h3
-rw-r--r--gcc/config/xm-gnu.h1
-rw-r--r--gcc/config/xm-linux.h3
-rw-r--r--gcc/config/xm-netbsd.h1
-rwxr-xr-xgcc/configure56
-rw-r--r--gcc/configure.in2
-rw-r--r--gcc/cpplib.c4
-rw-r--r--gcc/gcc.c4
-rw-r--r--gcc/protoize.c4
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 <signal.h>. */
#undef SYS_SIGLIST_DECLARED
+/* Define if you have the strerror function. */
+#undef HAVE_STRERROR
+
/* Define if you have the <stddef.h> 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 <<EOF
+#line 1572 "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: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 <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&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