--- /dev/null
+PSI_CHECK_FCNTL() {
+ AC_CHECK_HEADERS(fcntl.h)
+
+ PSI_CONST(F_DUPFD, int)
+ PSI_CONST(F_DUPFD_CLOEXEC, int)
+ PSI_CONST(F_GETFD, int)
+ PSI_CONST(F_SETFD, int)
+ PSI_CONST(F_GETFL, int)
+ PSI_CONST(F_SETFL, int)
+ PSI_CONST(F_GETLK, int)
+ PSI_CONST(F_SETLK, int)
+ PSI_CONST(F_SETLKW, int)
+ PSI_CONST(F_GETOWN, int)
+ PSI_CONST(F_SETOWN, int)
+
+ PSI_CONST(FD_CLOEXEC, int)
+
+ PSI_CONST(F_RDLCK, int)
+ PSI_CONST(F_UNLCK, int)
+ PSI_CONST(F_WRLCK, int)
+
+ PSI_CONST(O_CLOEXEC, int)
+ PSI_CONST(O_CREAT, int)
+ PSI_CONST(O_DIRECTORY, int)
+ PSI_CONST(O_EXCL, int)
+ PSI_CONST(O_NOCTTY, int)
+ PSI_CONST(O_NOFOLLOW, int)
+ PSI_CONST(O_TRUNC, int)
+ PSI_CONST(O_TTY_INIT, int)
+
+ PSI_CONST(O_APPEND, int)
+ PSI_CONST(O_DSYNC, int)
+ PSI_CONST(O_NONBLOCK, int)
+ PSI_CONST(O_RSYNC, int)
+ PSI_CONST(O_SYNC, int)
+
+ PSI_CONST(O_ACCMODE, int)
+
+ PSI_CONST(O_EXEC, int)
+ PSI_CONST(O_RDONLY, int)
+ PSI_CONST(O_RDWR, int)
+ PSI_CONST(O_SEARCH, int)
+ PSI_CONST(O_WRONLY, int)
+
+ PSI_CONST(AT_FDCWD, int)
+ PSI_CONST(AT_EACCESS, int)
+ PSI_CONST(AT_SYMLINK_NOFOLLOW, int)
+ PSI_CONST(AT_SYMLINK_FOLLOW, int)
+ PSI_CONST(AT_REMOVEDIR, int)
+
+ PSI_CONST(POSIX_FADV_DONTNEED, int)
+ PSI_CONST(POSIX_FADV_NOREUSE, int)
+ PSI_CONST(POSIX_FADV_NORMAL, int)
+ PSI_CONST(POSIX_FADV_RANDOM, int)
+ PSI_CONST(POSIX_FADV_SEQUENTUAL, int)
+ PSI_CONST(POSIX_FADV_WILLNEED, int)
+
+ PSI_STRUCT(struct flock, [
+ short l_type,
+ short l_whence,
+ off_t l_start,
+ off_t l_len,
+ pid_t l_pid]
+ )
+
+ PSI_DECL(int creat, [(const char *path, mode_t mode)])
+ PSI_DECL(int fcntl, [(int fd, int cmd, mode_t mode)])
+ PSI_DECL(int open, [(const char *path, int flags, mode_t mode)])
+ PSI_DECL(int openat, [(int dirfd, const char *path, int flags, mode_t mode)])
+
+ PSI_DECL(int posix_fadvise, [(int fd, off_t offset, off_t len, int advice)])
+ PSI_DECL(int posix_fallocate, [(int fd, off_t offset, off_t len)])
+}
dnl This macro must be called prior any checks for a type, struct, decl etc.
AC_DEFUN(PSI_CONFIG_INIT, [
cat >$PSI_TYPES <<EOF
+/* generated by configure */
static struct psi_predef_type {
token_t type_tag;
const char *type_name;
} psi_predef_types@<:@@:>@ = {
EOF
cat >$PSI_STRUCTS <<EOF
+/* generated by configure */
static struct psi_predef_struct {
token_t type_tag;
const char *type_name;
} psi_predef_structs@<:@@:>@ = {
EOF
cat >$PSI_CONSTS <<EOF
+/* generated by configure */
static struct psi_predef_const {
token_t type_tag;
const char *type_name;
} psi_predef_consts@<:@@:>@ = {
EOF
cat >$PSI_REDIRS <<EOF
+/* generated by configure */
static struct psi_func_redir {
const char *name;
void (*func)(void);
EOF
cat >$PSI_MACROS </dev/null
cat >$PSI_DECLS <<EOF
+/* generated by configure */
static struct psi_predef_decl {
token_t type_tag;
const char *type_name;
} psi_predef_decls@<:@@:>@ = {
EOF
cat >$PSI_VA_DECLS <<EOF
+/* generated by configure */
static struct psi_predef_decl psi_predef_vararg_decls@<:@@:>@ = {
EOF
])
dnl Finish the headers with the pre-defined types etc.
AC_DEFUN(PSI_CONFIG_DONE, [
cat >$PSI_STDINC <<EOF
+/* generated by configure */
PSI_INCLUDES
EOF
for i in $PSI_TYPES $PSI_STRUCTS $PSI_CONSTS $PSI_REDIRS $PSI_DECLS $PSI_VA_DECLS; do
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#endif
#ifdef HAVE_NDBM_H
# include <ndbm.h>
#endif
dnl PSI_PKG_CONFIG()
dnl Check for `pkg-config` and add possible libjit and libffi directories to
-dnl $PKG_CONFIG_PATH, because those libs often ship with headers etc. in
+dnl $PKG_CONFIG_PATH, because those libs often ship with headers etc. in
dnl arch-dependent locations.
AC_DEFUN([PSI_PKG_CONFIG], [
if test -z "$PKG_CONFIG"
dnl PSI_CHECK_LIBFFI()
dnl Check for libffi with `pkg-config`. If that fails, `configure` looks into
dnl $PHP_PSI_LIBFFI or standard locations to find libjit deps.
-dnl Checks for availability of recent closure API:
+dnl Checks for availability of recent closure API:
dnl \ffi_closure_alloc and \ffi_prep_closure.
dnl Checks for availability of recent vararg API:
dnl \ffi_prep_cif_var.
-dnl AC_DEFINEs HAVE_LIBFFI, PSI_HAVE_FFI_CLOSURE_ALLOC,
+dnl AC_DEFINEs HAVE_LIBFFI, PSI_HAVE_FFI_CLOSURE_ALLOC,
dnl PSI_HAVE_FFI_PREP_CLOSURE and PSI_HAVE_FFO_PREP_VIF_VAR.
AC_DEFUN(PSI_CHECK_LIBFFI, [
AC_REQUIRE([PSI_PKG_CONFIG])dnl
else
psi_cv_libffi=false
fi])
-
+
if $psi_cv_libffi
then
AC_MSG_CHECKING(for libffi)