実装が異なる同じ関数名を持つ 2 つの共有ライブラリを構築しています。
lib-xyz.so
lib-abc.so、lib-xyz.so でアプリケーションをビルドしています。アプリケーションでは、dlopen を使用して lib-abc.so をロードしています。どちらのライブラリにも、同じ名前とグローバル変数を持つ関数があります。
アプリケーションを実行しているとき lib-abc.so の関数は、独自の関数 (lib-xyz.so) ではなく、lib-xyz.so の共通関数を呼び出しています。グローバル構造の場合と同じです。この問題を解決し、共有ライブラリのアドレス空間を制限する方法を教えてください。