ansible: add Ubuntu 24.04 Dockerfile configs with Clang 19#4156
ansible: add Ubuntu 24.04 Dockerfile configs with Clang 19#4156targos merged 4 commits intonodejs:mainfrom
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.
(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 <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
|
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 <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
The `env` parameter for `process.execve` is documented to default to `process.env`. PR-URL: #60029 Refs: nodejs/build#4156 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Refs: #4144