-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
change the min mac os x version required for node-gyp rebuild
#23685
change the min mac os x version required for node-gyp rebuild
#23685
Conversation
It fixes an issue when running `npm install` for a project with *Node v6.11.5* and *npm v3.10.10* on *Mac OS X 10.4 Mojave* and *Xcode v9.4.1 || Xcode v10.0*. It asks for the 'utility' file when running `node-gyp rebuild`. Fixes: nodejs/node-gyp#1574
a80901c
to
bca6c16
Compare
Rebased on |
@nodejs/lts This fixes issues with native addons. |
/CC @nodejs/platform-macos @nodejs/node-gyp @nodejs/addon-api @gdams the point is to land this as |
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.
For Node.js 6 PR's should target v6.x-staging
instead of v6.x
.
On a technical level, bumping MACOSX_DEPLOYMENT_TARGET
is semver-major
and therefore I'm -1 on this for any currently supported releases (including 6). An argument could be made to bump it for Node.js 11 to 10.11
to match 9453240#diff-396d0b75211f5646b2fa730fbdf80a40
cc @nodejs/platform-macos
Addons can always override MACOSX_DEPLOYMENT_TARGET
in their own binding.gyp
files. Neither the deployment target nor the v8.h
file referenced in nodejs/node-gyp#1574 have been changed in years. Is it possible the issue is due to Mojave/Xcode?
We have a blanket policy that we can drop support for EOL platforms mid stream. |
Xcode has been changed its C++ standar library from "libstdc++ (GNU C++ standard library)" to "libc++ (LLVM C++ standard library with C++11 support)". |
ping @ljharb? |
EOL or not (and as you said, Apple has no such policy, which makes it not EOL, which means this blanket policy doesn’t technically apply), it will likely break a lot of Mac users if this ships - hopefully it can wait for a semver major so it’s both a cleaner break, and so i can update nvm in advance of a release to be able to handle it. |
Bumping An example from 2016: 204f3a8 bumped to 10.7, turned on PIE (position-independent executable), and broke the profiler on OS X because it didn't know about PIE slides. For add-ons, there is a workaround: bnoordhuis/node-heapdump#120 (comment) |
@AlexVentura I'm going to close this. It seems like the stage in which we are in the life cycles of node6 isn't a good time to bump this variable. FTR, possible workaround:For users:env CXXFLAGS="-mmacosx-version-min=10.9" npm install For addon authors:add this to your 'xcode_settings': {
'MACOSX_DEPLOYMENT_TARGET': '10.9',
}, |
@refack Got it! Thx to everyone for clarifying the topic a bit more. |
This sounds familiar. We ran into Node.js 8 and above specifies Line 408 in 1519657
Thanks. From that issue and the Xcode 10 release notes: https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes
|
OSX Mojave has issues building for node 6. Prebuild tries to build for everything we support and that includes node 6. Node 6 was built with `libstdc++` and osx has (over the past few years, along with nodejs core) moved to `libc++` as the standard library. It no longer supports it with xcode 10 and that's what ships with Mojave. References - Workaround until we drop node 6 nodejs/node#23685 (comment) - More background nodejs/node#24648 I reformatted trying to work around this issue. Glad it's solved.
OSX Mojave has issues building for node 6. Prebuild tries to build for everything we support and that includes node 6. Node 6 was built with `libstdc++` and osx has (over the past few years, along with nodejs core) moved to `libc++` as the standard library. It no longer supports it with xcode 10 and that's what ships with Mojave. References - Workaround until we drop node 6 nodejs/node#23685 (comment) - More background nodejs/node#24648 I reformatted trying to work around this issue. Glad it's solved.
MacOS Mojave v10.14 here, I solved it by adding LDFLAGS in addition to CXXFLAGS:
|
OSX Mojave has issues building for node 6. Prebuild tries to build for everything we support and that includes node 6. Node 6 was built with `libstdc++` and osx has (over the past few years, along with nodejs core) moved to `libc++` as the standard library. It no longer supports it with xcode 10 and that's what ships with Mojave. References - Workaround until we drop node 6 nodejs/node#23685 (comment) - More background nodejs/node#24648 I reformatted trying to work around this issue. Glad it's solved.
It fixes an issue when running
npm install
for a project with Node v6.11.5 and npm v3.10.10 on Mac OS X 10.4 Mojave and Xcode v9.4.1 || Xcode v10.0. It asks for the 'utility' file when runningnode-gyp rebuild
.Fixes: nodejs/node-gyp#1574
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesThis solution was based on this fix from @yerassyl94.