issue #1746656: Fix for OS X. configure and #include changes so that the socket

module compiles again on OS X with its more annoying #include requirements.
This commit is contained in:
Gregory P. Smith 2011-05-15 12:18:23 -07:00
parent 4d58fdb1a6
commit 3b1f2c35f4
3 changed files with 55 additions and 2 deletions

View File

@ -256,6 +256,14 @@ if_indextoname(index) -- returns the corresponding interface name\n\
#include <sys/types.h> #include <sys/types.h>
#endif #endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NET_IF_H
#include <net/if.h>
#endif
/* Generic socket object definitions and includes */ /* Generic socket object definitions and includes */
#define PySocket_BUILDING_SOCKET #define PySocket_BUILDING_SOCKET
#include "socketmodule.h" #include "socketmodule.h"

30
configure vendored
View File

@ -6037,7 +6037,7 @@ sys/lock.h sys/mkdev.h sys/modem.h \
sys/param.h sys/poll.h sys/select.h sys/sendfile.h sys/socket.h sys/statvfs.h \ sys/param.h sys/poll.h sys/select.h sys/sendfile.h sys/socket.h sys/statvfs.h \
sys/stat.h sys/termio.h sys/time.h \ sys/stat.h sys/termio.h sys/time.h \
sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \
libutil.h sys/resource.h net/if.h netpacket/packet.h sysexits.h bluetooth.h \ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
bluetooth/bluetooth.h linux/tipc.h spawn.h util.h bluetooth/bluetooth.h linux/tipc.h spawn.h util.h
do : do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@ -6260,6 +6260,34 @@ fi
fi fi
# On Darwin (OS X) net/if.h requires sys/socket.h to be imported first.
for ac_header in net/if.h
do :
ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
"
if test "x$ac_cv_header_net_if_h" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_NET_IF_H 1
_ACEOF
fi
done
# On Solaris, term.h requires curses.h # On Solaris, term.h requires curses.h
for ac_header in term.h for ac_header in term.h
do : do :

View File

@ -1293,11 +1293,28 @@ sys/lock.h sys/mkdev.h sys/modem.h \
sys/param.h sys/poll.h sys/select.h sys/sendfile.h sys/socket.h sys/statvfs.h \ sys/param.h sys/poll.h sys/select.h sys/sendfile.h sys/socket.h sys/statvfs.h \
sys/stat.h sys/termio.h sys/time.h \ sys/stat.h sys/termio.h sys/time.h \
sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \
libutil.h sys/resource.h net/if.h netpacket/packet.h sysexits.h bluetooth.h \ libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
bluetooth/bluetooth.h linux/tipc.h spawn.h util.h) bluetooth/bluetooth.h linux/tipc.h spawn.h util.h)
AC_HEADER_DIRENT AC_HEADER_DIRENT
AC_HEADER_MAJOR AC_HEADER_MAJOR
# On Darwin (OS X) net/if.h requires sys/socket.h to be imported first.
AC_CHECK_HEADERS([net/if.h], [], [],
[#include <stdio.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
# On Solaris, term.h requires curses.h # On Solaris, term.h requires curses.h
AC_CHECK_HEADERS(term.h,,,[ AC_CHECK_HEADERS(term.h,,,[
#ifdef HAVE_CURSES_H #ifdef HAVE_CURSES_H