Bug 52573 - patch required to build 2.10.x with oldish GNU C library headers
authorAkira TAGOH <akira@tagoh.org>
Fri, 31 Aug 2012 06:10:50 +0000 (15:10 +0900)
committerAkira TAGOH <akira@tagoh.org>
Tue, 11 Sep 2012 08:56:09 +0000 (17:56 +0900)
On older libc, _POSIX_C_SOURCE didn't satisfy to use posix_fadvise()
and AC_CHECK_FUNCS doesn't check a header file if the function is
declared there properly. so use AC_LINK_IFELSE instead.

configure.ac

index 1270ba5..d27dba1 100644 (file)
@@ -136,7 +136,20 @@ AC_TYPE_PID_T
 # Checks for library functions.
 AC_FUNC_VPRINTF
 AC_FUNC_MMAP
-AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree posix_fadvise fstatvfs fstatfs])
+AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long sysconf ftruncate chsize rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs])
+
+dnl AC_CHECK_FUNCS doesn't check for header files.
+dnl posix_fadvise() may be not available in older libc.
+AC_MSG_CHECKING([for posix_fadvise])
+AC_LINK_IFELSE([AC_LANG_SOURCE([[
+       #include <fcntl.h>
+       int main(void) {
+           return posix_fadvise(0, 0, 0, 0);
+       }
+       ]])],[
+               AC_MSG_RESULT([yes])
+               AC_DEFINE([HAVE_POSIX_FADVISE], [1], [Define to 1 if you have the `posix_fadvise' function.])
+       ],[AC_MSG_RESULT([no])])
 
 #
 if test "x$ac_cv_func_fstatvfs" = "xyes"; then