-
Notifications
You must be signed in to change notification settings - Fork 29.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gyp: implement LINK for ninja #14227
Conversation
Based on #14115 (comment), @bnoordhuis , PTAL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oy
Feel like pushing it upstream (than I can approve and land it 😈). |
@refack where is upstream? |
@@ -1927,6 +1927,9 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, | |||
if key == 'CXX.host': | |||
cxx_host = os.path.join(build_to_root, value) | |||
cxx_host_global_setting = value | |||
if key == 'LINK': | |||
ld = os.path.join(build_to_root, value) | |||
ldxx = os.path.join(build_to_root, value) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No LINK.host?
|
@sam-github could you post the ninja files before the patch and after (probably just the openSSL) |
Without this patch, Line 989 in 73078d6
With this patch, the value of
Initially, I modified |
Isn't that too global? or is that the whole point? |
That is the whole point, and it is exactly what is done for the normal Makefile commands. Right now, before this patch:
I don't understand gyp, maybe its intended that ninja and Makefiles do not share the same gyp variable name to set the link command? If so, then either As someone who doesn't get this entire tottering pile of build tools, I'll take suggestions on what is right! With this PR, we can build FIPS on Linux with ninja, without it or something like it, we can't. |
So, @refack what do you think? LINK sets ld&ldxx? Or leave LINK only for Makefiles, and LD sets ld, and LDXX sets ldxx? Or LD sets ld&ldxx? Which is more gypy/ninjay? |
IMO:
|
AFAIK |
out of curiosity, what does the ".host" mean? |
@refack PTAL |
Also perfectly legit. Might be easier to upstream... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reaffirm
@bnoordhuis LGTY? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does the ".host" mean?
Host toolchain. Relevant when cross-compiling.
I'm not sure which side of the |
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: nodejs#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
1e15acf
to
a6cec04
Compare
For releasers, this was landed with bogus |
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: #14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
@sam-github It’s just a typo, the |
Oops, yes, I remember now that there was some kind of paste accident. Sorry. |
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. PR-URL: nodejs#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
Well I'm re-floating it for #12632 so there it is now fixed |
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: #14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: #14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: #14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: nodejs#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: nodejs/node#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: nodejs/node#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: #14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: #14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: nodejs/node#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
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: nodejs/node#14227 Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: James M Snell <[email protected]>
LINK is used for FIPS, and needs to set both the
ld =
andldxx =
variables in the ninja build file to link c++ (node) and c (openssl-cli,
etc.) executables.
Without this, ninja can't link node when buliding in FIPS mode, test using
./configure --ninja --openssl-fips=/home/sam/w/core/openssl-fips-2.0.9/canister
(obviously, with your own FIPS canister).Affected core subsystem(s)
crypto, deps, gyp