Repository navigation
build: set V8_DISABLE_PRESERVE_MOST - #67093
joyeecheung wants to merge 2 commits into
Conversation
|
Review requested:
|
|
(triggering GHA for testing, not ready for review) |
Original commit message:
Add V8_DISABLE_PRESERVE_MOST for embedders to opt out of preserve_most
preserve_most changes the calling convention, which clang
encodes in the mangled name (e.g. "U" instead of "A" for cdecl in the
Microsoft C++ ABI). A consumer whose toolchain does not support
the attribute would reference a differently mangled symbol.
This patch adds a V8_DISABLE_PRESERVE_MOST to disable it, so that
it's possible to link to V8 using different toolchains, as long
as the value of it is set consistently.
Refs: nodejs#55784
Change-Id: I67b49e739942d4026ac060be35bb39ec22256cbd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8532546
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#111381}
Refs: v8/v8@c389861
aad6a6b to
b5bcd54
Compare
|
https://chromium-review.googlesource.com/c/v8/v8/+/8532546 has landed. I backported it to replace the old floating patch with the new approach. This is now ready for review @nodejs/build @nodejs/v8-update |
I think that helps partially, yes, although for those consumers there can still be a gap depending on whether they include node.h consistently in all translation units or the order in which they include these headers... |
|
agree that these addons need more than |
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/8532546
This replaces an old floating patch from #55784 to set the preserve_most attribute more consistently for build Node.js and addons consuming common.gypi. We use the explicit macro instead of toolchain detection so that it stays consistent across toolchains.