summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2000-05-23 15:13:16 +0000
committerSascha Schumann <sas@php.net>2000-05-23 15:13:16 +0000
commit2aaa538aef24cd8140ff6aa80e544978dd7035fd (patch)
tree1aa8491f80a1d81bb80ca0f118b19f98e5b21163 /acinclude.m4
parentbe6afb3fccd20f2b0fab5816bc05362fb7e0326f (diff)
downloadphp-git-2aaa538aef24cd8140ff6aa80e544978dd7035fd.tar.gz
Use reentrant version of readdir. If the target platform does not support
the POSIX-like readdir_r, we fall back to readdir. In ZTS mode, this will cause php_readdir_r calls to be serialized.
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m430
1 files changed, 30 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index fea266109e..4982bbb3e2 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -4,6 +4,36 @@ dnl This file contains local autoconf functions.
sinclude(dynlib.m4)
+AC_DEFUN(PHP_POSIX_READDIR_R,[
+ AC_CACHE_CHECK(for type of readdir_r, ac_cv_what_readdir_r,[
+ AC_TRY_RUN([
+#include <sys/types.h>
+#include <dirent.h>
+
+main() {
+ DIR *dir;
+ struct dirent entry, *pentry;
+
+ dir = opendir("/");
+ if (!dir)
+ exit(1);
+ if (readdir_r(dir, &entry, &pentry) == 0)
+ exit(0);
+ exit(1);
+}
+ ],[
+ ac_cv_what_readdir_r=POSIX
+ ],[
+ ac_cv_what_readdir_r=none
+ ],[
+ ac_cv_what_readdir_r=none
+ ])
+ ])
+ if test "$ac_cv_what_readdir_r" = "POSIX"; then
+ AC_DEFINE(HAVE_POSIX_READDIR_R,1,[whether you have POSIX readdir_r])
+ fi
+])
+
AC_DEFUN(PHP_SHLIB_SUFFIX_NAME,[
PHP_SUBST(SHLIB_SUFFIX_NAME)
SHLIB_SUFFIX_NAME=so