RFR: 8346394: Bundled freetype library needs to have JNI_OnLoad for static builds [v3]
David Holmes
dholmes at openjdk.org
Wed Dec 18 04:51:41 UTC 2024
On Tue, 17 Dec 2024 18:16:55 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> All JDK native libraries needs to have a proper `JNI_OnLoad`, set either by `DEF_STATIC_JNI_OnLoad` or `DEF_JNI_OnLoad`. This is so that in a static build, the JVM can recognize that the library is already loaded, and does not try to load a (non-existent) external library.
>>
>> Our bundled version of freetype is missing such a marker.
>>
>> This turns out to be a problem just on Windows, since the `System.loadLibrary("freetype")` code in `FontManagerNativeLibrary` is only executed on Windows. However, the cost of including this in the bundled versions on all platforms is very small, and it is a safeguard for any future changes. In practice, freetype bundling is only enabled on Windows anyways.
>
> Magnus Ihse Bursie has updated the pull request incrementally with one additional commit since the last revision:
>
> Document purpose of java_freetype.c
A bit late but why do we presume that just because this library is bundled that it has to be part of the static image?
This static build stuff continues to leave me with a "bad taste in my mouth".
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22791#issuecomment-2550331028
More information about the build-dev
mailing list