]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Only recognize the POSIX-compliant version of readdir_r.
authorTim Kientzle <kientzle@gmail.com>
Thu, 27 Jan 2011 05:55:06 +0000 (00:55 -0500)
committerTim Kientzle <kientzle@gmail.com>
Thu, 27 Jan 2011 05:55:06 +0000 (00:55 -0500)
Some systems have a different prototype that we don't support.

SVN-Revision: 2952

configure.ac

index 84f762dbdad4c5be6cc322f0fd74306f2ff35706..25dabacd770f1216137f20b961f4d69c164c2c92 100644 (file)
@@ -430,7 +430,7 @@ AC_CHECK_FUNCS([geteuid getpid getgrgid_r getgrnam_r])
 AC_CHECK_FUNCS([getpwnam_r getpwuid_r getvfsbyname gmtime_r])
 AC_CHECK_FUNCS([lchflags lchmod lchown link localtime_r lstat])
 AC_CHECK_FUNCS([lutimes mbrtowc memmove memset mkdir mkfifo mknod mkstemp])
-AC_CHECK_FUNCS([nl_langinfo openat pipe poll readdir_r readlink readlinkat])
+AC_CHECK_FUNCS([nl_langinfo openat pipe poll readlink readlinkat])
 AC_CHECK_FUNCS([select setenv setlocale sigaction statfs statvfs])
 AC_CHECK_FUNCS([strchr strdup strerror strncpy_s strrchr symlink timegm])
 AC_CHECK_FUNCS([tzset unsetenv utime utimensat utimes vfork])
@@ -438,6 +438,15 @@ AC_CHECK_FUNCS([wcrtomb wcscmp wcscpy wcslen wctomb wmemcmp wmemcpy])
 # detects cygwin-1.7, as opposed to older versions
 AC_CHECK_FUNCS([cygwin_conv_path])
 
+# There are several variants of readdir_r around; we only
+# accept the POSIX-compliant version.
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <dirent.h>]],
+                  [[DIR *dir; struct dirent e, *r;
+                   exit(readdir_r(dir, &e, &r));]])],
+ [AC_DEFINE(HAVE_READDIR_R,1,[Define to 1 if you have a POSIX compatible readdir_r])]
+)
+
 # FreeBSD's nl_langinfo supports an option to specify whether the
 # current locale uses month/day or day/month ordering.  It makes the
 # output a little prettier...