Unable to load lwjgl 2.x after JDK-8200178

Vladimir Petko vladimir.petko at canonical.com
Tue Jun 27 08:31:47 UTC 2023


Dear Maintainers,

 There is a bug[1] submitted in Debian that a number of games crash
with the assertion

Inconsistency detected by ld.so: dl-lookup.c: 107: check_match:
Assertion `version->filename == NULL || ! _dl_name_match_p
(version->filename, map)' failed!

The investigation points to JAWT_GetAWT function from libjawt.so.

In Java 8 the build system supplied a mapfile which set the symbol
version for JAWT_GetAWT. It is no longer the case for Java 11+ due
to JDK-8200178.
If the native library was linked against Java 8 (e.g. lwjgl 2.x) then
it would be linking against the versioned symbol.
The assertion in the loader only fires when the version section
(.gnu.version) is absent, otherwise the loader provides the default
version of the function. This allows Temurin builds to work with those games.

I wonder if some of the map files could be reverted for the
compatibility reasons with Java 8, or it is not a recommended
approach?

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031521



More information about the build-dev mailing list