Skip to content

Commit d94d8b6

Browse files
danmcdtargos
authored andcommitted
deps: support madvise(3C) across ALL illumos revisions
In illumos, madvise(3C) now takes `void *` for its first argument post-illumos#14418, but uses `caddr_t` pre-illumos#14418. This fix will detect if the illumos mman.h file in use is pre-or-post-illumos#14418 so builds can work either way. PR-URL: #58237 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Colin Ihrig <[email protected]>
1 parent b14347f commit d94d8b6

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

common.gypi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
# Reset this number to 0 on major V8 upgrades.
4040
# Increment by one for each non-official patch applied to deps/v8.
41-
'v8_embedder_string': '-node.5',
41+
'v8_embedder_string': '-node.6',
4242

4343
##### V8 defaults for Node.js #####
4444

deps/v8/src/base/platform/platform-posix.cc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,19 @@
8282
#define MAP_ANONYMOUS MAP_ANON
8383
#endif
8484

85-
#if defined(V8_OS_SOLARIS)
85+
/*
86+
* NOTE: illumos starting with illumos#14418 (pushed April 20th, 2022)
87+
* prototypes madvise(3C) properly with a `void *` first argument.
88+
* The only way to detect this outside of configure-time checking is to
89+
* check for the existence of MEMCNTL_SHARED, which gets defined for the first
90+
* time in illumos#14418 under the same circumstances save _STRICT_POSIX, which
91+
* thankfully neither Solaris nor illumos builds of Node or V8 do.
92+
*
93+
* If some future illumos push changes the MEMCNTL_SHARED assumptions made
94+
* above, the illumos check below will have to be revisited. This check
95+
* will work on both pre-and-post illumos#14418 illumos environments.
96+
*/
97+
#if defined(V8_OS_SOLARIS) && !(defined(__illumos__) && defined(MEMCNTL_SHARED))
8698
#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
8799
extern "C" int madvise(caddr_t, size_t, int);
88100
#else

0 commit comments

Comments
 (0)