X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpsi%2Fpsi.m4;h=f99d582f4e519a5d972d6b1a7cb1a252a0dd25ca;hb=0eb2c3dc52fd9fde9413a544c3ea7ebfe1ec0e89;hp=67878346db61e5765024af4e225c09502888b94d;hpb=5fb98c298b198dbc7dba9d1c339b21e179c65b4e;p=m6w6%2Fext-psi diff --git a/m4/psi/psi.m4 b/m4/psi/psi.m4 index 6787834..f99d582 100644 --- a/m4/psi/psi.m4 +++ b/m4/psi/psi.m4 @@ -7,6 +7,18 @@ AC_DEFUN(PSI_CONFIG_INIT, [ psi_save_LIBS=$LIBS LIBS= + ac_includes_default="AC_INCLUDES_DEFAULT" + + AC_PROG_AWK + AC_PATH_PROG(NM, nm) + AC_CACHE_CHECK(for libc start main symbol, psi_cv_libc_main, [ + psi_libc_main= + AC_TRY_LINK(PSI_INCLUDES, [(void)0;], [ + psi_libc_main=`nm -g conftest$ac_exeext | $AWK -F ' *|@' '/^@<:@@<:@:space:@:>@@:>@+U / {print$[]3; exit}'` + ]) + psi_cv_libc_main=$psi_libc_main + ]) + if test "$PHP_PSI_MAINTAINER_MODE" = "yes"; then PSI_FAST_CONFIG=true PSI_DEPS=true @@ -15,7 +27,6 @@ AC_DEFUN(PSI_CONFIG_INIT, [ PHP_SUBST(PSI_DEPS) PSI_CONFIG_TMP=$(mktemp -d) - PSI_FUNC_LIBC_MAIN else PSI_FAST_CONFIG=false PSI_DEPS=false @@ -191,16 +202,15 @@ AC_DEFUN(PSI_PTHREAD, [ dnl PSI_INCLUDES() dnl Expands to a complete list of include statements including -dnl AC_INCLUDES_DEFAULT(). -AC_DEFUN(PSI_INCLUDES, [dnl -#define PSI_INCLUDES +dnl autoconf's defaults. +AC_DEFUN(PSI_INCLUDES, [ #ifndef _GNU_SOURCE # define _GNU_SOURCE #endif #ifndef _REENTRANT # define _REENTRANT #endif -AC_INCLUDES_DEFAULT() +$ac_includes_default #ifdef HAVE_STDBOOL_H # include #else @@ -374,7 +384,7 @@ AC_DEFUN(PSI_CHECK_OFFSETOF, [ [offset of $2 in $1], [AS_TR_SH([ac_cv_offsetof_$1_$2])], [(long int) (offsetof ($1, $2))], - [PSI_INCLUDES], + PSI_INCLUDES, [AC_MSG_FAILURE([cannot compute offsetof ($1, $2)])] ) AC_DEFINE_UNQUOTED( @@ -470,6 +480,13 @@ AC_DEFUN(PSI_CHECK_LIBFFI, [ AC_MSG_WARN([Could not find libffi, please provide the base install path]) fi fi + + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $INCLUDES" + AC_CHECK_DECL(FFI_STDCALL,[AC_DEFINE([HAVE_FFI_STDCALL],[1],[ ])],,[#include "ffi.h"]) + AC_CHECK_DECL(FFI_FASTCALL,[AC_DEFINE([HAVE_FFI_FASTCALL],[1],[ ])],,[#include "ffi.h"]) + CFLAGS=$save_CFLAGS + PHP_CHECK_LIBRARY(ffi, ffi_closure_alloc, [ PHP_CHECK_LIBRARY(ffi, ffi_prep_closure_loc, [ AC_DEFINE(PSI_HAVE_FFI_PREP_CLOSURE_LOC, 1, [ ])