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).

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

Commit messages:
 - Makefile changes needed for static-launcher and static-jdk-image targets
 - Incorporate changes from leyden/hermetic-java-runtime that allows running a 
static launcher

Changes: https://git.openjdk.org/jdk/pull/20837/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20837&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8339480
  Stats: 429 lines in 22 files changed: 351 ins; 5 del; 73 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

Reply via email to