Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NodeJS >= 22.2.0 doesn't build on Debian #53633

Closed
x-yuri opened this issue Jun 28, 2024 · 9 comments
Closed

NodeJS >= 22.2.0 doesn't build on Debian #53633

x-yuri opened this issue Jun 28, 2024 · 9 comments
Labels
build Issues and PRs related to build files or the CI. linux Issues and PRs related to the Linux platform.

Comments

@x-yuri
Copy link

x-yuri commented Jun 28, 2024

Version

22.2.0

Platform

Linux ac68173a8472 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux

Subsystem

No response

What steps will reproduce the bug?

docker run --rm debian:bookworm-slim bash -euxc '
    apt-get update
    apt-get install -y git python3 build-essential
    git clone https://github.com/nodejs/node
    cd node
    git checkout "$1"
    ./configure
    make
' - v22.2.0

How often does it reproduce? Is there a required condition?

Consistently.

What is the expected behavior? Why is that the expected behavior?

It should build.

What do you see instead?

  g++ -o /node/out/Release/obj.target/v8_turboshaft/deps/v8/src/compiler/turboshaft/csa-optimize-phase.o ../deps/v8/src/compiler/turboshaft/csa-optimize-phase.cc '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_HAVE_TARGET_OS' '-DV8_TARGET_OS_LINUX' '-DV8_EMBEDDER_STRING="-node.12"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION' '-DV8_SHORT_BUILTIN_CALLS' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_ATOMIC_OBJECT_FIELD_WRITES' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DV8_SHARED_RO_HEAP' '-DNDEBUG' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_USE_ZLIB' '-DV8_ENABLE_SPARKPLUG' '-DV8_ENABLE_MAGLEV' '-DV8_ENABLE_TURBOFAN' '-DV8_ENABLE_WEBASSEMBLY' '-DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS' '-DV8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA' '-DV8_ALLOCATION_FOLDING' '-DV8_ALLOCATION_SITE_TRACKING' '-DV8_ADVANCED_BIGINT_ALGORITHMS' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_STATIC_IMPLEMENTATION=1' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/v8 -I../deps/v8/include -I/node/out/Release/obj/gen/generate-bytecode-output-root -I/node/out/Release/obj/gen -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common -I../deps/v8/third_party/abseil-cpp  -pthread -Wno-unused-parameter -Wno-strict-overflow -Wno-return-type -Wno-int-in-bool-context -Wno-deprecated -Wno-stringop-overflow -Wno-stringop-overread -Wno-restrict -Wno-array-bounds -Wno-nonnull -Wno-dangling-pointer -flax-vector-conversions -fno-strict-aliasing -m64 -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++20 -Wno-invalid-offsetof -MMD -MF /node/out/Release/.deps//node/out/Release/obj.target/v8_turboshaft/deps/v8/src/compiler/turboshaft/csa-optimize-phase.o.d.raw   -c
In file included from ../deps/v8/src/base/contextual.h:11,
                 from ../deps/v8/src/compiler/turboshaft/phase.h:10,
                 from ../deps/v8/src/compiler/turboshaft/csa-optimize-phase.h:8,
                 from ../deps/v8/src/compiler/turboshaft/csa-optimize-phase.cc:5:
