RFR: 8339480: Build static-jdk image with a statically linked launcher [v21]
Magnus Ihse Bursie
ihse at openjdk.org
Tue Nov 26 17:17:09 UTC 2024
> 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 with a new target base due to a merge or a rebase. The pull request now contains 25 commits:
- Merge branch 'master' into static-jdk-image
- Remove LDFLAGS_STATIC_JDK
- Rename EXCLUDE_FROM_STATIC_LIBS to ONLY_EXPORTED, $(MODULE)_JDK_LIBS to $(MODULE)_INCLUDED_LIBS and module-libs.txt to module-included-libs.txt
- Find LIBZIP_OBJS automatically
- Find LIBJAVA_JPEG_OBJS automatically
- Just exclude the a11y libraries from static builds
- Copy debuginfo
- Restore SetExecname in java_md.c
- Fix incremental builds
- Merge branch 'master' into static-jdk-image
- ... and 15 more: https://git.openjdk.org/jdk/compare/c329f97f...8b1217a8
-------------
Changes: https://git.openjdk.org/jdk/pull/20837/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20837&range=20
Stats: 497 lines in 27 files changed: 399 ins; 23 del; 75 mod
Patch: https://git.openjdk.org/jdk/pull/20837.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20837/head:pull/20837
PR: https://git.openjdk.org/jdk/pull/20837
More information about the core-libs-dev
mailing list