build: enable runtime linking

Enable runtime linking of shared objects. This will
allow loading of symbols using the RTLD_GLOBAL flag.

PR-URL: https://github.com/nodejs/node/pull/15286
Fixes: https://github.com/nodejs/node/issues/15243
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
jBarz 2017-09-08 05:19:29 -04:00 committed by Ruben Bridgewater
parent 3070d53e31
commit c5eb5bfc2e
No known key found for this signature in database
GPG Key ID: F07496B3EB3C1762
3 changed files with 3 additions and 7 deletions

View File

@ -784,7 +784,7 @@
'common.gypi',
],
'ldflags': ['-Wl,-bE:<(PRODUCT_DIR)/node.exp'],
'ldflags': ['-Wl,-bE:<(PRODUCT_DIR)/node.exp', '-Wl,-brtl'],
},
{
'target_name': 'node_exp',

View File

@ -10,10 +10,9 @@
'xcode_settings': {
'OTHER_LDFLAGS': [ '-Wl,-undefined', '-Wl,dynamic_lookup' ]
}}],
# Pass erok flag to the linker, to prevent unresolved symbols
# from failing. Still, the test won't pass, so we'll skip it on AIX.
# Enable the shared object to be linked by runtime linker
['OS=="aix"', {
'ldflags': [ '-Wl,-berok' ]
'ldflags': [ '-Wl,-G' ]
}]],
},
{

View File

@ -4,9 +4,6 @@ const common = require('../../common');
if (common.isWindows)
common.skip('dlopen global symbol loading is not supported on this os.');
if (common.isAIX)
common.skip('this test does not pass on AIX.');
const assert = require('assert');
const path = require('path');
const os = require('os');