Skip to content
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

Import gyp patches from nodejs/node #1518

Closed
wants to merge 8 commits into from
Closed

Import gyp patches from nodejs/node #1518

wants to merge 8 commits into from

Conversation

maclover7
Copy link
Contributor

@maclover7 maclover7 commented Jul 31, 2018

Checklist
Description of change

This begins the process of removing tools/gyp from nodejs/node. Once this lands, a new release is published, and is upstreamed into npm, then tools/gyp can be removed from nodejs/node. This would result in only a single version of GYP needing to maintained by the Node.js Foundation, which would live inside nodejs/node-gyp.

I'm planning on opening a separate PR to get all of these on nodejs/node-gyp@master once this PR lands.

GYP patches from nodejs/node

cc @nodejs/node-gyp @nodejs/gyp

Stewart Addison and others added 7 commits July 31, 2018 11:16
Required to support the shared library builds on AIX - this sets the
shared library suffix within GYP to .a instead of .so on AIX
My patch: https://codereview.chromium.org/2492233002/ was landed as
as part of this one which fixed some other (not required, but
included for completeness of the backport) changes:

PR-URL: https://github.com/nodejs/node/pull9675
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Ref: https://codereview.chromium.org/2511733005/
Pulling in https://codereview.chromium.org/2019133002/ in its current
state, as gyp seems to be largely abandoned as a project.

Original commit message:

    Hash intermediate file name to avoid ENAMETOOLONG

    Hash the intermediate Makefile target used for multi-output rules
    so that it still works when the involved file names are very long.

    Since the intermediate file's name is effectively arbitrary, this
    does not come with notable behavioural changes.

    The `import hashlib` boilerplate is taken directly
    from `xcodeproj_file.py`.

Concretely, this makes the V8 inspector build currently fail when long
pathnames are involved, notably when using ecryptfs which has a lower
file name length limit.

Fixes: nodejs/node#7959
Ref: nodejs/node#7510
PR-URL: nodejs/node#7963
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
this is a re-base of the gyp part of
3c46bb9931ecea71167342322e09121ee48cde8e
after bumping GYP version to
https://chromium.googlesource.com/external/gyp/+/eb296f67da078ec01f5e3a9ea9cdc6d26d680161

Original-Review-By: James M Snell <jasnell@gmail.com>
Ref: nodejs/node#7986
PR-URL: nodejs/node#12450
Reviewed-By: João Reis <reis@janeasystems.com>
this is a re-base of the gyp part of
6a09a69ec9d36b705e9bde2ac1a193566a702d96
after bumping GYP version to
https://chromium.googlesource.com/external/gyp/+/eb296f67da078ec01f5e3a9ea9cdc6d26d680161

Original-PR-URL: nodejs/node#11956
Original-Ref: nodejs/node#9163
Original-Reviewed-By: James M Snell <jasnell@gmail.com>

PR-URL: nodejs/node#12450
Reviewed-By: João Reis <reis@janeasystems.com>
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 <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: nodejs/node#20716
Fixes: nodejs/node#20682
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Previously running ./configure with only the Xcode Command Line Tools
installed would give:

xcrun: error: unable to lookup item 'PlatformPath' from command line tools installation
xcrun: error: unable to lookup item 'PlatformPath' in SDK '/'

Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
Fixes: nodejs/node#12531

PR-URL: nodejs/node#21520
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@maclover7

This comment has been minimized.

Currently the files specified in libraries in node.gyp `cctest` target are
getting a '.lib' extension on windows when generated with ninja.
This commit adds a check to see if a file has a '.obj' extension and in
that case no '.lib' extension will be added.

Also, the LIBS specified in the 'libraries' section are not
being included in the --start-group --end-group section which
means that these libraries will not be searched causing issue
with linkers where the order matters.

PR-URL: nodejs/node#12484
Fixes: nodejs/node#12448
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
@maclover7
Copy link
Contributor Author

CI (https://ci.nodejs.org/job/nodegyp-test-pull-request/75/) is green besides for v0.10, which should be fixed by #1492

@maclover7 maclover7 mentioned this pull request Jul 31, 2018
@rvagg
Copy link
Member

rvagg commented Aug 8, 2018

@maclover7 the biggest changes I see in here impact AIX and macOS, neither of which appear to be in nodegyp-test-pull-request. xcode_emulation.py is my main concern (compile_commands_json) is purely for Node's configure consumption). Can we get macOS into that Jenkins job?

@maclover7
Copy link
Contributor Author

maclover7 commented Aug 8, 2018

@rvagg Created a clone of the usual job and added macOS 10.11 -- looks like macOS is failing with Node.js v0.10.48: https://ci.nodejs.org/job/maclover7-nodegyp-test-pull-request/4/

@rvagg
Copy link
Member

rvagg commented Aug 8, 2018

That v0.10 error got fixed in #1492 and improved in #1521, also I was on my mac messing around with this yesterday and couldn't find a problem so my comfort level has improved. Unfortunately it's edge-cases that are going to bite us since we have such a poor test suite here.

@rvagg
Copy link
Member

rvagg commented Aug 9, 2018

merged & published in v3.8.0

@rvagg rvagg closed this Aug 9, 2018
@maclover7 maclover7 deleted the jm-mv-node-patches branch August 9, 2018 00:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants