From 01d7d30ce40525470db28e2ade5f81dd04eb7ceb Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Thu, 13 Jul 2017 15:05:54 -0700 Subject: [PATCH] gyp: implement LD/LDXX for ninja and FIPS The ability to set the link rule is used for FIPS, and needs to set both the `ld =` and `ldxx =` variables in the ninja build file to link c++ (node) and c (openssl-cli, etc.) executables. URL: https://github.com/nodejs/node/pull/14227 Reviewed-By: Refael Ackermann Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell --- configure | 3 +++ tools/gyp/pylib/gyp/generator/ninja.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/configure b/configure index 7074021cf5bfee..8cff260660f63c 100755 --- a/configure +++ b/configure @@ -968,8 +968,11 @@ def configure_openssl(o): o['variables']['openssl_fips'] = options.openssl_fips fips_dir = os.path.join(root_dir, 'deps', 'openssl', 'fips') fips_ld = os.path.abspath(os.path.join(fips_dir, 'fipsld')) + # LINK is for Makefiles, LD/LDXX is for ninja o['make_fips_settings'] = [ ['LINK', fips_ld + ' <(openssl_fips)/bin/fipsld'], + ['LD', fips_ld + ' <(openssl_fips)/bin/fipsld'], + ['LDXX', fips_ld + ' <(openssl_fips)/bin/fipsld'], ] else: o['variables']['openssl_fips'] = '' diff --git a/tools/gyp/pylib/gyp/generator/ninja.py b/tools/gyp/pylib/gyp/generator/ninja.py index 0e8ae9790853ea..aa3f5344fe4c4d 100644 --- a/tools/gyp/pylib/gyp/generator/ninja.py +++ b/tools/gyp/pylib/gyp/generator/ninja.py @@ -1865,6 +1865,10 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, ld = os.path.join(build_to_root, value) if key == 'LD.host': ld_host = os.path.join(build_to_root, value) + if key == 'LDXX': + ldxx = os.path.join(build_to_root, value) + if key == 'LDXX.host': + ldxx_host = os.path.join(build_to_root, value) if key == 'NM': nm = os.path.join(build_to_root, value) if key == 'NM.host': @@ -1954,6 +1958,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, CommandWithWrapper('CXX.host', wrappers, cxx_host)) if flavor == 'win': master_ninja.variable('ld_host', ld_host) + master_ninja.variable('ldxx_host', ldxx_host) else: master_ninja.variable('ld_host', CommandWithWrapper( 'LINK', wrappers, ld_host))