deps: support madvise(3C) across ALL illumos revisions · nodejs/node@fa70f1a

File tree

2 files changed

lines changed

  • deps/v8/src/base/platform

2 files changed

lines changed

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.23',

41+

'v8_embedder_string': '-node.24',

4242
4343

##### V8 defaults for Node.js #####

4444
Original file line numberDiff line numberDiff line change

@@ -80,7 +80,19 @@

8080

#define MAP_ANONYMOUS MAP_ANON

8181

#endif

8282
83-

#if defined(V8_OS_SOLARIS)

83+

/*

84+

* NOTE: illumos starting with illumos#14418 (pushed April 20th, 2022)

85+

* prototypes madvise(3C) properly with a `void *` first argument.

86+

* The only way to detect this outside of configure-time checking is to

87+

* check for the existence of MEMCNTL_SHARED, which gets defined for the first

88+

* time in illumos#14418 under the same circumstances save _STRICT_POSIX, which

89+

* thankfully neither Solaris nor illumos builds of Node or V8 do.

90+

*

91+

* If some future illumos push changes the MEMCNTL_SHARED assumptions made

92+

* above, the illumos check below will have to be revisited. This check

93+

* will work on both pre-and-post illumos#14418 illumos environments.

94+

*/

95+

#if defined(V8_OS_SOLARIS) && !(defined(__illumos__) && defined(MEMCNTL_SHARED))

8496

#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)

8597

extern "C" int madvise(caddr_t, size_t, int);

8698

#else