diff --git a/Misc/NEWS b/Misc/NEWS index 6d61192fb54..7de06851fc0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -96,6 +96,8 @@ Build - Issue #4018: Disable "for me" installations on Vista. +- Issue #4204: Fixed module build errors on FreeBSD 4. + Tools/Demos ----------- diff --git a/Modules/_multiprocessing/multiprocessing.h b/Modules/_multiprocessing/multiprocessing.h index 0b327905ea3..2bfad875017 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 837194208ff..22f3dc04942 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 b65632ce376..08b3c1ebe1b 100755 --- a/configure +++ b/configure @@ -2098,11 +2098,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 @@ -2114,13 +2121,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 fe3c34422b6..f34ffd8420f 100644 --- a/configure.in +++ b/configure.in @@ -275,11 +275,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 @@ -291,13 +298,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 90afb75da82..d2931d16922 100644 --- a/setup.py +++ b/setup.py @@ -1011,7 +1011,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