公式ELFリファレンスと共有ライブラリのDT_RPATHを無視する

公式ELFリファレンスと共有ライブラリのDT_RPATHを無視する

Linux用の公式ELF形式リファレンスは何ですか?

一部はジニー1.21995年に登場した仕様では廃止されました(DT_RUNPATH例は含まれていません)。

ところが他にはただ一つあるようだ。ドラフトバージョンSystem Vアプリケーションバイナリインタフェース2003年から。ドラフト以外のバージョンが見つからないようです。

それからOracle Solarisのバージョン、対応するドラフトに基づいているようです。

2003 ドラフトと Solaris バージョンは、DT_RPATH共有ライブラリが比較テーブルを無視するかどうかについて同意しないようです。2003年ドラフトそしてソラリス。 2003年の草案によると無視されるべきであり、Solarisによると無視してはいけません。

私のUbuntu 16システムでは、ランタイムリンカーは次のようになります。いいえ共有ライブラリは無視されるため、DT_RPATH2003 ドラフトではなく Solaris 仕様に準拠しているようです。

Linuxの公式ELF仕様は何ですか?


編集:LSB 5.0.0ベース:

LSB準拠の実装は、System V ABIおよびSystem V ABIアップデートで指定されたランタイム・プログラムを生成するオブジェクト・ファイル情報およびシステム操作、およびこの仕様およびLSBコア仕様の関連アーキテクチャー固有の部分の追加要件もサポートする必要があります。 。

共有ライブラリで DT_RPATH を処理する方法を記載した LSB 文書は表示されません。これはld、共有ライブラリでRPATHを無視する必要があるため、LSBと互換性がないという意味ですか?

ベストアンサー1

おすすめ記事