#ifndef ZEND_WIN32
extern int lock_file;
-# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || (defined(__APPLE__) && defined(__MACH__)/* Darwin */) || defined(__OpenBSD__) || defined(__NetBSD__)
+# if defined(HAVE_FLOCK_AIX64)
# define FLOCK_STRUCTURE(name, type, whence, start, len) \
- struct flock name = {start, len, -1, type, whence}
-# elif defined(__svr4__)
-# define FLOCK_STRUCTURE(name, type, whence, start, len) \
- struct flock name = {type, whence, start, len}
-# elif defined(__linux__) || defined(__hpux) || defined(__GNU__)
-# define FLOCK_STRUCTURE(name, type, whence, start, len) \
- struct flock name = {type, whence, start, len, 0}
-# elif defined(_AIX)
-# if defined(_LARGE_FILES) || defined(__64BIT__)
-# define FLOCK_STRUCTURE(name, type, whence, start, len) \
struct flock name = {type, whence, 0, 0, 0, start, len }
-# else
-# define FLOCK_STRUCTURE(name, type, whence, start, len) \
- struct flock name = {type, whence, start, len}
-# endif
# elif defined(HAVE_FLOCK_BSD)
# define FLOCK_STRUCTURE(name, type, whence, start, len) \
struct flock name = {start, len, -1, type, whence}
AC_MSG_RESULT([$msg])
flock_type=unknown
-AC_MSG_CHECKING("whether flock struct is linux ordered")
+AC_MSG_CHECKING(for struct flock layout)
+
+if test "$flock_type" = "unknown"; then
+AC_TRY_RUN([
+ #include <fcntl.h>
+ struct flock lock = { 1, 2, 3, 4, 5, 6, 7 };
+ int main() {
+ if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 6 && lock.l_len== 7) {
+ return 0;
+ }
+ return 1;
+ }
+], [
+ flock_type=aix64
+ AC_DEFINE([HAVE_FLOCK_AIX64], [], [Struct flock is 64-bit AIX-type])
+], [])
+fi
+
+if test "$flock_type" = "unknown"; then
AC_TRY_RUN([
#include <fcntl.h>
struct flock lock = { 1, 2, 3, 4, 5 };
], [
flock_type=linux
AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
- AC_MSG_RESULT("yes")
-], AC_MSG_RESULT("no") )
+], [])
+fi
-AC_MSG_CHECKING("whether flock struct is BSD ordered")
+if test "$flock_type" = "unknown"; then
AC_TRY_RUN([
#include <fcntl.h>
struct flock lock = { 1, 2, 3, 4, 5 };
], [
flock_type=bsd
AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type])
- AC_MSG_RESULT("yes")
-], AC_MSG_RESULT("no") )
+], [])
+fi
+
+AC_MSG_RESULT([$flock_type])
if test "$flock_type" = "unknown"; then
AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])