Skip to content

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

Closed as not planned
Closed as not planned
@x-yuri

Description

@x-yuri

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to build files or the CI.linuxIssues and PRs related to the Linux platform.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions