名称
lorder ― オブジェクトライブラリの順序関係の検出
説明
入力はコマンド行で指定するか、標準入力から読み込まれる単一または複数のオブジェクト、またはアーカイブライブラリ files ( ar(1))
を参照) からなります。標準出力はオブジェクトファイル名のペアのリストで、ペアの最初の方のファイルは、2 番目のファイルに定義のある外部識別子を参照することを意味しています。
出力を tsort で処理して ld ( tsort(1) および ld(1) を参照) による 1 パスアクセスに適したライブラリの順序を探し出すことができます。
リンクエディタ ld はアーカイブ形式のアーカイブに対して複数回のパスが可能であり、アーカイブ構築時に lorder を使用する必要がないことに注意してください。ただし、 lorder コマンドを使用すると、リンクエディットプロセス時のアーカイブのアクセスが多少効率的になります。
ar によって保守されるシンボルテーブルでは、 ld はアーカイブ中のシンボルおよびファイルにランダムにアクセスできるので、アーカイブライブラリを構築する際に、 lorder を使用する必要はありません ( ar(1) を参照)。
多言語化対応
環境変数
次の国際変数は、 lorder の実行に影響を与えます。
| LANG | | LC_ALL および他の LC_* 環境変数がない場合に、
母国語の locale 環境カテゴリ、ローカルカスタム、およびコード化文字セットを決定します。 LANG を指定しない、または空の文字列を設定した場合は、デフォルトの C ( lang(5) を参照) が LANG の代わりに使用されます。 |
| LC_ALL | | すべての locale 環境カテゴリの値を決定し、 LANG および他の LC_* 環境変数より優先されます。 |
| LC_COLLATE | | 文字照合の locale 環境カテゴリを決定します。 |
| LC_CTYPE | | 文字操作関数の locale 環境カテゴリを決定します。 |
| LC_MESSAGES | | 標準エラーに書き込まれる診断メッセージの形式および内容に影響を与える locale 環境を決定します。 |
| LC_NUMERIC | | 数値フォーマットの locale 環境カテゴリを決定します。 |
| NLSPATH | | LC_MESSAGES の処理のメッセージカタログの位置を決定します。 |
国際変数のどれかが無効な設定を含んでいる場合には、すべての国際変数に C が設定されたものとして、 lorder は、動作します。 environ(5) を参照してください。
サポートされるコードセット
シングル/マルチバイトの文字コードセットがサポートされています。
例
既存の .o ファイルから新規ライブラリを構築します。
ar cr library `lorder *.o | tsort`
オブジェクトが多すぎて、シェルが *.o 拡張子を適切に処理できないようなライブラリを作成するときは、以下のテクニックが有効です。
ls | grep '.o$' | lorder | tsort | xargs ar cq library
警告
名前が .o で終了しないオブジェクトファイルは、ライブラリアーカイブに含まれていても見落とされます。グローバルシンボルおよび参照は、その他のファイルからとられます。
ファイル
| /var/tmp/*symref, |
| | | テンポラリファイル |
| /var/tmp/*symdef |
| | | |
参照
システムツール:
| ar(1) | | アーカイブライブラリを作成します。 |
| ld(1) | | リンクエディタを実行します。 |
その他:
| tsort(1) | | 順序にしたがった項目のリストを生成します (トポロジー的な並び換え)。 |
標準準拠
lorder: SVID2, SVID3, XPG2, XPG4