diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2010-09-07 14:52:42 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-09-07 14:52:42 (GMT) |
commit | a300007c6e047bfdd7ab8f9bef35c0929d7dbbc8 (patch) | |
tree | b82fed94f912ef39470f4a3b1e576d30daf8190b | |
parent | 19651369e4f195633aa4be97ce8ccdb97289af5f (diff) | |
download | cpython-a300007c6e047bfdd7ab8f9bef35c0929d7dbbc8.zip cpython-a300007c6e047bfdd7ab8f9bef35c0929d7dbbc8.tar.gz cpython-a300007c6e047bfdd7ab8f9bef35c0929d7dbbc8.tar.bz2 |
Issue #4026: Make the fcntl extension build under AIX.
Patch by Sébastien Sablé.
-rw-r--r-- | Misc/NEWS | 6 | ||||
-rwxr-xr-x | configure | 85 | ||||
-rw-r--r-- | configure.in | 18 | ||||
-rw-r--r-- | pyconfig.h.in | 3 | ||||
-rw-r--r-- | setup.py | 6 |
5 files changed, 108 insertions, 10 deletions
@@ -52,6 +52,12 @@ Library guaranteed to exist in all Python implementations and the names of hash algorithms available in the current process. +Build +----- + +- Issue #4026: Make the fcntl extension build under AIX. Patch by Sébastien + Sablé. + What's New in Python 3.2 Alpha 2? ================================= @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 84477 . +# From configure.in Revision: 84512 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65 for python 3.2. # @@ -9588,6 +9588,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock" >&5 $as_echo_n "checking for flock... " >&6; } +have_flock=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9605,14 +9606,84 @@ if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_FLOCK 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else + have_flock=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_flock" >&5 +$as_echo "$have_flock" >&6; } + +if test "$have_flock" = yes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if flock requires additional libraries." >&5 +$as_echo_n "checking if flock requires additional libraries.... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <sys/file.h> + +int +main () +{ +void *p = flock; flock(0, 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 +$as_echo_n "checking for flock in -lbsd... " >&6; } +if test "${ac_cv_lib_bsd_flock+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char flock (); +int +main () +{ +return flock (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_flock=yes +else + ac_cv_lib_bsd_flock=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 +$as_echo "$ac_cv_lib_bsd_flock" >&6; } +if test "x$ac_cv_lib_bsd_flock" = x""yes; then : + + +$as_echo "#define FLOCK_NEEDS_LIBBSD 1" >>confdefs.h + + +fi + + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 $as_echo_n "checking for getpagesize... " >&6; } @@ -14226,8 +14297,8 @@ esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" +config_files="`echo $ac_config_files`" +config_headers="`echo $ac_config_headers`" _ACEOF diff --git a/configure.in b/configure.in index a518374..3e82da2 100644 --- a/configure.in +++ b/configure.in @@ -2642,13 +2642,27 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ]) AC_MSG_CHECKING(for flock) +have_flock=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <sys/file.h> ]], [[void* p = flock]])], [AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.) - AC_MSG_RESULT(yes)], - [AC_MSG_RESULT(no) + have_flock=yes ]) +AC_MSG_RESULT($have_flock) + +if test "$have_flock" = yes ; then + AC_MSG_CHECKING(if flock requires additional libraries.) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ + #include <sys/file.h> + ]], [[void *p = flock; flock(0, 0)]])], + [AC_MSG_RESULT(no)], + [AC_MSG_RESULT(yes) + AC_CHECK_LIB(bsd,flock, [ + AC_DEFINE(FLOCK_NEEDS_LIBBSD, 1, Define if flock needs to be linked with bsd library.) + ]) + ]) +fi AC_MSG_CHECKING(for getpagesize) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ diff --git a/pyconfig.h.in b/pyconfig.h.in index 309332f..b26b441 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -30,6 +30,9 @@ /* Define if --enable-ipv6 is specified */ #undef ENABLE_IPV6 +/* Define if flock needs to be linked with bsd library */ +#undef FLOCK_NEEDS_LIBBSD + /* Define if getpgrp() must be called as getpgrp(0). */ #undef GETPGRP_HAVE_ARG @@ -499,7 +499,11 @@ class PyBuildExt(build_ext): # supported...) # fcntl(2) and ioctl(2) - exts.append( Extension('fcntl', ['fcntlmodule.c']) ) + libs = [] + if (config_h_vars.get('FLOCK_NEEDS_LIBBSD', False)): + # May be necessary on AIX for flock function + libs = ['bsd'] + exts.append( Extension('fcntl', ['fcntlmodule.c'], libraries=libs) ) # pwd(3) exts.append( Extension('pwd', ['pwdmodule.c']) ) # grp(3) |