summaryrefslogtreecommitdiff
path: root/cont.c
diff options
context:
space:
mode:
authorNaohisa Goto <ngotogenome@gmail.com>2021-11-29 23:46:48 +0900
committerNaohisa Goto <ngotogenome@gmail.com>2021-11-30 00:03:04 +0900
commit8287d2f23c06c614d1ae83b6e0dad48bcda622cb (patch)
treed78fe726e7beb324cae25fa8c2f423764e2e5cb3 /cont.c
parent67a1e2258974df4b597d019739595c18fbb9a7c1 (diff)
Workaround for implicit declaration of function 'madvise' on Solaris
On Solaris, madvise(3C) is NOT defined for SUS (XPG4v2) or later, but MADV_* macros are defined when __EXTENSIONS__ is defined. This may cause compile error on Solaris 10 with GCC when "-Werror=implicit-function-declaration" and "-D_XOPEN_SOURCE=600" are added by configure.
Diffstat (limited to 'cont.c')
-rw-r--r--cont.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cont.c b/cont.c
index 8a56fa6735..2af7971a9a 100644
--- a/cont.c
+++ b/cont.c
@@ -16,6 +16,14 @@
#include <sys/mman.h>
#endif
+// 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))
+#include <sys/types.h>
+extern int madvise(caddr_t, size_t, int);
+#endif
+
#include COROUTINE_H
#include "eval_intern.h"