Commit 4ec4adc1 authored by Antoine Pitrou's avatar Antoine Pitrou

Issue #4026: Make the fcntl extension build under AIX.

Patch by Sébastien Sablé.
parent 8e1783ee
...@@ -52,6 +52,12 @@ Library ...@@ -52,6 +52,12 @@ Library
guaranteed to exist in all Python implementations and the names of hash guaranteed to exist in all Python implementations and the names of hash
algorithms available in the current process. 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? What's New in Python 3.2 Alpha 2?
================================= =================================
......
#! /bin/sh #! /bin/sh
# From configure.in Revision: 84477 . # From configure.in Revision: 84512 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.65 for python 3.2. # 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 ...@@ -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 "$as_me:${as_lineno-$LINENO}: checking for flock" >&5
$as_echo_n "checking for flock... " >&6; } $as_echo_n "checking for flock... " >&6; }
have_flock=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
...@@ -9605,14 +9606,84 @@ if ac_fn_c_try_compile "$LINENO"; then : ...@@ -9605,14 +9606,84 @@ if ac_fn_c_try_compile "$LINENO"; then :
$as_echo "#define HAVE_FLOCK 1" >>confdefs.h $as_echo "#define HAVE_FLOCK 1" >>confdefs.h
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 "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; } $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 else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ac_check_lib_save_LIBS=$LIBS
$as_echo "no" >&6; } 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 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 "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5
$as_echo_n "checking for getpagesize... " >&6; } $as_echo_n "checking for getpagesize... " >&6; }
...@@ -14226,8 +14297,8 @@ esac ...@@ -14226,8 +14297,8 @@ esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for. # Files that config.status was made for.
config_files="$ac_config_files" config_files="`echo $ac_config_files`"
config_headers="$ac_config_headers" config_headers="`echo $ac_config_headers`"
_ACEOF _ACEOF
......
...@@ -2642,13 +2642,27 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ...@@ -2642,13 +2642,27 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
]) ])
AC_MSG_CHECKING(for flock) AC_MSG_CHECKING(for flock)
have_flock=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/file.h> #include <sys/file.h>
]], [[void* p = flock]])], ]], [[void* p = flock]])],
[AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.) [AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
AC_MSG_RESULT(yes)], have_flock=yes
[AC_MSG_RESULT(no)
]) ])
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_MSG_CHECKING(for getpagesize)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
/* Define if --enable-ipv6 is specified */ /* Define if --enable-ipv6 is specified */
#undef ENABLE_IPV6 #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). */ /* Define if getpgrp() must be called as getpgrp(0). */
#undef GETPGRP_HAVE_ARG #undef GETPGRP_HAVE_ARG
......
...@@ -499,7 +499,11 @@ class PyBuildExt(build_ext): ...@@ -499,7 +499,11 @@ class PyBuildExt(build_ext):
# supported...) # supported...)
# fcntl(2) and ioctl(2) # 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) # pwd(3)
exts.append( Extension('pwd', ['pwdmodule.c']) ) exts.append( Extension('pwd', ['pwdmodule.c']) )
# grp(3) # grp(3)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment