Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add libstdc++ runtime switching support #58

Open
azubieta opened this issue Apr 20, 2022 · 6 comments
Open

Add libstdc++ runtime switching support #58

azubieta opened this issue Apr 20, 2022 · 6 comments

Comments

@azubieta
Copy link
Contributor

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

@TheBrokenRail
Copy link
Contributor

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!

@probonopd
Copy link

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

@TheBrokenRail
Copy link
Contributor

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.

@probonopd
Copy link

probonopd commented Apr 29, 2022

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

@TheBrokenRail
Copy link
Contributor

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.

@probonopd
Copy link

Which edge cases would it break?

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants