-
-
Notifications
You must be signed in to change notification settings - Fork 102
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
[ansible] Add Ubuntu 20.04 linux-riscv64 image #3240
Conversation
It will be used for cross-compilation and testing.
I'm not sure how to update https://ci.adoptium.net/view/Tooling/job/QEMUPlaybookCheck to include a ubuntu2004 check for riscv |
Could you please add the |
Thanks - I'll try a run of the new dockerfile on my system :-) |
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.
The docs on how QEMUPlaybook is done is under https://github.com/adoptium/infrastructure/blob/master/docs/Setup-QEMU-Images.md and it's hosted on a specific machine that you'd need access to to be able to do any of the updates as they're not currently automated.
https://github.com/adoptium/infrastructure/blob/master/docs/Setup-RISCV-VMs.md has some info on how the existing RISC-V QPC virtual machine was initially set up.
As you can probably tell the QPC stuff hasn't been updated in a while as the latest is Debian 11/Ubuntu18 so it needs a bit of attention - there's an issue relating to that at #2121 but to be clear I don't consider the lack of QPC for this version to be a blocker for this PR :-)
Can you clarify the reason for having mercurial-common, python2, and upc explicitly called out? We don't use mercurial any more and I'm a little surprised we'd need to special case the others too so would be good to clarify what they're needed for if we're going to include them.
Also have you been able to test that the github actions stuff being added here work ok?
I added manually mercurial-common, python2, and upc as they are the dependencies of the mercurial package in Ubuntu. I’m happy to remove them altogether if we don’t depend on them anymore.
that’s what I want to get done by adding the QEMU-playbook-check label, but the original run was stuck on waiting for Ubuntu 18.04 runners which have been deprecated. I would need another “go ahead” on the GitHub action CI to check that up. |
I can't remember if the actions will trigger on the contents of the PR of if the PR has to be merged first, so was wondering if it might be simpler to test it in your own repository if that's feasisble. Yeah mercurial was useful before openjdk moved itself to GitHub so shouldn't be necessary now as far as I'm aware (especially not on RISC-V) so I'm ok with having that stuff removed. |
I've tested that the ansible playbook does work, but I'm still working on running the aqa-tests in there. |
FYI that seemed to work well so nice to see this seems to work - I'll try and kick off a build in the new container image overnight on my machine :-) |
I've verified locally that the image allows us to build jdk17u with:
|
This special JDK 19 depends on older GLIBC which is available in Ubuntu 20.04. It's then usable inside a Ubuntu 20.04 container.
I've verified the latest changes work for building
|
ansible/playbooks/AdoptOpenJDK_Unix_Playbook/roles/adoptopenjdk_install/tasks/main.yml
Outdated
Show resolved
Hide resolved
…k_install/tasks/main.yml Co-authored-by: Stewart X Addison <[email protected]>
VPC run at https://ci.adoptium.net/view/Tooling/job/VagrantPlaybookCheck/1742 as a final check. |
It succeeded to build jdk20u locally with the latest change. |
Noting that this will currently misbehave on many real boards due to adoptium/adoptium-support#697 unless |
After setting those options to stop the JVM crashing I'm getting a segfault in the compiler during the openjdk build process at the moment which isn't great :'(
|
We can add the flag in adoptium/ci-jenkins-pipelines#836. |
From talking offline, that's when building on a board. I want to push further on building inside docker containers, to free up board for testing. We'll also want to use QEMU for testing for the newer extensions that we are adding support for in OpenJDK (Vector, Vector Crypto, and others). We won't be able to do this testing on boards for the next few years, even though these extensions will be common-place. |
I can't reproduce the g++ SIGSEGV when bumping to gcc-10/g++-10 and running on VF2. |
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.
I think I'm happy for this to go in now. Noting that jdk19u will likely not be required long term and I'll look at the4 feasibility of publishing a jdk20u build against the Ubuntu 20.04 glibc which can be consumed via the API at which point we can likely clean up the JDK download stuff a bit more for the future.
It will be used for cross-compilation and testing.
Checklist