Linux Island applications seem to require gconv

I’m starting to develop Elements applications for embedded systems using BeagleBone and Raspberry Pi microcomputers running a stripped down Linux environment (https://github.com/pmunts/muntsos). It is very, very cool to be able to develop these applications in Pascal in Visual Studio!

I’ve noticed that Linux Island applications require /usr/lib/gconv and its contents to be present on the target system. Without gconv, the program terminates with a SEG fault at startup. Now gconv provides some internationalization services, which I don’t need in an embedded system, and consumes 6 MB of storage.

Is there some way to configure a Linux Island project to remove the dependency upon internationalization services to save space? Sort of like the:

<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />

feature you added to Elements for me a while ago for the similar issue with .Net Core applications?

1 Like

Thanks, logged as bugs://83369

I’ve logged an issue to look into this.

I’m fairly sure this is related to iconv support (which we use to translate the current encoding to utf16 and back). I think we can do with dynamic loading iconv and falling back to utf8 if needed. (If you want, look at String.pas and TextConverter.pas for iconv_helper. There will be an ifdef before/after it for android/websassembly that uses utf8 instead of iconv, make that {$ELSEIF ANDROID or WEBASSEMBLY or LINUX) in both places, and the iconv dependency should disappear.