On Wed, 4 Sep 2024 23:03:23 GMT, Jiangli Zhou <jian...@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/StaticLibs.gmk line 74:
> 
>> 72:   BROKEN_STATIC_LIBS += awt dt_shmem dt_socket javaaccessbridge
>> 73:   # These libs are dependent on any of the above disabled libs
>> 74:   BROKEN_STATIC_LIBS += fontmanager jawt lcms net nio
> 
> Which specific dependent cause these libs being excluded? In 
> https://github.com/openjdk/leyden/tree/hermetic-java-runtime/ branch, these 
> JDK libs (except `libjawt.a`) are statically linked into `javastatic`.

Well, but your proof-of-concept only supports clang on linux, where you have 
enabled symbol hiding. 

Our conclusion in the zoom talks was that we should strive for getting a static 
launcher build pushed into mainline before we have full and proper support for 
symbol hiding on all platforms.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20837#discussion_r1745161079

Reply via email to