On Tue, 3 Sep 2024 12:50:01 GMT, Magnus Ihse Bursie <i...@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).

make/ModuleWrapper.gmk line 59:

> 57:   endif
> 58: endif
> 59: 

This part looks a bit convoluted. It would be nice with a comment explaining 
what it does, where `$($(MODULE)_JDK_LIBS)` is coming from and what consumes 
the module-libs.txt.

make/StaticLibs.gmk line 171:

> 169: 
> 170: $(eval $(call SetupCopyFiles, copy-static-launcher, \
> 171:     SRC := $(dir $(JAVA_LAUNCHER)), \

If only copying a single file, this becomes the default value for SRC, so no 
need to specify it.

make/common/JdkNativeCompilation.gmk line 310:

> 308:       $$(MODULE)_JDK_LIBS += $$($1_NAME)
> 309:     endif
> 310:   endif

Same, here as in ModuleWrapper.gmk, I think we need a comment explaining how 
this is consumed.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20837#discussion_r1742601500
PR Review Comment: https://git.openjdk.org/jdk/pull/20837#discussion_r1742500522
PR Review Comment: https://git.openjdk.org/jdk/pull/20837#discussion_r1742605313

Reply via email to