From bb86d831340239e50036ef4f524bd90a727fdcd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Tue, 4 Nov 2008 20:40:09 +0000 Subject: Issue #4204: Fixed module build errors on FreeBSD 4. --- Misc/NEWS | 2 ++ Modules/_multiprocessing/multiprocessing.h | 2 ++ Modules/readline.c | 8 ++++++++ configure | 26 +++++++++++++------------- configure.in | 24 ++++++++++++------------ setup.py | 2 +- 6 files changed, 38 insertions(+), 26 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 1aa57c8..a430b83 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -63,6 +63,8 @@ Build - Issue #3758: Add ``patchcheck`` build target to .PHONY. +- Issue #4204: Fixed module build errors on FreeBSD 4. + C-API ----- diff --git a/Modules/_multiprocessing/multiprocessing.h b/Modules/_multiprocessing/multiprocessing.h index 0b32790..2bfad87 100644 --- a/Modules/_multiprocessing/multiprocessing.h +++ b/Modules/_multiprocessing/multiprocessing.h @@ -20,7 +20,9 @@ # define SEM_VALUE_MAX LONG_MAX #else # include /* O_CREAT and O_EXCL */ +# include # include +# include # include /* htonl() and ntohl() */ # if HAVE_SEM_OPEN # include diff --git a/Modules/readline.c b/Modules/readline.c index 90904ab..f5a54bc 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -35,7 +35,11 @@ #define completion_matches(x, y) \ rl_completion_matches((x), ((rl_compentry_func_t *)(y))) #else +#if defined(_RL_FUNCTION_TYPEDEF) extern char **completion_matches(char *, rl_compentry_func_t *); +#else +extern char **completion_matches(char *, CPFunction *); +#endif #endif static void @@ -213,7 +217,11 @@ set_completion_display_matches_hook(PyObject *self, PyObject *args) default completion display. */ rl_completion_display_matches_hook = completion_display_matches_hook ? +#if defined(_RL_FUNCTION_TYPEDEF) (rl_compdisp_func_t *)on_completion_display_matches_hook : 0; +#else + (VFunction *)on_completion_display_matches_hook : 0; +#endif #endif return result; diff --git a/configure b/configure index f303e1a..63d5b1d 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 66295 . +# From configure.in Revision: 66764 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for python 2.7. # @@ -2105,11 +2105,18 @@ _ACEOF # but used in struct sockaddr.sa_family. Reported by Tim Rice. SCO_SV/3.2) define_xopen_source=no;; - # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that - # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently, - # this is fixed in 10.3, which identifies itself as Darwin/7.* - # This should hopefully be fixed in FreeBSD 4.9 - FreeBSD/4.8* | Darwin/6* ) + # On FreeBSD 4, the math functions C89 does not cover are never defined + # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them. + FreeBSD/4.*) + define_xopen_source=no;; + # On MacOS X 10.2, a bug in ncurses.h means that it craps out if + # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which + # identifies itself as Darwin/7.* + # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE + # disables platform specific features beyond repair. + # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE + # has no effect, don't bother defining them + Darwin/[6789].*) define_xopen_source=no;; # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined @@ -2121,13 +2128,6 @@ _ACEOF define_xopen_source=no fi ;; - # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE - # disables platform specific features beyond repair. - # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE - # has no effect, don't bother defining them - Darwin/[789].*) - define_xopen_source=no - ;; # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from # defining NI_NUMERICHOST. QNX/6.3.2) diff --git a/configure.in b/configure.in index fd84170..8b9d377 100644 --- a/configure.in +++ b/configure.in @@ -276,11 +276,18 @@ case $ac_sys_system/$ac_sys_release in # but used in struct sockaddr.sa_family. Reported by Tim Rice. SCO_SV/3.2) define_xopen_source=no;; - # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that - # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently, - # this is fixed in 10.3, which identifies itself as Darwin/7.* - # This should hopefully be fixed in FreeBSD 4.9 - FreeBSD/4.8* | Darwin/6* ) + # On FreeBSD 4, the math functions C89 does not cover are never defined + # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them. + FreeBSD/4.*) + define_xopen_source=no;; + # On MacOS X 10.2, a bug in ncurses.h means that it craps out if + # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which + # identifies itself as Darwin/7.* + # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE + # disables platform specific features beyond repair. + # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE + # has no effect, don't bother defining them + Darwin/@<:@6789@:>@.*) define_xopen_source=no;; # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined @@ -292,13 +299,6 @@ case $ac_sys_system/$ac_sys_release in define_xopen_source=no fi ;; - # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE - # disables platform specific features beyond repair. - # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE - # has no effect, don't bother defining them - Darwin/@<:@789@:>@.*) - define_xopen_source=no - ;; # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from # defining NI_NUMERICHOST. QNX/6.3.2) diff --git a/setup.py b/setup.py index 36a0d77..5c37e45 100644 --- a/setup.py +++ b/setup.py @@ -1261,7 +1261,7 @@ class PyBuildExt(build_ext): ) libraries = [] - elif platform in ('freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'): + elif platform in ('freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'): # FreeBSD's P1003.1b semaphore support is very experimental # and has many known problems. (as of June 2008) macros = dict( # FreeBSD -- cgit v0.12