mapfile を使用すると、リンカーの操作と、結果として得られる出力オブジェクトを詳細に制御できます。
出力セグメントの作成または変更、あるいはその両方を行います。
入力セクションをセグメントに割り当てる方法と、それらのセクションの相対的な順序を定義します。
シンボル範囲の指定またはバージョン管理、あるいはその両方を行うことによって、共有可能なオブジェクト用の安定した、下位互換性を持つインタフェースを作成します。
共有可能なオブジェクトの依存関係から、使用対象のバージョンを定義します。
出力オブジェクトにヘッダーオプションを設定します。
動的実行可能ファイルのプロセススタック属性を設定します。
ハードウェアおよびソフトウェア機能を設定またはオーバーライドします。
–M コマンド行オプションは、使用される mapfile を指定するために使用されます。単一のリンク操作内で複数の mapfile を使用できます。複数の mapfile が指定されると、リンカーは、それらがあたかも単一の論理 mapfile であるかのように、各ファイルを指定された順序で処理します。この処理は、あらゆる入力オブジェクトが処理される前に実行されます。
システムの /usr/lib/ld ディレクトリ内に、一般的な問題を解決するためのサンプル mapfile が提供されています。