RFR: 8339480: Build static-jdk image with a statically linked launcher [v8]
Magnus Ihse Bursie
ihse at openjdk.org
Fri Nov 1 16:15:31 UTC 2024
On Tue, 29 Oct 2024 20:43:16 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> As a prerequisite for Hermetic Java, we need a statically linked `java` launcher. It should behave like the normal, dynamically linked `java` launcher, except that all JDK native libraries should be statically, not dynamically, linked.
>>
>> This patch is the first step towards this goal. It will generate a `static-jdk` image with a statically linked launcher. This launcher is missing several native libs, however, and does therefore not behave like a proper dynamic java. One of the reasons for this is that local symbol hiding in static libraries are not implemented yet, which causes symbol clashes when linking all static libraries together. This will be addressed in an upcoming patch.
>>
>> All changes in the `src` directory are copied from, or inspired by, changes made in [the hermetic-java-runtime branch in Project Leyden](https://github.com/openjdk/leyden/tree/hermetic-java-runtime).
>
> Magnus Ihse Bursie has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix bug in filtering out -Wl,--exclude-libs,ALL
My (private) criteria here have been to get a fix to the build system that can run "hello world" -- I realize that the initial implementation of a static java launcher is likely to have additional bugs that needs fixing before it can pass a similar set of JTreg tests as the normal launcher (let alone the JCK).
So running HelloWorld.class perhaps *technically* passes this barrier, but I think that if not the source code launching works, then it is almost as bad as if not HelloWorld.class works, so I would still consider that an integration blocker for this PR.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20837#issuecomment-2452144818
More information about the core-libs-dev
mailing list