From 9b02f3623b9171ac01ed03e290bfaa97af686415 Mon Sep 17 00:00:00 2001 From: Luca Lindhorst Date: Tue, 4 Jun 2019 20:15:50 +0200 Subject: [PATCH] deps: dlloads node static linked executable OpenSSL dlloads itself to prevent unloading, in case it might be dynamically loaded. However when linked statically this will lead to dloading the main executable. Refs: https://github.com/nodejs/node/pull/21848#issuecomment-498396551 PR-URL: https://github.com/nodejs/node/pull/28045 Fixes: https://github.com/nodejs/node/issues/27925 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Rich Trott --- common.gypi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/common.gypi b/common.gypi index 1eadd779a34427..a6ad4fd5d0ad43 100644 --- a/common.gypi +++ b/common.gypi @@ -501,6 +501,18 @@ '-Wl,--export-dynamic', ], }], + # if node is built as an executable, + # the openssl mechanism for keeping itself "dload"-ed to ensure proper + # atexit cleanup does not apply + ['node_shared_openssl!="true" and node_shared!="true"', { + 'defines': [ + # `OPENSSL_NO_PINSHARED` prevents openssl from dload + # current node executable, + # see https://github.com/nodejs/node/pull/21848 + # or https://github.com/nodejs/node/issues/27925 + 'OPENSSL_NO_PINSHARED' + ], + }], ['node_shared_openssl!="true"', { # `OPENSSL_THREADS` is defined via GYP for openSSL for all architectures. 'defines': [