RFR: 8355080: java.base/jdk.internal.foreign.SystemLookup.find() doesn't work on static JDK [v2]
Jiangli Zhou
jiangli at openjdk.org
Tue Apr 22 23:29:02 UTC 2025
> 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 one additional commit since the last revision:
Update src/java.base/share/classes/jdk/internal/foreign/SystemLookup.java
Thanks.
I used `jdk.internal.loader.NativeLibraries` as a quick change before adding adding import. I neglected to to clean up that part.
Co-authored-by: Chen Liang <liach at openjdk.org>
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/24801/files
- new: https://git.openjdk.org/jdk/pull/24801/files/7cc1b268..11f674c6
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=24801&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=24801&range=00-01
Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
Patch: https://git.openjdk.org/jdk/pull/24801.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/24801/head:pull/24801
PR: https://git.openjdk.org/jdk/pull/24801
More information about the core-libs-dev
mailing list