aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-11-30 09:01:36 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-11-30 09:10:58 +0900
commit12fbdf4d4e52bafaeef6f923b8f357a39a37c02b (patch)
tree1eca222c11629f2959bebad903ebc4311eeee107 /configure.ac
parentac8647bec12d5d3c0bc4b6a79d09a6a85d6628f1 (diff)
downloadruby-12fbdf4d4e52bafaeef6f923b8f357a39a37c02b.tar.gz
Fix conflicting declaration on Solaris
SunC ``` "cont.c", line 24: identifier redeclared: madvise current : function(pointer to char, unsigned int, int) returning int previous: function(pointer to void, unsigned int, int) returning int : "/usr/include/sys/mman.h", line 232 ``` GCC ``` cont.c:24:12: error: conflicting types for 'madvise' 24 | extern int madvise(caddr_t, size_t, int); | ^~~~~~~ In file included from cont.c:16: /usr/include/sys/mman.h:232:12: note: previous declaration of 'madvise' was here 232 | extern int madvise(void *, size_t, int); | ^~~~~~~ ```
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac9
1 files changed, 9 insertions, 0 deletions
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 <sys/types.h>])
+ RUBY_WERROR_FLAG([AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ @%:@if defined(HAVE_CADDR_T) && (defined(MADV_FREE) || defined(MADV_DONTNEED))
+ @%:@include <sys/unistd.h>
+ @%:@include <sys/mman.h>
+ @%:@include <sys/types.h>
+ 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