On 4/24/24 4:24 AM, Magnus Ihse Bursie wrote:
That is a good question. libiconv is used only on macOS and AIX, for a few libraries, as you say. I just tried removing -liconv from the macOS dependencies and recompiled, just to see what would happen. There were three instances for macOS: libsplashscreen, libjdwp and libinstrument.



libsplashscreen uses it in splashscreen_sys.m, where it is used to convert the jar file name.

This is called from the launcher, in java.base/share/native/libjli/java.c



libjdwp uses it in utf_util.c, where it is used to convert file name and command lines, iiuc.

It is likely that we have similar (but better) ways to convert charsets elsewhere in our libraries that can be used instead of libiconv. I guess these are not the only two places where a filename must be converted from the platform charset to UTF8.

So whatever replacement there might be, it needs to be something that is available very early in the life of the VM, in fact before there is a VM running.

-phil.

Reply via email to