ELF ファイルのセクションを並べ替える簡単な方法を探しています。すべてを特定の順序で整列させたい一連のカスタム セクションがあります。
私が見つけた唯一の方法は、リンカー スクリプトを使用することです。ただし、ドキュメントには、カスタム リンカー スクリプトを指定するとデフォルトが上書きされることが示されています。デフォルトのリンカー スクリプトには多くのコンテンツが含まれており、3 つのセクションを常に特定の順序でまとめるためだけに、カスタム スクリプトで複製する必要はありません。そのようなリンカーの動作をハードコーディングするのはあまり柔軟ではないようです。
なぜ私はこれをしたいのですか?実行時のメモリ位置 (先頭と末尾) を知る必要があるデータのセクションがあります。そこで、2 つの追加セクションを作成し、それらにセンチネル変数を配置しました。次に、これらの変数のメモリ位置を使用して、メモリ内の未知のセクションの範囲を知りたいと考えています。
.markerA
int markerA;
.targetSection
... Lots of variables ...
.markerB
int markerB;
上記の例では、.targetSection のデータが markerA と markerB のアドレスの間にあることがわかります。
これを達成する別の方法はありますか?現在実行中の ELF イメージを読み込み、セクションの場所とサイズを決定できるライブラリはありますか?