AppRun icon indicating copy to clipboard operation
AppRun copied to clipboard

Add libstdc++ runtime switching support

Open azubieta opened this issue 3 years ago • 6 comments

This has already been done at: https://github.com/darealshinji/AppImageKit-checkrt/

azubieta avatar Apr 20 '22 15:04 azubieta

On the same note, can you also make it so that it checks glibc version per-architecture? So for instance, if your host system's x86_64 glibc is newer than the bundled glibc, but the host doesn't even have an ARM glibc while the bundle does, it will use the host's glibc for x86_64 programs and the bundled glibc for ARM programs. Thanks!

TheBrokenRail avatar Apr 28 '22 23:04 TheBrokenRail

Wouldn't an ARM system have all libs as ARM versions?

probonopd avatar Apr 28 '22 23:04 probonopd

This is for the rare case where an x86_64 AppImage that runs on x86_64 systems contains ARM components which need an ARM glibc (using QEMU probably).

TBH, a better example would be x86_64 and i386. The AppImage could have an older x86_64 glibc, but a newer i386 glibc (or the host could theoretically not have an i386 glibc at all).

As far as I'm aware no big distribution is actually like this right now. This change woudl mostly be for future-proofing and weird edge-case scenarios like mine.

TheBrokenRail avatar Apr 28 '22 23:04 TheBrokenRail

I fear it might break edge cases more than it'd help.

probonopd avatar Apr 29 '22 00:04 probonopd

Which edge cases would it break?

Right now it chooses whether to use the bundled or system GLibC based on the host system's GLibC version. If it chooses the host system's GLibC but it doesn't have an architecture installed that the bundled version includes, it just fails.

Right now I'm forced to workaround this using libc6-armhf-cross and manual interpreter patching.

TheBrokenRail avatar Apr 29 '22 16:04 TheBrokenRail

Which edge cases would it break?

I was thinking of, e.g., running things in, e.g., Box86 and similar solutions.

probonopd avatar Apr 29 '22 19:04 probonopd