nodejs / nodejs/node

Node 22.22.2 does not build without -DV8_SHARED_RO_HEAP anymore

Open
#62,631 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

v8 engine
Dominant language
JavaScript
Stars
122k
Forks
37.3k
Avg merge
4d 2h
Merged PRs (30d)
283

Description

Version

22.22.2

Platform
FreeBSD factory-amd64 15.0-STABLE FreeBSD 15.0-STABLE amd64
Subsystem

No response

What steps will reproduce the bug?

Try to build node 22.22.2 without V8_SHARED_RO_HEAP (./configure --disable-shared-readonly-heap).
Building node 22.22.1 (before https://github.com/nodejs/node/commit/e3f4d6a42ece2643746761fd585d8e86c78ff711) is working fine.

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

Everytime you omit "-DV8_SHARED_RO_HEAP" flag.

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

./configure --disable-shared-readonly-heap $REST_OF_CONFIG_FLAGS should work.
Successfully build ast-value-factory.o.

What do you see instead?
../deps/v8/src/ast/ast-value-factory.cc:86:66: error: too few arguments to function call, single argument 'object' was not specified
   86 |         raw_hash_field_, HashSeed(ReadOnlyHeap::GetReadOnlyRoots()));
      |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
../deps/v8/src/heap/read-only-heap-inl.h:29:29: note: 'GetReadOnlyRoots' declared here
   29 | ReadOnlyRoots ReadOnlyHeap::GetReadOnlyRoots(Tagged<HeapObject> object) {
      |                             ^                ~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
gmake[2]: *** [tools/v8_gypfiles/v8_base_without_compiler.target.mk:1060: /wrkdirs/usr/ports/databases/mongosh/work/boxednode/mongosh/node-v22.22.2/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/ast/ast-value-factory.o] Error 1
Additional information

Due to this commit:

deps/v8/src/ast/ast-value-factory.cc
https://github.com/nodejs/node/commit/e3f4d6a42ece2643746761fd585d8e86c78ff711#diff-de0e218f45b6aaea5a8dbf16b77ff82747642ad89cd7f4c84341a46dc5f8c2e3R85-R86

deps/v8/src/heap/read-only-heap-inl.h
https://github.com/nodejs/node/commit/e3f4d6a42ece2643746761fd585d8e86c78ff711#diff-0cacd7b4ec67ce10f0c6a7d78ff6ea42e33c9bfaff40dd4111d24a64528a337bR29-R38

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with deps/v8/src/ast/ast-value-factory.cc around the ReadOnlyHeap::GetReadOnlyRoots call and compare it with deps/v8/src/heap/read-only-heap-inl.h. Reproduce using ./configure --disable-shared-readonly-heap on FreeBSD, then build Node with that configuration. Done means ast-value-factory.o and the full Node build succeed without V8_SHARED_RO_HEAP.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, nodejs
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.