Skip to content

Fix old C++ app launch when compiled with new C++#1

Open
glebm wants to merge 1 commit intopodulator:masterfrom
glebm:patch-1
Open

Fix old C++ app launch when compiled with new C++#1
glebm wants to merge 1 commit intopodulator:masterfrom
glebm:patch-1

Conversation

@glebm
Copy link

@glebm glebm commented Mar 12, 2020

GCC 5.1+ uses a different ABI from earlier releases.

esoteric uses execvp() to launch apps.
The C exec* functions do not reload shared libs in memory but only replace main module and load new shared libs. If launching an app compiled with GCC 4.9, there would be an ABI conflict.

This change enables the GCC C++ Dual ABI feature to let gmenu2x launch both old and new ABI apps.
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

This is in preparation for the official RG-350 buildroot update to GCC 5.1+
See tonyjih/RG350_buildroot#53 which adds a similar change to gmenu2x

GCC 5.1+ uses a different ABI from earlier releases.

esoteric uses `execvp()` to launch apps.
The C `exec*` functions do not reload shared libs in memory but only replace main module and load new shared libs. If launching an app compiled with GCC 4.9, there would be an ABI conflict.

This change enables the GCC C++ Dual ABI feature to let gmenu2x launch both old and new ABI apps.
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

This is in preparation for the official RG-350 buildroot update to GCC 5.1+
See tonyjih/RG350_buildroot#53 which adds a similar change to gmenu2x
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

Successfully merging this pull request may close these issues.

1 participant