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

deps: fix V8 compilation on Apple clang 13 & 14 #288

Open
wants to merge 20 commits into
base: canary
Choose a base branch
from

Conversation

joyeecheung
Copy link
Member

No description provided.

nodejs-github-bot and others added 20 commits August 7, 2024 06:03
Major V8 updates are usually API/ABI incompatible with previous
versions. This commit adapts NODE_MODULE_VERSION for V8 12.9.

Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
dllexport introduces issues when compiling with MSVC.

PR-URL: nodejs/node#47251
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
It introduces process hangs on some platforms because Node.js doesn't
tear down V8 correctly.
Disable it while we work on a solution.

Refs: nodejs/node#47297
Refs: https://bugs.chromium.org/p/v8/issues/detail?id=13902
PR-URL: nodejs/node#47450
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: James M Snell <[email protected]>
After enabling -std:c++20 on Windows, patch is now much smaller.

PR-URL: nodejs/node#52465
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
As V8 has moved away from wrapper-descriptor-based CppHeap, this
patch:

1. Create the CppHeap without using wrapper descirptors.
2. Deprecates node::SetCppgcReference() in favor of
   v8::Object::Wrap() since the wrapper descriptor is no longer
   relevant. It is still kept as a compatibility layer for addons
   that need to also work on Node.js versions without
   v8::Object::Wrap().
Add/remove abseil files introduced by V8 12.7 update found by:

```
git diff-tree --no-commit-id --name-status 0ec8f7eea3 -r | grep '^[AD].*abseil.*'
```
Two fields on the `v8::FastApiCallbackOptions` struct were deprecated
recently: `fallback` and `wasm_memory`. This PR removes uses of these
two fields in node.js.
@joyeecheung
Copy link
Member Author

The third commit fixes the osx11 failure in nodejs/node#54077 . Second commit is only present in canary for now. Not sure about the first one, looks recent.

@joyeecheung
Copy link
Member Author

cc @targos

@targos
Copy link
Member

targos commented Aug 7, 2024

Nice! I suggest you upstream 40548f8. It makes sense to include vector if vector is used in the file.

@lemire
Copy link
Member

lemire commented Aug 7, 2024

Current LLVM on Apple platforms is version 15, released in 2023. Version 16 is in its 5th beta and should enter soon RC1.

@joyeecheung
Copy link
Member Author

joyeecheung commented Aug 7, 2024

Uploaded the third commit to https://chromium-review.googlesource.com/c/v8/v8/+/5771451 and the first to https://chromium-review.googlesource.com/c/v8/v8/+/5771471 (not 100% sure about the second commit yet, it fixes the bug but maybe I should simplify it..)

@targos
Copy link
Member

targos commented Aug 8, 2024

Found another issue in Xcode 13: nodejs/node#54077 (comment)

@targos
Copy link
Member

targos commented Aug 8, 2024

It turns out we also need c21cbdf for Xcode 13: https://ci.nodejs.org/job/node-test-commit-osx/60282/nodes=osx11-x64/console

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants