]> granicus.if.org Git - postgresql/commitdiff
Add a check for strerr, and add in D'Arcy's strerror() code in case not
authorMarc G. Fournier <scrappy@hub.org>
Wed, 19 Mar 1997 02:37:42 +0000 (02:37 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Wed, 19 Mar 1997 02:37:42 +0000 (02:37 +0000)
found

src/backend/port/Makefile.in
src/backend/port/strerror.c [new file with mode: 0644]
src/configure
src/configure.in
src/include/config.h.in

index a0f281a5384dcf89ae442adb5d50000ffa9a2d15..a2d23188cef1df446a284dabb55ad6bdad54703b 100644 (file)
@@ -19,7 +19,7 @@
 # be converted to Method 2.  
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/backend/port/Attic/Makefile.in,v 1.2 1997/02/28 10:57:47 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/backend/port/Attic/Makefile.in,v 1.3 1997/03/19 02:33:29 scrappy Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -31,7 +31,7 @@ ifndef PORTNAME
        @false
 else
 
-OBJS = $(PORTNAME)/SUBSYS.o @INET_ATON@
+OBJS = $(PORTNAME)/SUBSYS.o @INET_ATON@ @STRERROR@
 
 all: submake SUBSYS.o
 
diff --git a/src/backend/port/strerror.c b/src/backend/port/strerror.c
new file mode 100644 (file)
index 0000000..7ec842e
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * strerror - map error number to descriptive string
+ *
+ * This version is obviously somewhat Unix-specific.
+ *
+ * based on code by Henry Spencer
+ * modified for ANSI by D'Arcy J.M. Cain
+ */
+
+#include        <string.h>
+#include        <stdio.h>
+#include        <errno.h>
+
+extern const char * const sys_errlist[];
+extern int sys_nerr;
+
+const char *
+strerror(int errnum)
+{
+        static char     buf[24];
+
+        if (errnum < 0 || errnum > sys_nerr)
+        {
+                sprintf(buf, "unknown error %d", errnum);
+                return(buf);
+        }
+
+        return(sys_errlist[errnum]);
+}
+
index af79bfc18dd712907c906aafd811c3c2bda60ec8..51d6a8c729175c8cad8a03ea4e510dec169a01d9 100755 (executable)
@@ -2955,12 +2955,62 @@ else
 INET_ATON='inet_aton.o'
 fi
 
+echo $ac_n "checking for strerror""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2964 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char strerror(); 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 strerror();
+
+int main() { return 0; }
+int t() {
+
+/* 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_strerror) || defined (__stub___strerror)
+choke me
+#else
+strerror();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  rm -rf conftest*
+  eval "ac_cv_func_strerror=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_func_strerror=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_func_'strerror`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_STRERROR 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+STRERROR='strerror.o'
+fi
+
 echo $ac_n "checking for strdup""... $ac_c" 1>&6
 if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2964 "configure"
+#line 3014 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char strdup(); below.  */
@@ -2984,7 +3034,7 @@ strdup();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:3038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_func_strdup=yes"
 else
@@ -3012,7 +3062,7 @@ if eval "test \"`echo '$''{'ac_cv_func_cbrt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3016 "configure"
+#line 3066 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char cbrt(); below.  */
@@ -3036,7 +3086,7 @@ cbrt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:3090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_func_cbrt=yes"
 else
@@ -3062,7 +3112,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3066 "configure"
+#line 3116 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3074,7 +3124,7 @@ int t() {
 cbrt()
 ; return 0; }
 EOF
-if { (eval echo configure:3078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:3128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3102,7 +3152,7 @@ if eval "test \"`echo '$''{'ac_cv_func_rint'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3106 "configure"
+#line 3156 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char rint(); below.  */
@@ -3126,7 +3176,7 @@ rint();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:3180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_func_rint=yes"
 else
@@ -3152,7 +3202,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3156 "configure"
+#line 3206 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3164,7 +3214,7 @@ int t() {
 rint()
 ; return 0; }
 EOF
-if { (eval echo configure:3168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+if { (eval echo configure:3218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3545,4 +3595,4 @@ EOF
 chmod +x $CONFIG_STATUS
 rm -fr confdefs* $ac_clean_files
 test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
index 9b243e5cc5541b3afdab933542eddba9d8666922..d5d18f07dbc19d5f02655dd7883fc2164bd2f844 100644 (file)
@@ -162,10 +162,11 @@ AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(isinf tzset getrusage vfork memmove sigsetjmp kill sysconf)
 AC_CHECK_FUNCS(sigprocmask waitpid setsid)
 AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON), INET_ATON='inet_aton.o')
+AC_CHECK_FUNC(strerror, AC_DEFINE(HAVE_STRERROR), STRERROR='strerror.o')
 AC_CHECK_FUNC(strdup, AC_DEFINE(HAVE_STRDUP), STRDUP='../../utils/strdup.o')
 AC_SUBST(STRDUP)
 AC_SUBST(INET_ATON)
 AC_CHECK_FUNC(cbrt, AC_DEFINE(HAVE_CBRT), AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT)))
 AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT), AC_CHECK_LIB(m, rint, AC_DEFINE(HAVE_RINT)))
 
-AC_OUTPUT(GNUmakefile Makefile.global backend/port/Makefile bin/psql/Makefile bin/pg_dump/Makefile)
+AC_OUTPUT(GNUmakefile Makefile.global backend/port/Makefile bin/psql/Makefile bin/pg_dump/Makefile) 
index 99973dde07f7d38dec03d3d4e02a18ffcbf984de..80d42fdd1af92d8d4ce843a2da042461e467537d 100644 (file)
 /* Set to 1 if you have cbrt() */
 #undef HAVE_CBRT
 
-/* Set to 1 if you have cbrt() */
+/* Set to 1 if you have inet_aton() */
 #undef HAVE_INET_ATON
 
+/* Set to 1 if you have strerror() */
+#undef HAVE_STRERROR
+
 /* Set to 1 if you have rint() */
 #undef HAVE_RINT