Index: configure.in =================================================================== --- configure.in (revision 1061) +++ configure.in (working copy) @@ -2692,15 +2692,30 @@ ) AC_MSG_CHECKING(for flock) +have_flock=no AC_TRY_COMPILE([ #include "confdefs.h" #include -], void* p = flock, +], 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_TRY_LINK([ + #include "confdefs.h" + #include + ], [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_TRY_COMPILE([ #include "confdefs.h" Index: setup.py =================================================================== --- setup.py (revision 1061) +++ setup.py (working copy) @@ -536,7 +536,11 @@ # 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) ) if platform not in ['mac']: # pwd(3) exts.append( Extension('pwd', ['pwdmodule.c']) )