../deps/v8/src/base/small-vector.h: In instantiation of 'class v8::base::SmallVector<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex>, 16>':
../deps/v8/src/compiler/turboshaft/loop-unrolling-reducer.h:444:11:   required from here
../deps/v8/src/base/macros.h:206:55: error: static assertion failed: T should be trivially copyable
  206 |   static_assert(::v8::base::is_trivially_copyable<T>::value, \
      |                                                       ^~~~~
../deps/v8/src/base/small-vector.h:25:3: note: in expansion of macro 'ASSERT_TRIVIALLY_COPYABLE'
   25 |   ASSERT_TRIVIALLY_COPYABLE(T);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/base/macros.h:206:55: note: 'v8::base::is_trivially_copyable<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex> >::value' evaluates to false
  206 |   static_assert(::v8::base::is_trivially_copyable<T>::value, \
      |                                                       ^~~~~
../deps/v8/src/base/small-vector.h:25:3: note: in expansion of macro 'ASSERT_TRIVIALLY_COPYABLE'
   25 |   ASSERT_TRIVIALLY_COPYABLE(T);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [tools/v8_gypfiles/v8_turboshaft.target.mk:240: /node/out/Release/obj.target/v8_turboshaft/deps/v8/src/compiler/turboshaft/csa-optimize-phase.o] Error 1
rm 889aa6e08bf291915b2edfb5755eacba271e7d14.intermediate 5e7e6dacce553103c642464481a37d2a5cf36482.intermediate f3f5b560e1d922d1c82a58e0b85ee72dc68149b7.intermediate
make: *** [Makefile:137: node] Error 2

Additional information

A similar report.

@RedYetiDev RedYetiDev added the build Issues and PRs related to build files or the CI. label Jun 28, 2024
@RedYetiDev
Copy link
Member

Is this specific to that docker container (or Debian), or can these reproduce on other Linux versions / containers?

@x-yuri
Copy link
Author

x-yuri commented Jun 28, 2024

Judging from the linked issue it's not specific to containers. With Alpine Linux there are other issues. Not this specific one.

@RedYetiDev RedYetiDev added the linux Issues and PRs related to the Linux platform. label Jun 28, 2024
@RedYetiDev
Copy link
Member

FWIW I'm able to build fine on Kali Linux (which is based on Debian)

@x-yuri
Copy link
Author

x-yuri commented Jun 28, 2024

@RedYetiDev And which version of the compiler/library do you have there? In my case it must be this I guess:

$ dpkg -l | grep stdc++\\\|g++
ii  g++                             4:12.2.0-3                amd64        GNU C++ compiler
ii  g++-12                          12.2.0-14                 amd64        GNU C++ compiler
ii  libstdc++-12-dev:amd64          12.2.0-14                 amd64        GNU Standard C++ Library v3 (development files)
ii  libstdc++6:amd64                12.2.0-14                 amd64        GNU Standard C++ Library v3

@RedYetiDev
Copy link
Member

I have a lot more:

ii  g++                                                         4:13.2.0-7                               amd64        GNU C++ compiler
ii  g++-12                                                      12.3.0-17                                amd64        GNU C++ compiler
ii  g++-13                                                      13.2.0-25                                amd64        GNU C++ compiler
ii  g++-13-x86-64-linux-gnu                                     13.2.0-25                                amd64        GNU C++ compiler for x86_64-linux-gnu architecture
ii  g++-mingw-w64                                               13.2.0-19+26.3                           all          GNU C++ compiler for MinGW-w64
ii  g++-mingw-w64-i686                                          13.2.0-19+26.3                           all          GNU C++ compiler for MinGW-w64 targeting Win32
ii  g++-mingw-w64-i686-posix                                    13.2.0-19+26.3                           amd64        GNU C++ compiler for MinGW-w64, Win32/POSIX
ii  g++-mingw-w64-i686-win32                                    13.2.0-19+26.3                           amd64        GNU C++ compiler for MinGW-w64, Win32/Win32
ii  g++-mingw-w64-x86-64                                        13.2.0-19+26.3                           all          GNU C++ compiler for MinGW-w64 targeting Win64
ii  g++-mingw-w64-x86-64-posix                                  13.2.0-19+26.3                           amd64        GNU C++ compiler for MinGW-w64, Win64/POSIX
ii  g++-mingw-w64-x86-64-win32                                  13.2.0-19+26.3                           amd64        GNU C++ compiler for MinGW-w64, Win64/Win32
ii  g++-x86-64-linux-gnu                                        4:13.2.0-7                               amd64        GNU C++ compiler for the amd64 architecture
ii  lib32stdc++6                                                14-20240330-1                            amd64        GNU Standard C++ Library v3 (32 bit Version)
ii  libconfig++9v5:amd64                                        1.5-0.4+b1                               amd64        parsing/manipulation of structured configuration files (C++ binding)
ii  libstdc++-12-dev:amd64                                      12.3.0-17                                amd64        GNU Standard C++ Library v3 (development files)
ii  libstdc++-13-dev:amd64                                      13.2.0-25                                amd64        GNU Standard C++ Library v3 (development files)
ii  libstdc++6:amd64                                            14-20240330-1                            amd64        GNU Standard C++ Library v3

@x-yuri
Copy link
Author

x-yuri commented Jun 29, 2024

I meant the compiler/library you used to build NodeJS. Because it may have something to do with versions.

Anyway, I'll probably try to reconfirm it, but it seems to start to fail in this commit.

@targos
Copy link
Member

targos commented Jun 29, 2024

There's a bug in GCC 12 that causes these errors. We use GCC 11 in CI on Debian 12 to avoid it.

@x-yuri
Copy link
Author

x-yuri commented Jun 29, 2024

Indeed. With GCC 11 it succeeds:

docker run --rm debian:bookworm-slim bash -euxc '
    apt-get update
    apt-get install -y git python3 g++-11 make
    git clone https://github.com/nodejs/node
    cd node
    CXX=g++-11 CC=gcc-11 ./configure
    make
'

With GCC 12 it starts to fail in e4b187433d. If that's bug in GCC 12, case closed then I guess?

@RedYetiDev RedYetiDev closed this as not planned Won't fix, can't repro, duplicate, stale Jun 29, 2024
@RedYetiDev
Copy link
Member

RedYetiDev commented Jun 29, 2024

Closing as the issue seems to be with GCC12, if you disagree, reopen.

nodejs-github-bot pushed a commit that referenced this issue Jul 25, 2024
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 #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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: #53728
Refs: #45427
Refs: nodejs/help#4406
Refs: #53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit that referenced this issue Jul 28, 2024
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 #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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: #53728
Refs: #45427
Refs: nodejs/help#4406
Refs: #53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit to targos/node that referenced this issue Jul 28, 2024
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 nodejs#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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: nodejs#53728
Refs: nodejs#45427
Refs: nodejs/help#4406
Refs: nodejs#53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit to targos/node that referenced this issue Jul 28, 2024
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 nodejs#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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: nodejs#53728
Refs: nodejs#45427
Refs: nodejs/help#4406
Refs: nodejs#53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
RafaelGSS pushed a commit that referenced this issue Aug 5, 2024
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 #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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: #53728
Refs: #45427
Refs: nodejs/help#4406
Refs: #53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit to targos/node that referenced this issue Aug 7, 2024
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 nodejs#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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: nodejs#53728
Refs: nodejs#45427
Refs: nodejs/help#4406
Refs: nodejs#53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit to targos/node that referenced this issue Aug 9, 2024
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 nodejs#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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: nodejs#53728
Refs: nodejs#45427
Refs: nodejs/help#4406
Refs: nodejs#53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit to targos/node that referenced this issue Aug 14, 2024
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 nodejs#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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: nodejs#53728
Refs: nodejs#45427
Refs: nodejs/help#4406
Refs: nodejs#53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos pushed a commit that referenced this issue Aug 16, 2024
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 #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 <[email protected]>
    Reviewed-by: Nico Hartmann <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#95181}

Refs: v8/v8@35888fe
PR-URL: #53728
Refs: #45427
Refs: nodejs/help#4406
Refs: #53633
Refs: nodejs/help#4430
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Santiago Gimeno <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #54077
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. linux Issues and PRs related to the Linux platform.
Projects
None yet
Development

No branches or pull requests

3 participants