RFR: JDK-8275703: System.loadLibrary fails on Big Sur for libraries hidden from filesystem
Jaikiran Pai
jpai at openjdk.java.net
Wed Oct 27 03:36:11 UTC 2021
On Tue, 26 Oct 2021 22:51:29 GMT, Mandy Chung <mchung at openjdk.org> wrote:
> On, macOS 11.x, system libraries are loaded from dynamic linker cache. The libraries are no longer present on the filesystem. `NativeLibraries::loadLibrary` checks for the file existence before calling `JVM_LoadLibrary`. Such check no longer applies on Big Sur. This proposes that on macOS >= 11, it will skip the file existence check and attempt to load a library for each path from java.library.path and system library path.
src/java.base/share/classes/jdk/internal/loader/NativeLibraries.java line 166:
> 164: return null;
> 165: }
> 166: return file.getCanonicalPath();
I think a `!file.exists()` check would still be needed here to handle the case when `loadLibraryOnlyIfPresent` is `false`, isn't it?
-------------
PR: https://git.openjdk.java.net/jdk/pull/6127
More information about the core-libs-dev
mailing list