Skip to content

Node 15.3.0 fails to build with shared-openssl with no-psk #36464

Closed
@everett1992

Description

@everett1992
  • Version: 15.3.0
  • Platform: Compiling on Ubuntu 18.04 but I beleive issue affects all platforms
  • Subsystem: build / compile

What steps will reproduce the bug?

Compile openssl with no-psk, compile node with shared-openssl

#!/bin/bash -x
set -euo pipefail

OPENSSL='openssl-1.1.1g'
NODE_VERSION='v15.3.0'
NODE="node-$NODE_VERSION"

main() {
  [ -d "$OPENSSL" ] || curl -sS https://www.openssl.org/source/"$OPENSSL".tar.gz | tar xz
  [ -d "$NODE" ] || curl -sS https://nodejs.org/dist/"$NODE_VERSION"/"$NODE".tar.gz | tar xz

  configure_make_openssl
  configure_make_node
}

configure_make_openssl() (
  cd "$OPENSSL"
  ./config no-psk

  make
)

configure_make_node() (
  cd "$NODE"
  export LD_LIBRARY_PATH=$(readlink -f ../$OPENSSL)
  ./configure \
    --shared-openssl \
    --shared-openssl-includes "$(readlink -f ../"$OPENSSL"/include)" \
    --shared-openssl-libpath "$(readlink -f ../"$OPENSSL")"

  make
)

main "$@"

no-psk errors

/node-v15.3.0/out/Release/obj.target/libnode/src/crypto/crypto_tls.o: In function `node::crypto::TLSWrap::SelectSNIContextCallback(ssl_st*, int*, void*)':
crypto_tls.cc:(.text+0x487b): undefined reference to `node::crypto::TLSWrap::SetCACerts(node::crypto::SecureContext*)'
/node-v15.3.0/out/Release/obj.target/libnode/src/crypto/crypto_tls.o: In function `node::crypto::TLSWrap::CertCbDone(v8::FunctionCallbackInfo<v8::Value> const&)':
crypto_tls.cc:(.text+0x4c27): undefined reference to `node::crypto::TLSWrap::SetCACerts(node::crypto::SecureContext*)'
collect2: error: ld returned 1 exit status
embedtest.target.mk:200: recipe for target '/node-v15.3.0/out/Release/embedtest' failed
make[1]: *** [/node-v15.3.0/out/Release/embedtest] Error 1
make[1]: *** Waiting for unfinished jobs....
/node-v15.3.0/out/Release/obj.target/libnode/src/crypto/crypto_tls.o: In function `node::crypto::TLSWrap::SelectSNIContextCallback(ssl_st*, int*, void*)':
crypto_tls.cc:(.text+0x487b): undefined reference to `node::crypto::TLSWrap::SetCACerts(node::crypto::SecureContext*)'
/node-v15.3.0/out/Release/obj.target/libnode/src/crypto/crypto_tls.o: In function `node::crypto::TLSWrap::CertCbDone(v8::FunctionCallbackInfo<v8::Value> const&)':
crypto_tls.cc:(.text+0x4c27): undefined reference to `node::crypto::TLSWrap::SetCACerts(node::crypto::SecureContext*)'
collect2: error: ld returned 1 exit status
mkcodecache.target.mk:203: recipe for target '/node-v15.3.0/out/Release/mkcodecache' failed
make[1]: *** [/node-v15.3.0/out/Release/mkcodecache] Error 1
/node-v15.3.0/out/Release/obj.target/libnode/src/crypto/crypto_tls.o: In function `node::crypto::TLSWrap::SelectSNIContextCallback(ssl_st*, int*, void*)':
crypto_tls.cc:(.text+0x487b): undefined reference to `node::crypto::TLSWrap::SetCACerts(node::crypto::SecureContext*)'
/node-v15.3.0/out/Release/obj.target/libnode/src/crypto/crypto_tls.o: In function `node::crypto::TLSWrap::CertCbDone(v8::FunctionCallbackInfo<v8::Value> const&)':
crypto_tls.cc:(.text+0x4c27): undefined reference to `node::crypto::TLSWrap::SetCACerts(node::crypto::SecureContext*)'

Node seems to aim to be compatible with no-psk because it checks for the definition of OPENSSL_NO_PSK

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to build files or the CI.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions