Skip to content

Node.js would not compile with --debug --v8-non-optimized-debug #38571

@john-yan

Description

@john-yan
  • Version: master
  • Platform: Ubuntu
  • Subsystem: X64 or PPC64LE

What steps will reproduce the bug?

./configure --debug --v8-non-optimized-debug
make -j32

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

Consistently

What is the expected behavior?

compilation successful

What do you see instead?

Linker fail because a ton of undefined ref
eg.

/workdir/node/out/Debug/obj/gen/torque-generated/src/objects/fixed-array-tq-inl.inc:287: undefined reference to `v8::internal::IsFixedArrayBase_NonInline(v8::internal::HeapObject)'
/usr/bin/ld: /workdir/node/out/Debug/obj.target/mksnapshot/deps/v8/src/snapshot/embedded/embedded-file-writer.o: in function `v8::internal::TorqueGeneratedByteArray<v8::internal::ByteArray, v8::internal::FixedArrayBase>::TorqueGeneratedByteArray(unsigned long)':
/workdir/node/out/Debug/obj/gen/torque-generated/src/objects/fixed-array-tq-inl.inc:349: undefined reference to `v8::internal::IsByteArray_NonInline(v8::internal::HeapObject)'
/usr/bin/ld: /workdir/node/out/Debug/obj.target/v8_base_without_compiler/deps/v8/src/api/api.o: in function `v8::internal::TorqueGeneratedPrimitiveHeapObject<v8::internal::PrimitiveHeapObject, v8::internal::HeapObject>::TorqueGeneratedPrimitiveHeapObject(unsigned long)':
/workdir/node/out/Debug/obj/gen/torque-generated/src/objects/primitive-heap-object-tq-inl.inc:4: undefined reference to `v8::internal::IsPrimitiveHeapObject_NonInline(v8::internal::HeapObject)'
/usr/bin/ld: /workdir/node/out/Debug/obj.target/v8_base_without_compiler/deps/v8/src/api/api.o: in function `v8::internal::TorqueGeneratedHeapNumber<v8::internal::HeapNumber, v8::internal::PrimitiveHeapObject>::TorqueGeneratedHeapNumber(unsigned long)':
/workdir/node/out/Debug/obj/gen/torque-generated/src/objects/heap-number-tq-inl.inc:15: undefined reference to `v8::internal::IsHeapNumber_NonInline(v8::internal::HeapObject)'
/usr/bin/ld: /workdir/node/out/Debug/obj.target/v8_base_without_compiler/deps/v8/src/api/api.o: in function `v8::internal::TorqueGeneratedJSProxy<v8::internal::JSProxy, v8::internal::JSReceiver>::TorqueGeneratedJSProxy(unsigned long)':

Additional information

Some of the torque generated .cc are not being compiled to .o eg. fixed-array-tq.o. Therefore, at the linking step, definition are missing. I suspect either gpy is not working or the GN scraper is not working as expected. I also check the Release build, fixed-array-tq.o is also missing but for some reason it compiles OK. All the torque generated .cc file are compiled to .o by GN+ninja on standalone v8 compilation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    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