From f269dff06e5e6f3e384520cc2f42ad3a70e5e691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 2 Jun 2020 10:06:37 +0200 Subject: [PATCH] deps: V8: cherry-pick 9868b2aefa1a Original commit message: Fix SmartOS compilation errors This commit resolves compilation errors on SmartOS that were found while upgrading Node.js. See: https://github.com/nodejs/node/pull/32831 Change-Id: Ia2a2e028ba4f5bfd69c050cab4fb4e13af5eefd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2191054 Reviewed-by: Michael Lippautz Reviewed-by: Ulan Degenbaev Commit-Queue: Ulan Degenbaev Cr-Commit-Position: refs/heads/master@{#67793} Refs: https://github.com/v8/v8/commit/9868b2aefa1af2f1a173856b5d31efa4c2ac2833 Backport-PR-URL: https://github.com/nodejs/node/pull/34356 PR-URL: https://github.com/nodejs/node/pull/33579 Reviewed-By: Matteo Collina Reviewed-By: Jiawen Geng Reviewed-By: Michael Dawson Reviewed-By: Rich Trott Reviewed-By: Shelley Vohr --- common.gypi | 2 +- deps/v8/src/base/platform/platform-posix.cc | 6 ++++-- deps/v8/src/base/platform/platform-solaris.cc | 18 ++++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/common.gypi b/common.gypi index 21f1f2cb734ca8..73ba5482160aea 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.7', + 'v8_embedder_string': '-node.8', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/base/platform/platform-posix.cc b/deps/v8/src/base/platform/platform-posix.cc index c3f0b08ddde843..17fc5b508394c8 100644 --- a/deps/v8/src/base/platform/platform-posix.cc +++ b/deps/v8/src/base/platform/platform-posix.cc @@ -970,7 +970,8 @@ void Thread::SetThreadLocal(LocalStorageKey key, void* value) { // pthread_getattr_np used below is non portable (hence the _np suffix). We // keep this version in POSIX as most Linux-compatible derivatives will // support it. MacOS and FreeBSD are different here. -#if !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && !defined(_AIX) +#if !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && !defined(_AIX) && \ + !defined(V8_OS_SOLARIS) // static void* Stack::GetStackStart() { @@ -996,7 +997,8 @@ void* Stack::GetStackStart() { return nullptr; } -#endif // !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && !defined(_AIX) +#endif // !defined(V8_OS_FREEBSD) && !defined(V8_OS_MACOSX) && + // !defined(_AIX) && !defined(V8_OS_SOLARIS) // static void* Stack::GetCurrentStackPosition() { return __builtin_frame_address(0); } diff --git a/deps/v8/src/base/platform/platform-solaris.cc b/deps/v8/src/base/platform/platform-solaris.cc index b5b16dac568789..b4ac98ce73bdbb 100644 --- a/deps/v8/src/base/platform/platform-solaris.cc +++ b/deps/v8/src/base/platform/platform-solaris.cc @@ -65,5 +65,23 @@ void OS::SignalCodeMovingGC() {} void OS::AdjustSchedulingParams() {} +// static +void* Stack::GetStackStart() { + pthread_attr_t attr; + int error; + pthread_attr_init(&attr); + error = pthread_attr_get_np(pthread_self(), &attr); + if (!error) { + void* base; + size_t size; + error = pthread_attr_getstack(&attr, &base, &size); + CHECK(!error); + pthread_attr_destroy(&attr); + return reinterpret_cast(base) + size; + } + pthread_attr_destroy(&attr); + return nullptr; +} + } // namespace base } // namespace v8