Skip to content

ABI compatibility tool #18159

@hashseed

Description

@hashseed

ABI stability is a hard requirement when upgrading V8 within the same Node branch. This is so that native modules that uses V8 APIs and built for a particular Node branch do not need to be rebuilt.

So far, we've been mostly ensured ABI stability through intensive eyeballing of changes to deps/v8/include/*.h and by running CITGM. This is tedious and could yield false positives.

I have played around a bit with this ABI compliance checker, requiring some tweaking of V8's build files and an additional GN arg (use_debug_fission = false).

Using that tool is fairly inconvenient, very slow (took me like some 20 minutes), and the result is not all that useful. It is a good start, but

  • does not find differences in the constants in v8.h.
  • includes changes to all header files in v8, not just ones in v8/include.

I'm neither an expert on DWARF nor on binary compatibility, so some contribution and help here would be greatly appreciated. Alternative here is to wait until every native module has migrated to n-api, but in the meantime...

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedIssues that need assistance from volunteers or PRs that need help to proceed.stalestalledIssues and PRs that are stalled.toolsIssues and PRs related to the tools directory.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions