summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS2
-rw-r--r--Modules/_multiprocessing/multiprocessing.h2
-rw-r--r--Modules/readline.c8
-rwxr-xr-xconfigure24
-rw-r--r--configure.in24
-rw-r--r--setup.py2
6 files changed, 37 insertions, 25 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 9030c73..e4a898f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -61,6 +61,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 <fcntl.h> /* O_CREAT and O_EXCL */
+# include <netinet/in.h>
# include <sys/socket.h>
+# include <sys/uio.h>
# include <arpa/inet.h> /* htonl() and ntohl() */
# if HAVE_SEM_OPEN
# include <semaphore.h>
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 ffc351d..3cdd3d3 100755
--- a/configure
+++ b/configure
@@ -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 ee7048b..352bf76 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