GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||
GeezerVison is showing github.com — doc: update minimum g++ version to 4.9.4 by bnoordhuis · Pull Request #13466 · nodejs/node Conversation
Member
The 4.8.x releases don't fully support C++11. Update the prerequisites To be decided if we should also update the minimum clang version. Refs: #11840 Checklist
Affected core subsystem(s)
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
|
There was an error while loading. Please reload this page.
|
Docs: "Clang 3.3 and later implement all of the ISO C++ 2011 standard." I did not try to build with clang 3.3/3.4.2 though. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Which number is the clang version here? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
There is only a tenuous correspondence between apple-clang's version numbers and upstream clang. For OS X, we should just say "latest xcode (or xcode command line tools) or bust." |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@gibfahn |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
I guess the question is whether if you install the command line tools on an older macOS level you still get the latest version. But in general that makes sense. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
We're still stuck on 4.8.2 for CentOS6/EL6, both test and release builds (have been for a while so I don't know why our stated minimum is newer than what we actually use). This comes out of devtoolset-2 from the scientificlinux repos. Any thoughts on how we go about getting a better gcc on EL6 without too much pain? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Looks like we get devtoolset-3 on EL6 without anything special, so we could just switch to that instead of the hoops we jump through for devtoolset-2. Does anyone know of any potentially breaking reasons that we might not want to switch from gcc 4.8 to gcc 4.9 for the Node.js 8 binaries that we ship? Would this be a disruption to users in any way? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Am I right in thinking that the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I think the answer is yes if it's a supported (by Apple) version of OS X / macOS.
Correct. Per https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html: libstdc++6 releases are always forward-compatible and compatible with the previous one unless otherwise noted (which isn't the case for these three.) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
So these are all compatible, and there's no issue right (somewhat confused by the double negative)? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
They are not incompatible, no. :-) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Like 👍
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
How about adding a parenthetical (on macOS - latest xcode or xcode command line tools)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Yes please. This is blocking #13676.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@bnoordhuis ... I'd like to get this landed but @refack had an outstanding comment: #13466 (comment) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Non blocking suggestion. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
The 4.8.x releases don't fully support C++11. Update the prerequisites for node.js 8 so that we won't have to work around compiler bugs in the future. To be decided if we should also update the minimum clang version. I believe clang 3.4.2 properly supports C++11 but am not 100% sure. Refs: nodejs#11840
a378c66 to
6ab0f75
Compare
|
Added note, PTAL. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
The 4.8.x releases don't fully support C++11. Update the prerequisites for node.js 8 so that we won't have to work around compiler bugs in the future. To be decided if we should also update the minimum clang version. I believe clang 3.4.2 properly supports C++11 but am not 100% sure. PR-URL: #13466 Ref: #11840 Reviewed-By: Gibson Fahnestock <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Nikolai Vavilov <[email protected]>
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
The 4.8.x releases don't fully support C++11. Update the prerequisites for node.js 8 so that we won't have to work around compiler bugs in the future. To be decided if we should also update the minimum clang version. I believe clang 3.4.2 properly supports C++11 but am not 100% sure. PR-URL: #13466 Ref: #11840 Reviewed-By: Gibson Fahnestock <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Refael Ackermann <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Nikolai Vavilov <[email protected]>
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`23d41f3118`](2abaa86ba8)]
[#13466](#13466)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`2bb6614904`](8506acc1b5)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`30bc9dc20f`](30bc9dc20f)]
[#13137](#13137)
* **V8**
* The V8 engine has been upgraded to version 5.9, which has a significantly
changed performance profile.
[#13515](#13515)
PR-URL: #13744
Notable changes:
* **Async Hooks**
* Multiple improvements to Promise support in `async_hooks` have been made.
* **Build**
* The compiler version requirement to build Node with GCC has been raised to
GCC 4.9.4.
[[`820b011ed6`](820b011ed6)]
[#13466](#13466)
* **Cluster**
* Users now have more fine-grained control over the inspector port used by
individual cluster workers. Previously, cluster workers would simply
increment from the master's debug port.
[[`dfc46e262a`](dfc46e262a)]
[#14140](#14140)
* **DNS**
* The server used for DNS queries can now use a custom port.
[[`ebe7bb29aa`](ebe7bb29aa)]
[#13723](#13723)
* Support for `dns.resolveAny()` has been added.
[[`6e30e2558e`](6e30e2558e)]
[#13137](#13137)
* **npm**
* The `npm` CLI has been updated to version 5.3.0. In particular, it now comes
with the `npx` binary, which is also shipped with Node.
[[`dc3f6b9ac1`](dc3f6b9ac1)]
[#14235](#14235)
* `npm` Changelogs:
- [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4)
- [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0)
- [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0)
- [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0)
PR-URL: #13744
Big thanks to @addaleax who prepared the vast majority of this release. Notable changes: * **Async Hooks** * Multiple improvements to Promise support in `async_hooks` have been made. * **Build** * The compiler version requirement to build Node with GCC has been raised to GCC 4.9.4. [[`820b011ed6`](nodejs@820b011ed6)] [nodejs#13466](nodejs#13466) * **Cluster** * Users now have more fine-grained control over the inspector port used by individual cluster workers. Previously, cluster workers would simply increment from the master's debug port. [[`dfc46e262a`](nodejs@dfc46e262a)] [nodejs#14140](nodejs#14140) * **DNS** * The server used for DNS queries can now use a custom port. [[`ebe7bb29aa`](nodejs@ebe7bb29aa)] [nodejs#13723](nodejs#13723) * Support for `dns.resolveAny()` has been added. [[`6e30e2558e`](nodejs@6e30e2558e)] [nodejs#13137](nodejs#13137) * **npm** * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes with the `npx` binary, which is also shipped with Node. [[`dc3f6b9ac1`](nodejs@dc3f6b9ac1)] [nodejs#14235](nodejs#14235) * `npm` Changelogs: - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4) - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0) - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0) - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0) PR-URL: nodejs#13744
Big thanks to @addaleax who prepared the vast majority of this release. Notable changes: * **Async Hooks** * Multiple improvements to Promise support in `async_hooks` have been made. * **Build** * The compiler version requirement to build Node with GCC has been raised to GCC 4.9.4. [[`820b011ed6`](820b011ed6)] [#13466](#13466) * **Cluster** * Users now have more fine-grained control over the inspector port used by individual cluster workers. Previously, cluster workers would simply increment from the master's debug port. [[`dfc46e262a`](dfc46e262a)] [#14140](#14140) * **DNS** * The server used for DNS queries can now use a custom port. [[`ebe7bb29aa`](ebe7bb29aa)] [#13723](#13723) * Support for `dns.resolveAny()` has been added. [[`6e30e2558e`](6e30e2558e)] [#13137](#13137) * **npm** * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes with the `npx` binary, which is also shipped with Node. [[`dc3f6b9ac1`](dc3f6b9ac1)] [#14235](#14235) * `npm` Changelogs: - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4) - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0) - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0) - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0) PR-URL: #13744
Big thanks to @addaleax who prepared the vast majority of this release. Notable changes: * **Async Hooks** * Multiple improvements to Promise support in `async_hooks` have been made. * **Build** * The compiler version requirement to build Node with GCC has been raised to GCC 4.9.4. [[`820b011ed6`](820b011ed6)] [#13466](#13466) * **Cluster** * Users now have more fine-grained control over the inspector port used by individual cluster workers. Previously, cluster workers would simply increment from the master's debug port. [[`dfc46e262a`](dfc46e262a)] [#14140](#14140) * **DNS** * The server used for DNS queries can now use a custom port. [[`ebe7bb29aa`](ebe7bb29aa)] [#13723](#13723) * Support for `dns.resolveAny()` has been added. [[`6e30e2558e`](6e30e2558e)] [#13137](#13137) * **npm** * The `npm` CLI has been updated to version 5.3.0. In particular, it now comes with the `npx` binary, which is also shipped with Node. [[`dc3f6b9ac1`](dc3f6b9ac1)] [#14235](#14235) * `npm` Changelogs: - [v5.0.4](https://github.com/npm/npm/releases/tag/v5.0.4) - [v5.1.0](https://github.com/npm/npm/releases/tag/v5.1.0) - [v5.2.0](https://github.com/npm/npm/releases/tag/v5.2.0) - [v5.3.0](https://github.com/npm/npm/releases/tag/v5.3.0) PR-URL: #13744
There was an error while loading. Please reload this page.
|
I've got an unhealthy amount of info in my head about what Linux distros will be affected by this change and in what ways, so I thought I'd try and summarize that info here for people to see. As expected only older distros are affected, sometimes in different ways. Some are "easy to fix", which I define as "there is an easily installable new compiler toolchain available that doesn't cause any other issues when installed". I'll go from least problematic to most. NO ISSUES All supported version of Fedora EASY TO DEAL WITH CentOS 6 / CentOS 7 / RHEL6 / RHEL7 via devtoolset-6 UNSURE HOW TO DEAL WITH BUT FEEL OKAY IGNORING Debian Wheezy ACTUAL PROBLEM PRACTICALLY SPEAKING Debian Jessie Jessie is a special case for a few reasons.
Now, Jessie ships with Obviously let me know if there's any additional questions or info I can provide. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@chrislea Useful info, thanks. As to the gcc version, 4.9.2 should work (and will probably continue to work) but I didn't want to get in a situation like we did with clang, where we had to float an intrusive patch to work around a bug in 3.4.1 that was fixed in 3.4.2. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@chrislea et al. Will it give us more wiggle room, if we build each dep with a different toolset? (If that's possible and not harmful)? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
FYI, default compiler for SLES12 is still gcc 4.8.5 although gcc6 is also available. SLE11SP4 only seems to have 5.3.1 available, with default gcc being 4.3 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Okay, thanks for the replies. @bnoordhuis I think based on your comment that we're probably safe to assume 4.9.2 is "okay" for now. I will look into seeing if I can make 4.9.4 packages for Jessie to get around the potential issue that you mention that we saw with @refack I'm not entirely sure what you're asking. We (NodeSource) currently build distro packages with toolsets native to each distro, so we're already using different toolsets and have been forever. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I mean decompose the build, for example, build |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I am using cent os 7 and gcc 4.8.2, when compile node 8.9.1, it just warn me but not stop me from compile node. does this mean it is safe for me to compile node 8.9.1 with gcc 4.8.2 ? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@guillaume-lin Just because something is not officially supported does not mean it is impossible, it just means that if you have any problems with your builds, you are on your own and most likely won't receive any support from us. Note that even if you manage to compile node using an outdated (and unsupported) compiler, this is no guarantee for the correctness, quality and / or performance of the resulting binary. We strongly recommend to use an up-to-date toolchain to compile node. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.