mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Add a check for strerr, and add in D'Arcy's strerror() code in case not
found
This commit is contained in:
parent
da9dcf826b
commit
6ffd26d8eb
@ -19,7 +19,7 @@
|
|||||||
# be converted to Method 2.
|
# be converted to Method 2.
|
||||||
#
|
#
|
||||||
# IDENTIFICATION
|
# 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
|
@false
|
||||||
else
|
else
|
||||||
|
|
||||||
OBJS = $(PORTNAME)/SUBSYS.o @INET_ATON@
|
OBJS = $(PORTNAME)/SUBSYS.o @INET_ATON@ @STRERROR@
|
||||||
|
|
||||||
all: submake SUBSYS.o
|
all: submake SUBSYS.o
|
||||||
|
|
||||||
|
30
src/backend/port/strerror.c
Normal file
30
src/backend/port/strerror.c
Normal file
@ -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]);
|
||||||
|
}
|
||||||
|
|
72
src/configure
vendored
72
src/configure
vendored
@ -2955,12 +2955,62 @@ else
|
|||||||
INET_ATON='inet_aton.o'
|
INET_ATON='inet_aton.o'
|
||||||
fi
|
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
|
echo $ac_n "checking for strdup""... $ac_c" 1>&6
|
||||||
if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then
|
if eval "test \"`echo '$''{'ac_cv_func_strdup'+set}'`\" = set"; then
|
||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 2964 "configure"
|
#line 3014 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* System header to define __stub macros and hopefully few prototypes,
|
/* System header to define __stub macros and hopefully few prototypes,
|
||||||
which can conflict with char strdup(); below. */
|
which can conflict with char strdup(); below. */
|
||||||
@ -2984,7 +3034,7 @@ strdup();
|
|||||||
|
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
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*
|
rm -rf conftest*
|
||||||
eval "ac_cv_func_strdup=yes"
|
eval "ac_cv_func_strdup=yes"
|
||||||
else
|
else
|
||||||
@ -3012,7 +3062,7 @@ if eval "test \"`echo '$''{'ac_cv_func_cbrt'+set}'`\" = set"; then
|
|||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 3016 "configure"
|
#line 3066 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* System header to define __stub macros and hopefully few prototypes,
|
/* System header to define __stub macros and hopefully few prototypes,
|
||||||
which can conflict with char cbrt(); below. */
|
which can conflict with char cbrt(); below. */
|
||||||
@ -3036,7 +3086,7 @@ cbrt();
|
|||||||
|
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
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*
|
rm -rf conftest*
|
||||||
eval "ac_cv_func_cbrt=yes"
|
eval "ac_cv_func_cbrt=yes"
|
||||||
else
|
else
|
||||||
@ -3062,7 +3112,7 @@ else
|
|||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="-lm $LIBS"
|
LIBS="-lm $LIBS"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 3066 "configure"
|
#line 3116 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* Override any gcc2 internal prototype to avoid an error. */
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
/* We use char because int might match the return type of a gcc2
|
/* We use char because int might match the return type of a gcc2
|
||||||
@ -3074,7 +3124,7 @@ int t() {
|
|||||||
cbrt()
|
cbrt()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
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*
|
rm -rf conftest*
|
||||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
else
|
else
|
||||||
@ -3102,7 +3152,7 @@ if eval "test \"`echo '$''{'ac_cv_func_rint'+set}'`\" = set"; then
|
|||||||
echo $ac_n "(cached) $ac_c" 1>&6
|
echo $ac_n "(cached) $ac_c" 1>&6
|
||||||
else
|
else
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 3106 "configure"
|
#line 3156 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* System header to define __stub macros and hopefully few prototypes,
|
/* System header to define __stub macros and hopefully few prototypes,
|
||||||
which can conflict with char rint(); below. */
|
which can conflict with char rint(); below. */
|
||||||
@ -3126,7 +3176,7 @@ rint();
|
|||||||
|
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
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*
|
rm -rf conftest*
|
||||||
eval "ac_cv_func_rint=yes"
|
eval "ac_cv_func_rint=yes"
|
||||||
else
|
else
|
||||||
@ -3152,7 +3202,7 @@ else
|
|||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
LIBS="-lm $LIBS"
|
LIBS="-lm $LIBS"
|
||||||
cat > conftest.$ac_ext <<EOF
|
cat > conftest.$ac_ext <<EOF
|
||||||
#line 3156 "configure"
|
#line 3206 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
/* Override any gcc2 internal prototype to avoid an error. */
|
/* Override any gcc2 internal prototype to avoid an error. */
|
||||||
/* We use char because int might match the return type of a gcc2
|
/* We use char because int might match the return type of a gcc2
|
||||||
@ -3164,7 +3214,7 @@ int t() {
|
|||||||
rint()
|
rint()
|
||||||
; return 0; }
|
; return 0; }
|
||||||
EOF
|
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*
|
rm -rf conftest*
|
||||||
eval "ac_cv_lib_$ac_lib_var=yes"
|
eval "ac_cv_lib_$ac_lib_var=yes"
|
||||||
else
|
else
|
||||||
@ -3545,4 +3595,4 @@ EOF
|
|||||||
chmod +x $CONFIG_STATUS
|
chmod +x $CONFIG_STATUS
|
||||||
rm -fr confdefs* $ac_clean_files
|
rm -fr confdefs* $ac_clean_files
|
||||||
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
|
test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
|
||||||
|
|
||||||
|
@ -162,10 +162,11 @@ AC_FUNC_VPRINTF
|
|||||||
AC_CHECK_FUNCS(isinf tzset getrusage vfork memmove sigsetjmp kill sysconf)
|
AC_CHECK_FUNCS(isinf tzset getrusage vfork memmove sigsetjmp kill sysconf)
|
||||||
AC_CHECK_FUNCS(sigprocmask waitpid setsid)
|
AC_CHECK_FUNCS(sigprocmask waitpid setsid)
|
||||||
AC_CHECK_FUNC(inet_aton, AC_DEFINE(HAVE_INET_ATON), INET_ATON='inet_aton.o')
|
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_CHECK_FUNC(strdup, AC_DEFINE(HAVE_STRDUP), STRDUP='../../utils/strdup.o')
|
||||||
AC_SUBST(STRDUP)
|
AC_SUBST(STRDUP)
|
||||||
AC_SUBST(INET_ATON)
|
AC_SUBST(INET_ATON)
|
||||||
AC_CHECK_FUNC(cbrt, AC_DEFINE(HAVE_CBRT), AC_CHECK_LIB(m, cbrt, AC_DEFINE(HAVE_CBRT)))
|
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_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)
|
||||||
|
@ -47,9 +47,12 @@
|
|||||||
/* Set to 1 if you have cbrt() */
|
/* Set to 1 if you have cbrt() */
|
||||||
#undef HAVE_CBRT
|
#undef HAVE_CBRT
|
||||||
|
|
||||||
/* Set to 1 if you have cbrt() */
|
/* Set to 1 if you have inet_aton() */
|
||||||
#undef HAVE_INET_ATON
|
#undef HAVE_INET_ATON
|
||||||
|
|
||||||
|
/* Set to 1 if you have strerror() */
|
||||||
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
/* Set to 1 if you have rint() */
|
/* Set to 1 if you have rint() */
|
||||||
#undef HAVE_RINT
|
#undef HAVE_RINT
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user