mirror of
https://github.com/nodejs/node.git
synced 2024-11-24 03:07:54 +01:00
deps: V8: cherry-pick 35888fee7bba
Original commit message:
[base] fix builds with GCC 12 on certain Linux distributions
With GCC 12 on certain Linux distributions (at least Debian 12,
Alpine 3.18, Fedora 37, that ships GCC 12.2),
std::is_trivially_copyable is broken
and as a result, V8 fails to compile. This patch uses the
same polyfill on MSVC to make it compile with GCC 12.2.
See https://github.com/nodejs/node/pull/45427 for more context.
Refs: https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=aeba3e009b0abfccaf01797556445dbf891cc8dc
Change-Id: Ie0ab1bb1ec105bacbd80b341adf7dbd8569f031f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5679182
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/main@{#95181}
Refs: 35888fee7b
PR-URL: https://github.com/nodejs/node/pull/53728
Refs: https://github.com/nodejs/node/pull/45427
Refs: https://github.com/nodejs/help/issues/4406
Refs: https://github.com/nodejs/node/issues/53633
Refs: https://github.com/nodejs/help/issues/4430
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/54077
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
This commit is contained in:
parent
28f3e5c9d1
commit
415bc750a5
@ -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.9',
|
||||
'v8_embedder_string': '-node.10',
|
||||
|
||||
##### V8 defaults for Node.js #####
|
||||
|
||||
|
7
deps/v8/src/base/macros.h
vendored
7
deps/v8/src/base/macros.h
vendored
@ -206,7 +206,7 @@ namespace base {
|
||||
// base::is_trivially_copyable will differ for these cases.
|
||||
template <typename T>
|
||||
struct is_trivially_copyable {
|
||||
#if V8_CC_MSVC
|
||||
#if V8_CC_MSVC || (__GNUC__ == 12 && __GNUC_MINOR__ <= 2)
|
||||
// Unfortunately, MSVC 2015 is broken in that std::is_trivially_copyable can
|
||||
// be false even though it should be true according to the standard.
|
||||
// (status at 2018-02-26, observed on the msvc waterfall bot).
|
||||
@ -214,6 +214,11 @@ struct is_trivially_copyable {
|
||||
// intended, so we reimplement this according to the standard.
|
||||
// See also https://developercommunity.visualstudio.com/content/problem/
|
||||
// 170883/msvc-type-traits-stdis-trivial-is-bugged.html.
|
||||
//
|
||||
// GCC 12.1 and 12.2 are broken too, they are shipped by some stable Linux
|
||||
// distributions, so the same polyfill is also used.
|
||||
// See
|
||||
// https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=aeba3e009b0abfccaf01797556445dbf891cc8dc
|
||||
static constexpr bool value =
|
||||
// Copy constructor is trivial or deleted.
|
||||
(std::is_trivially_copy_constructible<T>::value ||
|
||||
|
Loading…
Reference in New Issue
Block a user