-
Notifications
You must be signed in to change notification settings - Fork 5.8k
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
8350443: GHA: Split static-libs-bundles into a separate job #23715
8350443: GHA: Split static-libs-bundles into a separate job #23715
Conversation
👋 Welcome back shade! A progress list of the required criteria for merging this PR into |
@shipilev This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 21 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
Webrevs
|
Please do not remove the static-lib-bundles - they are critical for testing OpenJDK PRs against libgraal: https://github.com/dougxc/openjdk-pr-canary/blob/9c38cdb2dcdbe4aef6b81732b3a296856ac1bb4c/.github/scripts/test-openjdk-pullrequests.py#L818 |
We are proactively ensuring Graal remains compatible with the OpenJDK master tip without requiring contributors to build libgraal. For example, we prepared this Graal adaption patch to support your DirectByteBuffers Cleaner work. Removing static-lib-bundles would eliminate our canary tool's automation, significantly increasing manual effort. Please hold off on removing static-lib-bundles until we find a way into GHA. |
OK, this downstream use should really be documented if you want people to know why it should persist. New version does a comment hopefully explaining this. The static bundle is uploaded, but now separately, in |
Thanks for adding the comment! |
I'm not sure splitting static out into it's own task is the right long term direction we should be heading in. Magnus is working on reducing the duplicated work needed to build both a regular JDK and static libs at the same time, by reusing all the object files. I would also argue that there is a big difference between the old static-libs-bundle and the new static JDK distribution conceptually, so bunching them up in the same "static" category doesn't make much sense to me, other than as a (misguided) attempt at optimizing GHA compute resources. The old static-libs-bundle is static versions of JDK libs needed by certain downstream consumers of the regular JDK distribution (Graal). This is essentially an extension of the regular JDK. The new static JDK distro that @jianglizhou and @magicus are working on is a complete separate JDK variant that replaces the regular JDK. Having one build task produce more than one JDK for testing can cause a challenge in the model for a build and test system, so for that reason it makes sense having a separate build task for the static JDK. That would also isolate build problems with the static JDK and avoid having them block test results for the regular JDK. I never delved deep enough into GHA to know if this would cause an issue here or not. |
The point about difference between Conceptually, I have major reservations about sneaking in If we want to build At some point in the future -- once build system catches up -- we may consider adding |
Yes, we should distinguish between For longer term, including
During the image creation process, a launcher executable is linked using the launcher |
Hi @shipilev , we have merged the adaption in our canary tool. Could you please push a commit in this PR and see how it may trigger on our end? A trivial blank trimming or merge master would be sufficient. |
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 this is good. The static libs situation is somewhat messy due to historical reasons, and it is not always easy to know what is the best improvement, in the short term or in the long term.
I would like to remove the old static-libs
target and replace it with the new static-jdk-image
, but we're not there yet. In the meantime, I think it makes sense to separate it out cleanly as you have done here.
Does a merge commit count? Just merged from master :) |
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.
Graal's canary tool now works with this change!
Great! Let's integrate and unblock @jianglizhou's work. /integrate |
Going to push as commit bd112c4.
Your commit was automatically rebased without conflicts. |
Thank you, @shipilev! |
Noticed this when reviewing JDK-8349399, which had to kludgy workaround the hunk introduced by
static-libs-bundles
addition (JDK-8337265). I am somewhat surprised we even havestatic-libs-bundles
as additional target in what I would consider a generic build-linux job! It looks cleaner to yankstatic-libs-bundles
into a separate build job.This effectively reverts parts of the original change, and does a few modifications:
linux-x64-bundles
when we split the static build into another job, breaking tests. Not sure why we had to publish those bundles, @dougxc? They are not used in current JDK tests, I think?build-linux.xml
unconditionally includesdebug
configuration to override flags and suffix, I had to redo this with inline variablesNamed the new job
linux-x64-static
, since I expect @jianglizhou to slide #23471 just there by adding anothermake-target
into that job definition.I did a partial GHA run already, and I expect full run to complete without errors.
Testing:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/23715/head:pull/23715
$ git checkout pull/23715
Update a local copy of the PR:
$ git checkout pull/23715
$ git pull https://git.openjdk.org/jdk.git pull/23715/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 23715
View PR using the GUI difftool:
$ git pr show -t 23715
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/23715.diff
Using Webrev
Link to Webrev Comment