-
-
Notifications
You must be signed in to change notification settings - Fork 249
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
Trial devkit-based openjdk build on UBI #3847
Comments
I'm looking forward for this! In my dream world theb build scripts would magically improve environemnt so it prodcue the desired build. So yah, rahter container. |
The following Dockerfile is adequate to build on UBI9 with the devkit (This should have a checksum applied to the devkit download before any production use is considered). Also note that this download of the devkit is tied to
Noting that of the items in the I'm using the following environment. Note that I have NOT yet done any checks on binary reproducibility in this environment compared to the default Temurin one.
So TL;DR part (a) "It works" is satisfied :-) |
Other than
|
Hi! Seeing the |
I can see
Thats why the confusion |
We should probably discuss anything related to the JEP319 parameter somewhere else as it's not directly relevant to building on a different OS :-) |
sure. as yu command. Ty! I would not brought it up here if I would not see it in above commandline, and that surprised me. Sorry! |
The linux_repro_build_compare.sh is not currently working with the latest release build so will need a bit of work before I can reliably do a comparison. I'm testing on linux-aarch64 which has a For the purposes of verifying reproducibility I've also added the systemtap-sdt-devel package to the machine in order to pick up the dtrace header files which are not included in the devkit. There is, of course, a risk that the systemtap headers from UBI will be different from the ones used in the original CentOS7 build and therefore introduce differences. We should consider including those in the devkit so they are used identically to the CentOS7 ones. There is a lot of differences unfortunately from building on UBI9 - I'll try replicating the same in a similarly "clean" CentOS7 container with the devkit [Edit: Same happened with CentOS7 although the script is pulling down and setting
|
OK - fixed that (Removed the gcc download and commented out the call to
|
[this comment intentionally left blank - will include summary of reproducing the above] |
Next step - investigate the devkit build on a later OS. @andrew-m-leonard has hit issues building the CentOS7-compatible devkit on a Fedora 38 system, but it would be good to confirm if we can build a suitable devkit that can produce a devkit that targets CentOS7's glibc (2.17) on a later distribution. I did a few scenarios in #3700 but I'll try some more on aarch64 to see if I can replicate any problems (and ideally see if I can make it work!) Memo to self (Fro RHEL7, others may need tweaking)
Attempting on various distributions:
[*] - Failure was as follows:
|
The version of libstdc++.so built in the JDK21 devkit has symbols up to
|
@sxa thanks for working this out. I'm a little confused though, it doesn't seem quite right that a Centos7 "sysroot" libstc++ has GLIBCXX_3.4.29 when built for Centos7 ? |
The |
I am pretty sure this is an issue with the
I suspect what is happening is: When the build system's The issue may arise from a bootstrapping loop where To rule this out, it may be worth attempting to build and install I think this familiar approach is worth a try, before deep-diving into (I looked at https://github.com/openjdk/jdk/blob/master/make/devkit/Tools.gmk and the double-build |
Make sense if that's the only part of binutils that's C++. Thanks.
Agreed. if we can feasibly do that between the bootstrap and final devkit builds that might be good.
It's not upstream yet - like the CentOS7 support it's currently part of our make_devkit.sh script in adoptium/ci-jenkins-pipelines@b5f07cd - I would not recommend upstreaming this until at least July when the C7 URLs will change to the (I do also wonder if we only need to bootstrap |
Noting that the devkit build process has had the variables for all of the binutils set in addition to the devkit path being used for the bootstrapping as of adoptium/ci-jenkins-pipelines#1043 |
With our switch to building on devkits on most Linux platforms it should not matter which base image we are using for the builds, as long as it can have the correct devkit installed and used.
This issue will cover attempting to use our existing devkit to build JDK21 on a later OS (Likely UBI9) on the platforms which we create devkits for and see if it (a) works and (b) can produce binary identical builds.
The text was updated successfully, but these errors were encountered: