diff --git a/configure.ac b/configure.ac index 4b495371d4..7ec11478f5 100644 --- a/configure.ac +++ b/configure.ac @@ -1108,6 +1108,15 @@ main() ]) ]) AC_CHECK_TYPES([caddr_t],[],[],[@%:@include ]) + RUBY_WERROR_FLAG([AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + @%:@if defined(HAVE_CADDR_T) && (defined(MADV_FREE) || defined(MADV_DONTNEED)) + @%:@include + @%:@include + @%:@include + extern int madvise(caddr_t, size_t, int); + ]], [[]])], + [AC_DEFINE(NEED_MADVICE_PROTOTYPE_USING_CADDR_T, 1)], []) + ]) ], [haiku*], [ LIBS="$LIBS" # m lib is include in root diff --git a/cont.c b/cont.c index 2af7971a9a..290be43012 100644 --- a/cont.c +++ b/cont.c @@ -18,8 +18,7 @@ // On Solaris, madvise() is NOT declared for SUS (XPG4v2) or later, // but MADV_* macros are defined when __EXTENSIONS__ is defined. -#if defined(__sun) && defined(HAVE_CADDR_T) && \ - (defined(MADV_FREE) || defined(MADV_DONTNEED)) +#ifdef NEED_MADVICE_PROTOTYPE_USING_CADDR_T #include extern int madvise(caddr_t, size_t, int); #endif