Skip to content

nodejs 14.15.2 and arm32 doesn't compile  #36741

@dargo600

Description

@dargo600

Looks like a code generation issue with v8 engine

I'm getting a compile issue with static assert on code that is generated when using an arm compile using yocto(dunfell). It appears this is typically ported using meta-openembedded but for whatever reason they didn't port nodejs 14 only nodejs12 on any of the yocto versions.

RMV7_INSTRUCTIONS' '-DCAN_USE_VFP3_INSTRUCTIONS' '-DCAN_USE_VFP32DREGS' '-DCAN_USE_NEON' '-DV8_EMBEDDER_STRING="-node.17"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ARRAY_BUFFER_EXTENSION' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I../deps/v8 -I../deps/v8/include -I/home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/torque-output-root -I/home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/generate-bytecode-output-root -pthread -Wno-unused-parameter -Wno-return-type -fno-strict-aliasing -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++1y -MMD -MF /home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/.deps//home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj.host/v8_initializers/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/internal-coverage-tq-csa.o.d.raw -c
In file included from ../deps/v8/src/codegen/code-stub-assembler.h:10,
from ../deps/v8/src/builtins/builtins-array-gen.h:8,
from /home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/internal-coverage-tq-csa.cc:1:
../deps/v8/src/base/bit-field.h: In instantiation of 'class v8::base::BitField<bool, 34, 1, unsigned int>':
../deps/v8/src/codegen/code-stub-assembler.h:2858:62: required from 'v8::internal::TNodev8::internal::UintPtrT v8::internal::CodeStubAssembler::DecodeWord(v8::internal::SloppyTNodev8::internal::WordT) [with BitField = v8::base::BitField<bool, 34, 1, unsigned int>]'
../deps/v8/src/codegen/code-stub-assembler.h:2873:66: required from 'v8::internal::TNodev8::internal::Uint32T v8::internal::CodeStubAssembler::DecodeWord32FromWord(v8::internal::SloppyTNodev8::internal::WordT) [with BitField = v8::base::BitField<bool, 34, 1, unsigned int>]'
/home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/internal-coverage-tq-csa.cc:259:195: required from here
../deps/v8/src/base/bit-field.h:26:23: error: static assertion failed: shift < 8 * sizeof(U)
26 | STATIC_ASSERT(shift < 8 * sizeof(U)); // Otherwise shifts by {shift} are UB.
| ~~~~~~^~~~~~~~~~~~~~~
../deps/v8/src/base/macros.h:200:43: note: in definition of macro 'STATIC_ASSERT'
200 | #define STATIC_ASSERT(test) static_assert(test, #test)

The other static compile issue I noticed was here:

RMV7_INSTRUCTIONS' '-DCAN_USE_VFP3_INSTRUCTIONS' '-DCAN_USE_VFP32DREGS' '-DCAN_USE_NEON' '-DV8_EMBEDDER_STRING="-node.17"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DOBJECT_PRINT' '-DV8_INTL_SUPPORT' '-DV8_CONCURRENT_MARKING' '-DV8_ARRAY_BUFFER_EXTENSION' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DV8_SNAPSHOT_COMPRESSION' -I../deps/v8 -I../deps/v8/include -I/home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/torque-output-root -I/home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/generate-bytecode-output-root -pthread -Wno-unused-parameter -Wno-return-type -fno-strict-aliasing -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++1y -MMD -MF /home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/.deps//home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj.host/v8_initializers/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/internal-coverage-tq-csa.o.d.raw -c
In file included from ../deps/v8/src/codegen/code-stub-assembler.h:10,
from ../deps/v8/src/builtins/builtins-array-gen.h:8,
from /home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/internal-coverage-tq-csa.cc:1:
../deps/v8/src/base/bit-field.h: In instantiation of 'class v8::base::BitField<bool, 34, 1, unsigned int>':
../deps/v8/src/codegen/code-stub-assembler.h:2858:62: required from 'v8::internal::TNodev8::internal::UintPtrT v8::internal::CodeStubAssembler::DecodeWord(v8::internal::SloppyTNodev8::internal::WordT) [with BitField = v8::base::BitField<bool, 34, 1, unsigned int>]'
../deps/v8/src/codegen/code-stub-assembler.h:2873:66: required from 'v8::internal::TNodev8::internal::Uint32T v8::internal::CodeStubAssembler::DecodeWord32FromWord(v8::internal::SloppyTNodev8::internal::WordT) [with BitField = v8::base::BitField<bool, 34, 1, unsigned int>]'
/home/ird/ird-bsp/ird-bsp/build-vector/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/nodejs/14.15.2-r0/node-v14.15.2/out/Release/obj/gen/torque-output-root/torque-generated/../../deps/v8/src/builtins/internal-coverage-tq-csa.cc:259:195: required from here
../deps/v8/src/base/bit-field.h:26:23: error: static assertion failed: shift < 8 * sizeof(U)
26 | STATIC_ASSERT(shift < 8 * sizeof(U)); // Otherwise shifts by {shift} are UB.

Metadata

Metadata

Assignees

No one assigned

    Labels

    armIssues and PRs related to the ARM platform.buildIssues and PRs related to build files or the CI.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions