You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
move minimum supported gcc to gcc 12 for Node.js 23 #3806
Due to compiler issues, we've already had to move Linux on s390x (LinuxONE) builds to use gcc 12: #3630
(FWIW the Red Hat team maintaining the V8 ports to Power and z also use gcc 12.)
My proposal is to move to gcc 12 as not all platforms that we support that we use gcc to build on have gcc 13 yet (e.g. AIX, IBM i). It would be easier to have the same baseline across all supported platforms, although it is not strictly necessarily (in the past we have had the minimum vary by platform, but in practice that forces Node.js to be compatible with the lowest out of the set).
Compilation of main is currently broken on gcc 12.2 (although not on RHEL 8) but would be fixed by landing nodejs/node#53728.
For releases on Linux we'd continue to use RHEL 8 (now in maintenance but good through to 2029) and use gcc-toolset-12 instead of gcc-toolset-10. This would mean we keep compatibility with glibc 2.28 and libstdc++ 6.0.25 (the base in RHEL 8) and Node.js 23 would continue to run in the same places that Node.js 22, 20 and 18 does. The exception to this is likely to be 32-bit arm (armv7l) which we use a custom cross-compiler for (as RHEL doesn't support armv7l). We would either need to generate a new gcc 12 cross-compiler (and check what that would mean in terms of run-time compatibility) or perhaps discuss whether armv7l is still a platform we continue to supply official binaries for.
For the new MNX hosted SmartOS machines which are meant to replace the equinix_mnx ones, it looks like SmartOS 23 has gcc 13 by default:
$ ssh test-mnx-smartos23-x64-1 gcc --version
gcc (GCC) 13.2.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
while SmartOS 21 is 10:
$ ssh test-mnx-smartos21-x64-1 gcc --version
gcc (GCC) 10.4.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$
So perhaps this will be taken care of when the build issues on the new machines are resolved in #3731? cc @jperkin@ryanaslett
I'm going to close this issue -- we have #3731 for tracking the migration of the SmartOS hosts and the gcc update should be taken care of by updating to SmartOS 23.
Activity
jenkins: skip debian11 for Node.js >=23
ansible,jenkins: revert to default gcc-12 on debian12
targos commentedon Jul 28, 2024
I opened nodejs/node#54081 to change the warning threshold in Node.js.
It includes a temporary commit that makes the build exit with code 1 when the version is too low so we can easily assess the impact on CI:
https://ci.nodejs.org/job/node-test-pull-request/60690/
ansible: install gcc-12 on ubuntu2204
build: warn for GCC versions earlier than 12.2
ansible,jenkins: revert to default gcc-12 on debian12 (#3845)
jenkins: skip debian11 for Node.js >=23 (#3844)
ansible: install gcc-12 on ubuntu2204 (#3846)
18 remaining items
richardlau commentedon Sep 5, 2024
select-compiler PR for ubuntu2204: #3890
targos commentedon Sep 5, 2024
For SmartOS I saw that we have hosts with newer versions but they are not used by the Jenkins job
richardlau commentedon Sep 5, 2024
Being tracked under #3731 as part of the Equinix migration.
ansible: add rhel9_arm_cross containers (#3889)
jenkins: select gcc 12 on Ubuntu 22.04 for Node.js 23 (#3890)
targos commentedon Sep 9, 2024
New try: https://ci.nodejs.org/job/node-test-commit/74227/
targos commentedon Sep 10, 2024
Only SmartOS remains.
richardlau commentedon Sep 10, 2024
For the new MNX hosted SmartOS machines which are meant to replace the equinix_mnx ones, it looks like SmartOS 23 has gcc 13 by default:
while SmartOS 21 is 10:
So perhaps this will be taken care of when the build issues on the new machines are resolved in #3731? cc @jperkin @ryanaslett
jenkins: select gcc12 for Node 23 on IBM i (#3908)
doc: reflect toolchains used for official binaries
richardlau commentedon Oct 11, 2024
I'm going to close this issue -- we have #3731 for tracking the migration of the SmartOS hosts and the gcc update should be taken care of by updating to SmartOS 23.
ansible: install gcc12 on IBM i (#3907)