-
-
Notifications
You must be signed in to change notification settings - Fork 171
ansible: add Ubuntu 24.04 Dockerfile configs with Clang 19 #4156
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
Conversation
|
These are copies of the ubuntu2204 files with changes in:
|
Not sure what's the best way to manage the virtual environment in the Docker images. |
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.
(Non-blocking comment)
I think it's worth updating to keep this in step with the other platforms, but just noting that we don't currently use these on Node.js >= 24 as it doesn't build on 32-bit ARM so there's less of a need to update for clang here.
We're already doing this on Alpine:
build/ansible/roles/docker/templates/alpine321.Dockerfile.j2 Lines 44 to 45 in 5a1da01
|
|
Ah right, I forgot. Thanks! |
|
No problem, I forget all kinds of stuff in our Ansible set up 😅. |
|
Next error: |
It looks like Ubuntu 24.04 images have added a non-root
Workarounds seem to be to delete or reassign the user. |
|
Yes, I found that and pushed 76db7cf just before your message. |
|
I don't think it matters to us what the user is actually called (though it'll be confusing if it's inconsistent with elsewhere), but it is important to keep the UID/GID to preserve permissions for the volume mount
|
|
Images are built and running. I started two random test builds: https://ci.nodejs.org/job/targos-node-test-commit-linux-containered/2/ |
I'm surprised this test isn't failing on the existing sharedlib configurations. It executes FWIW |
|
I don't know what to do here. |
|
Okay I'm more confused now. There is clearly a difference in the way On In i.e. we can see that |
and this is from https://ci.nodejs.org/job/targos-node-test-commit-linux-containered/2/nodes=ubuntu2404_sharedlibs_openssl111_x64/consoleFull: and they look to have passed the same command line arguments with the only difference being |
|
I guess |
Yes, it would appear to be doing something reasonable based on the command line. I'm doing a check in a local Ubuntu 24.04 container with gcc 14 (I tried the default gcc 13 but that fails to build V8) to compare with using clang to build. |
|
So I think we've run into https://stackoverflow.com/questions/79405331/why-does-ubuntus-linker-use-as-needed-by-default. Apparently Ubuntu's version of Passing It would be better not to pass through the |
|
I've opted for a simpler test modification: nodejs/node#60027 |
Yes, it's a bug. Opened nodejs/node#60029 |
The `env` parameter for `process.execve` is documented to default to `process.env`. PR-URL: #60029 Refs: nodejs/build#4156 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
|
Rebuild with all configurations: https://ci.nodejs.org/job/targos-node-test-commit-linux-containered/4/ |
|
All green! |
The `env` parameter for `process.execve` is documented to default to `process.env`. PR-URL: #60029 Refs: nodejs/build#4156 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
The `env` parameter for `process.execve` is documented to default to `process.env`. PR-URL: #60029 Refs: nodejs/build#4156 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]>
Refs: #4144