RFR: 8350443: GHA: Split static-libs-bundles into a separate job [v4]

Aleksey Shipilev shade at openjdk.org
Fri Feb 21 14:34:56 UTC 2025


On Fri, 21 Feb 2025 14:24:22 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> Noticed this when reviewing [JDK-8349399](https://bugs.openjdk.org/browse/JDK-8349399), which had to kludgy workaround the hunk introduced by `static-libs-bundles` addition ([JDK-8337265](https://bugs.openjdk.org/browse/JDK-8337265)). I am somewhat surprised we even have `static-libs-bundles` as additional target in what I would consider a generic build-linux job! It looks cleaner to yank `static-libs-bundles` into a separate build job.
>> 
>> This effectively reverts parts of the original change, and does a few modifications:
>>  - I see no reason to store the bundles, and continuing to do so would effectively overwrite `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?
>>  - The matrix definition in `build-linux.xml` unconditionally includes `debug` configuration to override flags and suffix, I had to redo this with inline variables
>> 
>> Named the new job `linux-x64-static`, since I expect @jianglizhou to slide https://github.com/openjdk/jdk/pull/23471 just there by adding another `make-target` into that job definition.
>> 
>> I did a partial GHA run already, and I expect full run to complete without errors.
>> 
>> Testing:
>>  - [x] GHA
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Rename -static job to -static-libs

The point about difference between `static-libs` and `static` JDK is valid. I renamed the job to `-static-libs`, and would expect #23471 to add another job like `build-linux-x64-static` that would build static JDK.

Conceptually, I have major reservations about sneaking in `static-libs-bundle` make target in the generic `build-linux` job script. It might have been OK when it was originally done, but it is IMO a hacky solution, which prompts even more hacks to workaround the first hack! See #23471. We are also "lucky" that no other jobs call into `build-linux` script with `release`, so we are not building `static-libs-bundle` in all cross-compilation, no-pch, Zero and other jobs that only ask for `hotspot`, for example. 

If we want to build `static-libs-bundle` only for Linux x64 release, the clean way to do this is to explicitly define it as separate job.

At some point in the future -- once build system catches up -- we _may_ consider adding `static-libs-bundles` into default make target list in `build-linux` / `build-windows` / etc. scripts. This would also be clean. But before that happens, the non-standard build targets have IMO no business being spliced into the generic scripts.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23715#issuecomment-2674707774


More information about the build-dev mailing list