Bug 52573 - patch required to build 2.10.x with oldish GNU C library headers

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.
This commit is contained in:
Akira TAGOH 2012-08-31 15:10:50 +09:00
parent 535e0a37d6
commit ab26a722c0
1 changed files with 14 additions and 1 deletions

View File

@ -136,7 +136,20 @@ AC_TYPE_PID_T
# Checks for library functions. # Checks for library functions.
AC_FUNC_VPRINTF AC_FUNC_VPRINTF
AC_FUNC_MMAP 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 if test "x$ac_cv_func_fstatvfs" = "xyes"; then