On Tue, 17 Dec 2024 13:22:19 GMT, Magnus Ihse Bursie <[email protected]> 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:
>
> Move the file out of "src" as it is not part of upstream lib
Marked as reviewed by prr (Reviewer).
src/java.desktop/share/native/libfreetype/java_freetype.c line 27:
> 25:
> 26: #include "jni_util.h"
> 27:
A comment here explaining why this is needed might be a good idea.
-------------
PR Review: https://git.openjdk.org/jdk/pull/22791#pullrequestreview-2509539457
PR Review Comment: https://git.openjdk.org/jdk/pull/22791#discussion_r1888905762