Hi,

Recently I’ve run into an issue with a proprietary java game called The Count Lucanor. It is distributed on GOG.com with a bundled Java 8 binary. Since bundled libraries are evil™, I’ve tried getting rid of it in favor of my system java binary.

If the latter is Java 8, everything works as expected. However, using Java 17 the game crashes on start with the following error:

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

This happened with dev-java/openjdk:17 but to my surprise didn’t with dev-java/openjdk-bin:17. I figured Eclipse Temurin had to build OpenJDK with different flags than I did, which fixed the issue.

After running a bunch of tests, I managed to build a working java binary by removing -Wl,--as-needed from my LDFLAGS (or adding -Wl,--no-as-needed). This flag is set by my profile — default/linux/amd64/17.1 — so I expect mostly everyone to have it.

Should I propose a patch to dev-java/openjdk:17 in order to filter out -Wl,--as-needed? I have no idea what this flag is for nor if removing it might result in other issues, which is why I’m asking on this mailing-list before doing so. Moreover, that would be in order to fix an issue with a proprietary game, and I don’t know what is Gentoo policy regarding that kind of bug.

If I am to propose a patch, should I do so using filter-flag from flag-o-matic.eclass, or no-as-needed which is provided by the same eclass and is a no-op on clang? (My C compiler is gcc and I haven’t tested building OpenJDK17 with clang.)

If I should propose a patch, should I first open a bug in gentoo bugtracker so that it may be referenced in the ebuild?

Thanks
Hoël

PS: Using dev-java/openjdk:11 to run the game also fails, but with a different error which I did not try to fix. So this discussion is only about dev-java/openjdk:17.

Attachment: signature.asc
Description: PGP signature

Reply via email to