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

ABI breaking change in Node.js 16.6.0 #39623

Closed
targos opened this issue Aug 2, 2021 · 2 comments
Closed

ABI breaking change in Node.js 16.6.0 #39623

targos opened this issue Aug 2, 2021 · 2 comments
Labels
v8 engine Issues and PRs related to the V8 dependency.

Comments

@targos
Copy link
Member

targos commented Aug 2, 2021

I'm getting a loader error when trying to load a binary extension built with NodeJS 16.0.0 headers on NodeJS 16.6.0:

node: symbol lookup error: /home/runner/work/STT/STT/node_modules/stt/lib/binding/v0.10.0-alpha.11/linux-x64/node-v93/stt.node: undefined symbol: _ZN2v816FunctionTemplate14SetCallHandlerEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS2_EENS_14SideEffectTypeEPKNS_9CFunctionE

Which is v8::FunctionTemplate::SetCallHandler(void (*)(v8::FunctionCallbackInfo<v8::Value> const&), v8::Local<v8::Value>, v8::SideEffectType, v8::CFunction const*).

Looking at blame in v8, it looks like this is the relevant commit, which changed the last parameter from a v8::CFunction const pointer to an std::vector of CFunction const pointers: v8/v8@a7980d4

Apologies if this is not the correct place to raise this, but it seemed like the most close to the root cause, specially given that it looks to me like NodeJS 16.6.0 was released with an unplanned ABI breakage.

Originally posted by @reuben in #39470 (comment)

@targos targos added v16.x v8 engine Issues and PRs related to the V8 dependency. labels Aug 2, 2021
@targos
Copy link
Member Author

targos commented Aug 2, 2021

Thanks for raising this @reuben. The breakage was not intended. I'm trying a fix locally.

targos added a commit to targos/node that referenced this issue Aug 2, 2021
targos added a commit that referenced this issue Aug 2, 2021
Refs: v8/v8@a7980d4
Refs: v8/v8@ad4eab0
Fixes: #39623

PR-URL: #39624
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
@targos
Copy link
Member Author

targos commented Aug 2, 2021

fixed in 41e105b

@targos targos closed this as completed Aug 2, 2021
targos added a commit that referenced this issue Aug 2, 2021
Refs: v8/v8@a7980d4
Refs: v8/v8@ad4eab0
Fixes: #39623

PR-URL: #39624
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Gireesh Punathil <[email protected]>
Reviewed-By: Beth Griggs <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Gerhard Stöbich <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

No branches or pull requests

1 participant