On Wed, 23 Apr 2025 00:56:18 GMT, Jiangli Zhou <jian...@openjdk.org> wrote:

>> Please review this PR that changes to use `NativeLibraries.loadLibrary()` 
>> for loading the `libsyslookup` in `jdk.internal.foreign.SystemLookup` class.
>> 
>> `NativeLibraries.loadLibrary()` handles both the shared library and (static) 
>> built-in library loading properly. On `static-jdk`, calling 
>> `NativeLibraries.loadLibrary()` for `systlookup` library can find the 
>> built-in library by looking up using `JNI_OnLoad_syslookup`. The current 
>> change adds `DEF_STATIC_JNI_OnLoad` in syslookup.c (in shared, windows and 
>> aix versions) for that purpose.
>> 
>> In addition to GHA testing, I tested the change on static-jdk with jdk tier1 
>> tests on linux-x64 locally. All java/foreign/* jdk tier1 tests pass with the 
>> change. Without the change, there are about 60 java/foreign/* jdk tier1 
>> tests fail on static-jdk.
>
> Jiangli Zhou has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Merge branch 'JDK-8355080' of ssh://github.com/jianglizhou/jdk into 
> JDK-8355080
>  - Address henryjen@ comment:
>    - Remove '#include <jni.h>'.

This was news to me. I'm thinking about what this means in terms of the static 
build, where all native JDK libraries are "loaded" as soon as the application 
starts executing. Do we have native libraries in the JDK that are not loaded by 
the boot loader? If so, have we introduced some corner case effects by marking 
them with the static JNI symbol? 🤔

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

PR Comment: https://git.openjdk.org/jdk/pull/24801#issuecomment-2837654312

Reply via email to