-
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
Enable link time optimization (LTO) for s390x #2758
Comments
We don't build/test on i686 since Node.js 10 (see #885 for the whole discussion). 32-bit Linux binaries are built unofficially over in https://unofficial-builds.nodejs.org/ but those are not regularly checked and don't have tests run. We only have a few Linux -x86 platforms left in the CI (for node-addon-api and libuv, no Node.js builds run on them anymore) on older OS'es (Ubuntu 1404 and 1604) that I'd like to get rid of. s390 would be reasonably easy to add without having to add a new CI job -- an extra call to https://ci.nodejs.org/job/node-test-commit-linuxone/ (with |
Ah the other problem might be is that we don't have later versions of gcc on the CI hosts. For s390x we have devtoolsets 6 and 8. |
There is a dependency on the compiler in order to be able to enable LTO ? |
@mhdawson It was reported broken on gcc 9: nodejs/node#38570. Rereading it might be okay on gcc 8 -- I've started some CI runs with |
https://ci.nodejs.org/job/node-test-commit-linuxone/28796/ passed with |
@richardlau so that's good, I wonder if it would make sense to add it as another target under the make PR testing job? linuxone is fast enough that it would likely not cause any issues. |
I would very much prefer not having to add a brand new job into the CI for testing LTO -- I'd rather call the existing job(s) (e.g. node-test-commit-linuxone) a second time with the If we add to the PR testing job (as opposed to daily master) then we need to take into account all the release lines (as we use the same job to test backport PRs). Test builds with |
I'm thinking we must have a way to filter out jobs for particular node versions. Maybe using the version selector script we can filter it out by having a new platform, something like s390x-lto ? That might also give us the way to run the same job with --enable-lto ? |
I've added an s390x LTO build into node-test-commit -- a second invocation of Audit
Test builds
|
Looks great. @richardlau thanks ! |
I've had to change the LTO build to be a second "platform" matrix configuration so that "resume build" will properly resume LTO builds -- it looks like the multijob plugin has some issues with multiple invocations of the same job with different parameters when resuming. Audit |
There is currently a daily job that enables link time optimization (LT0) and we are wondering if it would be possible to create new CI jobs, or modify existing ones, to enable LTO for s390x
and i686:$ ./configure --enable-lto
The motivation for this is that at Red Hat/IBM we have run into issues with these platforms and it would be great if these could be discovered early.
The text was updated successfully, but these errors were encountered: