-
Notifications
You must be signed in to change notification settings - Fork 166
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
Using GCC 4.9 to build SmartOS binaries #628
Comments
@misterdjules we changed the logic for what smartos version builds what node version recently. It seems that the user is trying to use a toolchain version we're not "supporting" (our official support table is yet to be merged). How about we skip 6.x altogether for smartos14 then? |
Building node binaries with GCC 4.8 won't be supported out of the box (i.e without installing any additional package from pkgsrc) on any SmartOS image. This was an oversight from me, and due to miscommunication between myself and the team building SmartOS images and packages. However, I'm not sure moving from GCC 4.8 to GCC 4.9 is an option within a given major version number due to potential ABI compatibility issues, which is why I was suggesting to move to GCC 4.9 for node >= v8.x. This is a summary of my understanding of the current situation on SmartOS: Node.js building requirements on SmartOS
Node.js runtime requirements for SmartOS
@jbergstroem Does the above look correct? Also, on what SmartOS images are node binaries for versions >= v4.x and <= v8.x currently built? That would determine the minimum SmartOS image version required to run those (with the caveat of needing to install GCC 4.8 runtime libraries, as noted in the table above). Also pinging @jperkin for feedback. |
Looks good! I think it might be useful to add the SmartOS image type (e.g., base-64-lts or base-32-lts) as well as the image version (e.g., 15.4.x). I think it would also be good to spell out the pkgsrc release version the given image version corresponds to. So for example:
For the image type, I'm assuming 64-bit pkgsrc (base-64-lts) is what is required. Also, for image and pkgsrc versions I would generally recommend sticking with the Q4 (14.4.x, 15.4.x, 16.4.x etc) release since those are our LTS releases. |
AFAIK, two years later, we're still using GCC 4.8. Or at least that's what we say in https://github.com/nodejs/node/blob/master/BUILDING.md#supported-platforms-1. Is that correct? And if so, should we do something to change it? |
|
Closing as stale, but if anyone wants to take this up feel free to reopen. |
Ref: nodejs/node#11444.
Currently, it seems node binaries are built with GCC 4.8 on SmartOS. If I remember correctly, we had chosen GCC 4.8 because we wanted to target the oldest possible compiler. However it seems it would make sense to move to GCC 4.9 as per @jperkin's comment:
Since both SmartOS 15.x and 16.x images include GCC 4.9 preinstalled, and 14.x images use a pkgsrc repository that contains GCC 4.9 (but not preinstalled), it shouldn't be a problem for users of SmartOS.
It could probably break ABI compatibility though for users of native node modules built with GCC 4.8 if they moved to a version of node that was built with GCC 4.9, so I would suggest making that change with the next major version at the earliest.
/cc @nodejs/build
The text was updated successfully, but these errors were encountered: