Fix portability problems with glibc 2.0, as reported in #449157.

This commit is contained in:
Martin v. Löwis 2001-08-15 17:14:33 +00:00
parent 834a85a235
commit f95dd0a298
7 changed files with 23 additions and 4 deletions

View File

@ -527,6 +527,8 @@ init_locale(void)
ADDINT(ABMON_11); ADDINT(ABMON_11);
ADDINT(ABMON_12); ADDINT(ABMON_12);
#ifdef RADIXCHAR
/* The following are not available with glibc 2.0 */
ADDINT(RADIXCHAR); ADDINT(RADIXCHAR);
ADDINT(THOUSEP); ADDINT(THOUSEP);
/* YESSTR and NOSTR are deprecated in glibc, since they are /* YESSTR and NOSTR are deprecated in glibc, since they are
@ -537,6 +539,7 @@ init_locale(void)
ADDINT(NOSTR); ADDINT(NOSTR);
*/ */
ADDINT(CRNCYSTR); ADDINT(CRNCYSTR);
#endif
ADDINT(D_T_FMT); ADDINT(D_T_FMT);
ADDINT(D_FMT); ADDINT(D_FMT);

View File

@ -67,6 +67,10 @@
#define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG) #define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG)
#endif #endif
#endif /* HAVE_GETADDRINFO */
#ifndef HAVE_GETNAMEINFO
/* /*
* Constants for getnameinfo() * Constants for getnameinfo()
*/ */
@ -86,6 +90,8 @@
#define NI_DGRAM 0x00000010 #define NI_DGRAM 0x00000010
#endif #endif
#endif /* HAVE_GETNAMEINFO */
#ifndef HAVE_ADDRINFO #ifndef HAVE_ADDRINFO
struct addrinfo { struct addrinfo {
int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
@ -137,4 +143,3 @@ extern void freehostent Py_PROTO((struct hostent *));
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif

View File

@ -81,6 +81,10 @@ struct gni_sockinet {
#define ENI_FAMILY 5 #define ENI_FAMILY 5
#define ENI_SALEN 6 #define ENI_SALEN 6
/* forward declaration to make gcc happy */
int getnameinfo Py_PROTO((const struct sockaddr *, size_t, char *, size_t,
char *, size_t, int));
int int
getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
const struct sockaddr *sa; const struct sockaddr *sa;

View File

@ -447,7 +447,11 @@ PyGAI_Err(int error)
if (error == EAI_SYSTEM) if (error == EAI_SYSTEM)
return PySocket_Err(); return PySocket_Err();
#ifdef HAVE_GAI_STRERROR
v = Py_BuildValue("(is)", error, gai_strerror(error)); v = Py_BuildValue("(is)", error, gai_strerror(error));
#else
v = Py_BuildValue("(is)", error, "getaddrinfo failed");
#endif
if (v != NULL) { if (v != NULL) {
PyErr_SetObject(PyGAI_Error, v); PyErr_SetObject(PyGAI_Error, v);
Py_DECREF(v); Py_DECREF(v);

4
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# From configure.in Revision: 1.245 # From configure.in Revision: 1.246
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.13 # Generated automatically using autoconf version 2.13
@ -4570,7 +4570,7 @@ echo "$ac_t""MACHDEP_OBJS" 1>&6
# checks for library functions # checks for library functions
for ac_func in alarm chown clock confstr ctermid ctermid_r execv \ for ac_func in alarm chown clock confstr ctermid ctermid_r execv \
flock fork fsync fdatasync fpathconf ftime ftruncate \ flock fork fsync fdatasync fpathconf ftime ftruncate \
getgroups getlogin getpeername getpid getpwent getwd \ gai_strerror getgroups getlogin getpeername getpid getpwent getwd \
hstrerror inet_pton kill link lstat mkfifo mktime mremap \ hstrerror inet_pton kill link lstat mkfifo mktime mremap \
nice pathconf pause plock poll pthread_init \ nice pathconf pause plock poll pthread_init \
putenv readlink \ putenv readlink \

View File

@ -1236,7 +1236,7 @@ AC_MSG_RESULT(MACHDEP_OBJS)
# checks for library functions # checks for library functions
AC_CHECK_FUNCS(alarm chown clock confstr ctermid ctermid_r execv \ AC_CHECK_FUNCS(alarm chown clock confstr ctermid ctermid_r execv \
flock fork fsync fdatasync fpathconf ftime ftruncate \ flock fork fsync fdatasync fpathconf ftime ftruncate \
getgroups getlogin getpeername getpid getpwent getwd \ gai_strerror getgroups getlogin getpeername getpid getpwent getwd \
hstrerror inet_pton kill link lstat mkfifo mktime mremap \ hstrerror inet_pton kill link lstat mkfifo mktime mremap \
nice pathconf pause plock poll pthread_init \ nice pathconf pause plock poll pthread_init \
putenv readlink \ putenv readlink \

View File

@ -371,6 +371,9 @@
/* Define if you have the ftruncate function. */ /* Define if you have the ftruncate function. */
#undef HAVE_FTRUNCATE #undef HAVE_FTRUNCATE
/* Define if you have the gai_strerror function. */
#undef HAVE_GAI_STRERROR
/* Define if you have the getaddrinfo function. */ /* Define if you have the getaddrinfo function. */
#undef HAVE_GETADDRINFO #undef HAVE_GETADDRINFO