Skip to content

Native modules ABI compatibility problems on Node 17 with OpenSSL 3 / OpenSSL 1 #41410

Closed
@mmomtchev

Description

@mmomtchev

Version

17.3.0

Platform

ArchLinux

Subsystem

node-addon-api

What steps will reproduce the bug?

The ArchLinux developers have decided to distribute Node.js 17 built against a shared OpenSSL 1.1.1m library.

Is this to be considered a supported configuration?

Because it has lots of implications for native modules which won't be compatible between different distributions.

Should a flag be added to the Node API version?

Welcome to Node.js v17.3.0.
Type ".help" for more information.
> process.versions
{
  node: '17.3.0',
  v8: '9.6.180.15-node.12',
  uv: '1.42.0',
  zlib: '1.2.11',
  brotli: '1.0.9',
  ares: '1.18.1',
  modules: '102',
  nghttp2: '1.46.0',
  napi: '8',
  llhttp: '6.0.4',
  openssl: '1.1.1m',
  cldr: '40.0',
  icu: '70.1',
  tz: '2021a3',
  unicode: '14.0'
}
> 

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

No response

What is the expected behavior?

Binary compatibility for native modules built using the same ABI level

What do you see instead?

/usr/bin/node: symbol lookup error: /target/lib/binding/node-v102-linux-x64/gdal.node: undefined symbol: SSL_CTX_load_verify_file

Additional information

(https://bugs.archlinux.org/task/73268?string=node&project=0&search_name=&type%5B0%5D=&sev%5B0%5D=&pri%5B0%5D=&due%5B0%5D=&reported%5B0%5D=&cat%5B0%5D=&status%5B0%5D=open&percent%5B0%5D=&opened=&dev=&closed=&duedatefrom=&duedateto=&changedfrom=&changedto=&openedfrom=&openedto=&closedfrom=&closedto=)

Metadata

Metadata

Assignees

No one assigned

    Labels

    node-apiIssues and PRs related to the Node-API.opensslIssues and PRs related to the OpenSSL dependency.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions