この短いマニュアルは,GNUバイナリユーティリティ(バージョン 2.11全体)に対する予備的な文章を含みます.
この文章はGNU Free Documentation Licenseの条件の下で配布されます.ライセ ンスのコピーは,"GNU Free Documentation License"と名付けられたセクション に含まれています.
ar [-]p[mod [relpos] [count]] archive [member...] ar -M [ <mri-script ]
GNU ar
は,アーカイブの作成,変更,そして,それからの抽出を行
います.アーカイブとは,(アーカイブのメンバーと呼ばれる)元と
なる個々のファイルを取り出すことを可能にする構造内で,他のファイルの集合
を保持している単一のファイルです.
元のファイルの内容,モード(許可),タイムスタンプ,所有者,そしてグループ は,アーカイブに保存されていて,抽出時に復元可能です.
GNU ar
は,あらゆる長さのメンバー名のアーカイブを管理可能です.
しかし,ar
がシステムでコンフィグレーションされた方法に依存し,他
のツールで管理されるアーカイブのフォーマットの互換性のため,メンバー名の
長さは制限される可能性があります.それが存在する場合,制限は15文字(a.out
に関連するフォーマットの典型)や16文字(coffに関連するフォーマットの典型)
のことが多いでしょう・
この種のアーカイブは,一般に必要なサブルーチンを保持するライブラリ
として最もよく使用されるので,ar
は,バイナリユーティリティと考え
られます.
ar
は,修飾子s
を指定したとき,アーカイブの再配置可能なオブ
ジェクトモジュールで定義されているシンボルに索引を作成します.一度作成さ
れると,この索引は,(q
更新コマンドのための保存で)ar
がその
内容を変更したときはいつも,アーカイブ内で更新します.そのような索引をも
つアーカイブは,ライブラリとのリンク速度を上げ,ライブラリのルーチンがアー
カイブ内の位置に関わらず,お互いの呼び出しを可能にします.
この索引表をリストアップするため,nm -s
やnm --print-armap
が使用可能です.アーカイブに表がない場合,ranlib
と呼ばれる
ar
の別の形式が,表を加えるために使用可能です.
GNU ar
は,2つの異なる機能と互換性があるように設計されていま
す.Unixシステム上の異なる形態のar
のように,コマンドラインオプショ
ンを使用してその作業を制御可能です.また,単一のコマンドラインオプション
-M
を指定した場合,MRI "librarian"プログラムのように,標準入力を
通じて供給されるスクリプトを用いて,それを制御可能です.
ar
on the command line
ar
with a script
ar
の制御ar [-X32_64] [-]p[mod [relpos] [count]] archive [member...]
Unix形式でar
を使用するとき,ar
は少なくとも2つの引数を実行
時に要求します.operationを指定するキー文字(modifiersを指
定するその他のキー文字がオプションで付きます)と,動作対象のアーカイブ名
です.
ほとんどの処理は,それ以外にmember引数を受け入れ,それは処理の対象 となる特定のファイル名を指定します.
GNU ar
では,最初のコマンドライン引数内で,処理コードp
と修飾フラグmodを,あらゆる順序で混合させることが可能です.
希望があれば,最初のコマンドライン引数をダッシュで始めることも可能です.
pキー文字は,実行する処理を指定します.それは以下のいずれでも可能 ですが,その中の1つだけを指定する必要があります.
d
v
修飾子を指定した場合,ar
は削除するそれぞれのモジュールを
リストアップします.
m
シンボルが1つ以上のメンバーで定義されている場合,アーカイブ内のメンバー の順序で,プログラムがライブラリを使用してリンクされる方法に差異が発生す るはずです.
m
とともに修飾子を使用しない場合,member引数で指名したあらゆ
るメンバーは,アーカイブの終りに移動されます.そうする代わりに,
指定した位置にそれらを移動するために,a
,b
,またはi
修飾子が使用可能です.
p
v
修飾子が指定された場合,その内容のコピーの前にメンバー名を標準出
力に表示します.
member引数を指定していない場合,アーカイブのすべてのファイルが出力
されます.
q
修飾子a
,b
,そしてi
は,このオプションに効果は
ありません.新しいメンバーは常にアーカイブの終りに位置します.
修飾子v
で,ar
は追加されるそれぞれのファイルをリストアップ
します.
このオペレーションの要点は速度なので,アーカイブのシンボル表の索引が存在
している場合でも更新されません.シンボル表の索引を更新するために,
ar s
またはranlib
を明示的に使用することが可能です.
しかし,あまりに多くの異なるシステムで,高速追加が索引を再構築することを
仮定するので,GNU ar
は,q
をr
の同義語として実装
されています.
r
q
と異なります.
member...で指名されたファイルが1つでも存在しない場合,
ar
はエラーメッセージを表示し,名前がアーカイブと一致する既存のメ
ンバーはそのままになります.
デフォルトで,新しいメンバーはファイルの終りに追加されます.しかし,既存
のメンバーとの相対位置を要求するため,修飾子a
,b
,または
i
の1つを使用可能です.
この処理での修飾子v
の使用は,挿入されたそれぞれのファイルを出力の
1行に書き出し,ファイルが追加された(古いメンバーが削除されていない)のか,
置換されたのかを示す文字a
またはr
のどちらかを追加します.
t
v
修飾子も指定することで要求可能です.
memberを指定しない場合は,アーカイブ内のすべてのファイルがリストアッ プされます.
同じ名前の(fie
という名の)ファイルが,(b.a
をいう名の)アーカ
イブに1つ以上ある場合,ar t b.a fie
は最初のインスタンスのみリスト
アップします.すべてを見るために,完全なリストを請求する必要があります--
この例ではar t b.a
です.
x
ar
が抽出しているそれぞれの名前をリストアップするように,この処理
でv
修飾子を使用することが可能です.
memberを指定しない場合,アーカイブのすべてのファイルが抽出されます.
処理の動作の変更を指定するため,いくつかの修飾子(mod)をpキー 文字の直後に続けることが可能です.
a
a
を使用した場合,archive指定の前に,既存のアーカイブメ
ンバー名をrelpos引数におく必要があります.
b
b
を使用した場合,archive指定の前に,既存のアーカイブメンバー
名をrelpos引数におく必要があります.(i
と同じです).
c
f
ar
は,通常あらゆる長さの
ファイル名を許可します.これは,いくつかのシステムのネイティブar
プログラムと互換性のないアーカイブを作成させます.これが懸念される場合,
アーカイブに配置するときファイル名を切り詰めるために,f
修飾子を使
用することが可能です.
i
i
を使用する場合,既存のアーカイブメンバの名前は,relpos引
数として,archive指定の前におく必要があります.(b
と同じです).
l
N
o
P
ar
はフル
パス名を持つアーカイブ(そのようなアーカイブは,POSIXで問題ない)を作成で
きませんが,他のアーカイブを作成するものは可能です.このオプションで,
GNU ar
は完全なパス名を使用しているファイル名に一致し,それで,
他のツールで作成されたアーカイブから単一のファイルを抽出するとき便利にな
ります.
s
ar s
を実行することは,ranlib
の実行と等価です.
S
ar
の最後の実行でS
修飾子を省略したり,アーカイブでranlib
を実行する必要があります.
u
ar r
...でリストアップされているすべてのファイルをアーカ
イブに挿入します.リストアップしたもので,同じ名前の既存のメンバーより新
しいファイルのみ挿入したい場合,この修飾子を使用してください.
u
修飾子は,処理r
(置換)に対してのみ可能です.特に,タイムス
タンプの調査が処理q
での速度の利点を損なうため,qu
と組み合
わせることはできません.
v
v
が追加されているとき,処理しているファイル名のような
追加の情報を表示します.
V
ar
のバージョンナンバーを表示します.
ar
は,AIXに対する互換性のため,-X32_64
と綴られた最初のオプ
ションを無視します.このオプション空生成される動作は,GNU ar
のデ
フォルトです.ar
は,その他のあらゆる-X
オプションをサポート
しません.特に,AIX ar
ではデフォルトとなる-X32
はサポートし
ません.
ar
の制御ar -M [ <script ]
単一のコマンドラインオプション-M
をar
で用いた場合,その処理
を基礎となるコマンド言語でその処理を制御することが可能です.ar
の
この形式は,標準入力が端末から直接来ている場合,対話的に処理します.対話
的に使用している間,ar
は入力を促し(プロンプトはAR >
),エラー
後も実行を続けます.標準入力をスクリプトファイルにリダイレクトしている場
合,プロンプトは発行されず,ar
はあらゆるエラーが発生すると(ゼロで
ない終了コードで)実行を終了します.
ar
コマンド言語は,コマンドラインオプションと等価に設計されて
いません.実際,それはアーカイブ上の制御が幾分少なくなっています.
コマンド言語の目的は,MRI "librarian"プログラムに対して書かれたスクリ
プトを既に所有している開発者が,GNU ar
への変換をより簡単にす
ることです.
ar
コマンド言語の構文は簡単です.
LIST
はlist
と同
じです.以下の記述では,明確さのためにコマンドは大文字で表示されます.
*
または;
以降のテキストは無視されま
す.
ar
コマンドの引数の一部として名前のリストを使用するときは,カンマ
または空白で,それぞれの名前を分けることが可能です.明確さのため,以下の
説明はカンマで表現されます.
+
が使用されます.+
が行末に現れた場合,そ
れに続く行のテキストは,現在のコマンドの一部と考えられます.
ここに,ar
で使用可能な,または,ar
を対話的に使用していると
きのコマンドがあります.そのうちの3つは,特別な意味を持ちます.
SAVE
は,スクリプトでこれまでに指定された変更をコミットします.
SAVE
の前のコマンドは,現在のアーカイブの一時的なコピーに対しての
み効果があります.
ADDLIB archive
ADDLIB archive (module, module, ... module)
OPEN
やCREATE
を前もって使用することが要求されます.
ADDMOD member, member, ... member
OPEN
やCREATE
を前もって使用することが要求されます.
CLEAR
SAVE
されてからのあらゆる処
理の効果を無効にします.現在のアーカイブが指定されていない場合でも実行可
能です(効果はありません).
CREATE archive
SAVE
を使用するまで,archiveとして実際に保存されません.
既存のアーカイブに優先可能です.同様に,指名されている既存の
archiveファイルの内容は,SAVE
まで破壊されません.
DELETE module, module, ... module
ar -d archive module ... module
と同
じです.
OPEN
やCREATE
を前もって使用することが要求されます.
DIRECTORY archive (module, ... module)
DIRECTORY archive (module, ... module) outputfile
VERBOSE
は,出力形式を指定します.冗長
出力がオフのとき,出力はar -t archive module...
の
ようになります.冗長出力がオンのとき,リストはar -tv archive
module...
のようになります.
出力は通常,標準出力に流れていきます.しかし,outputfileを最後の引
数として指定した場合,ar
はそのファイルに出力を変更します.
END
ar
を,成功に完了したことを示す終了コード0
で終了します.こ
のコマンドは出力ファイルを保存しません.最後のSAVE
コマンド以降に
現在のアーカイブを変更した場合.これらの変更は失われます.
EXTRACT module, module, ... module
ar -x
archive module...
と同じです.
OPEN
やCREATE
を前もって使用することが要求されます.
LIST
VERBOSE
の状態に関わらず,
"verbose"形式で表示します.効果はar tv archive
に似ていま
す.(この単独コマンドはGNU ar
拡張で,MRI互換に提供されている
ものではありません).
OPEN
やCREATE
を前もって使用することが要求されます.
OPEN archive
SAVE
が使用されるまで,archiveに対し実際に効果はあり
ません.
REPLACE module, module, ... module
REPLACE
の引数で指名された)既存の
moduleを,現在のワーキングディレクトリのファイルから置換します.エ
ラー無くこのコマンドを実行するために,ファイルと現在のアーカイブのモジュー
ルの両方が存在する必要があります.
OPEN
やCREATE
を前もって使用することが要求されます.
VERBOSE
DIRECTORY
からの出力を管理している内部フラグを切り替えます.フラグ
がオンのとき,DIRECTORY
出力は,ar -tv
...からの出力に
一致します.
SAVE
CREATE
や
OPEN
コマンドで指定された名前のファイルに,実際に保存します.
OPEN
やCREATE
を前もって使用することが要求されます.
nm [ -a | --debug-syms ] [ -g | --extern-only ] [ -B ] [ -C | --demangle[=style] ] [ -D | --dynamic ] [ -s | --print-armap ] [ -A | -o | --print-file-name ] [ -n | -v | --numeric-sort ] [ -p | --no-sort ] [ -r | --reverse-sort ] [ --size-sort ] [ -u | --undefined-only ] [ -t radix | --radix=radix ] [ -P | --portability ] [ --target=bfdname ] [ -f format | --format=format ] [ --defined-only ] [-l | --line-numbers ] [ --no-demangle ] [ -V | --version ] [ -X 32_64 ] [ --help ] [ objfile... ]
GNU nm
は,オブジェクトファイルobjfile...のシンボル
をリストアップします.オブジェクトファイルが引数として与えられていない場
合,nm
は,ファイルa.out
と仮定します.
それぞれのシンボルに対し,nm
は以下を表示します.
A
B
C
--warn-common
の記述を参照してください.
D
G
I
N
R
S
T
U
V
W
-
a.out
オブジェクトファイルのスタブシンボルです.この場
合,次に出力される値は,スタブのその他のフィールド,スタブのdescフィール
ド,そして,スタブの形式になります.スタブシンボルは,デバッグ情報を保つ
ために使用されます.詳細は,Top,を参照してください.
?
ここで交互に表示している,オプションの長い形式と短い形式は等価です.
-A
-o
--print-file-name
-a
--debug-syms
-B
nm
との互換性のための)--format=bsd
と同じです.
-C
--demangle[=style]
--no-demangle
-D
--dynamic
-f format
--format=format
bsd
,sysv
,または
posix
が可能です.デフォルトはbsd
です.formatの最初の
文字のみ識別されます.それは大文字または小文字が可能です.
-g
--extern-only
-l
--line-numbers
-n
-v
--numeric-sort
-p
--no-sort
-P
--portability
-f
posix
と同じです.
-s
--print-armap
ar
やranlib
でアーカイブに
保存されている)マップです.
-r
--reverse-sort
--size-sort
-t radix
--radix=radix
d
,8進数のo
,または16進数のx
にする必要があります.
--target=bfdname
-u
--undefined-only
--defined-only
-V
--version
nm
のバージョンナンバーを表示し終了します.
-X
nm
への互換性のため無視されます.
それは,32_64
とする必要がある,1つのパラメータを持ちます.AIX
nm
のデフォルトモードは-X 32
に対応し,それはGNU
nm
ではサポートされていません.
--help
nm
のオプションの概要を表示し終了します.
objcopy [ -F bfdname | --target=bfdname ] [ -I bfdname | --input-target=bfdname ] [ -O bfdname | --output-target=bfdname ] [ -S | --strip-all ] [ -g | --strip-debug ] [ -K symbolname | --keep-symbol=symbolname ] [ -N symbolname | --strip-symbol=symbolname ] [ -L symbolname | --localize-symbol=symbolname ] [ -W symbolname | --weaken-symbol=symbolname ] [ -x | --discard-all ] [ -X | --discard-locals ] [ -b byte | --byte=byte ] [ -i interleave | --interleave=interleave ] [ -j sectionname | --only-section=sectionname ] [ -R sectionname | --remove-section=sectionname ] [ -p | --preserve-dates ] [ --debugging ] [ --gap-fill=val ] [ --pad-to=address ] [ --set-start=val ] [ --adjust-start=incr ] [ --change-addresses=incr ] [ --change-section-address section{=,+,-}val ] [ --change-section-lma section{=,+,-}val ] [ --change-section-vma section{=,+,-}val ] [ --change-warnings ] [ --no-change-warnings ] [ --set-section-flags section=flags ] [ --add-section sectionname=filename ] [ --change-leading-char ] [ --remove-leading-char ] [ --srec-len=ival ] [ --srec-forceS3 ] [ --redefine-sym old=new ] [ --weaken ] [ -v | --verbose ] [ -V | --version ] [ --help ] infile [outfile]
GNU objcopy
ユーティリティは,オブジェクトファイルの内容を別
のファイルにコピーします.objcopy
はオブジェクトファイルの読み書き
にGNU BFDを使用します.それは,目的のオブジェクトファイルに,
元となるスオブジェクトファイルと異なる書式で書き出すことが可能です.
objcopy
の正確な動作は,コマンドラインオプションで制御されます.
objcopy
は,完全にリンクされているファイルを,2つの書式の間でコピー
可能であるべきだということに注意してください.しかし,リロケート可能なオ
ブジェクトファイルを2つの書式の間でコピーすることは,期待したようには動
作しません.
objcopy
は,その変換を行うために一時ファイルを作成し,その後でそれ
を削除します.objcopy
は,そのすべての変換作業でBFDを使用しま
す.それは,BFDで記述されているすべての書式にアクセスし,そのため,
明示的に告げること無く,ほとんどの書式を認識することが可能です.
See BFD.
objcopy
は,srec
出力ターゲットを使用することで,S-recordを
生成するために使用可能です(例えば,-O srec
を使用してください).
objcopy
は,binary
の出力ターゲットを使用することで,rawバイ
ナリファイルを生成するために使用可能です(例えば,-O binary
を使用
してください).objcopy
がrawバイナリファイルを生成するとき,それは
本質的に,入力オブジェクトファイルの内容のメモリダンプを生成します.すべ
てのシンボルとリロケーション情報は削除されます.メモリダンプは,出力ファ
イルにコピーされる最抵位のセクションのロードアドレスから開始します.
S-recordやrawバイナリファイルを生成するとき,デバッグ情報を含むセクショ
ンを削除するため,-S
を使用すると便利かもしれません.場合によって
は,バイナリファイルに必要のない情報を含むセクションを削除するため,
-R
が役に立つでしょう.
注意 - objcopy
は,入力ファイルのエンディアンを変更することができ
ません.入力書式にエンディアンがある場合,(持たない書式もあります),
objcopy
は,入力ファイルを同じエンディアンを持つ,またはエンディア
ンを持たない書式のファイルにのみコピー可能です.
infile
outfile
objcopy
は結果的に破壊される一時ファイルを作成し,infileに名
前を変更します.
-I bfdname
--input-target=bfdname
-O bfdname
--output-target=bfdname
-F bfdname
--target=bfdname
-j sectionname
--only-section=sectionname
-R sectionname
--remove-section=sectionname
-S
--strip-all
-g
--strip-debug
--strip-unneeded
-K symbolname
--keep-symbol=symbolname
-N symbolname
--strip-symbol=symbolname
-L symbolname
--localize-symbol=symbolname
-W symbolname
--weaken-symbol=symbolname
-x
--discard-all
-X
--discard-locals
L
または.
ではじまります.)
-b byte
--byte=byte
-i
や--interleave
オプションで与えられる,
またはデフォルトの4になります.このオプションは,プログラマブルROM
にファイルを作成するとき便利です.それは特に,srec
出力ターゲット
とともに使用されます.
-i interleave
--interleave=interleave
--byte
オ
プションを用いてそのバイトを選択してください.デフォルトは4です.
objcopy
は,-b
や--byte
を指定していない場合,このオプ
ションを無視します.
-p
--preserve-dates
--debugging
--gap-fill val
--pad-to address
--gap-fill
(default zero).
出力ファイルをload address addressまでパディングします.これは,最
後のセクションの大きさを増加することで動作します.余分な空間は,
--gap-fill
で指定された値(デフォルトはゼロ)で補充されます.
--set-start val
--change-start incr
--adjust-start incr
--change-addresses incr
--adjust-vma incr
--change-section-address section{=,+,-}val
--adjust-section-vma section{=,+,-}val
=
が使用された場合,セクションのアドレスは,valに設
定されます.それ以外の場合,valは,セクションアドレスに加えられる,
またはそれから引かれます.上記の--change-addresses
以下のコメント
を参照してください.入力ファイルにsectionが存在しない場合,
--no-change-warnings
が使用されていない限り,警告が発せられます.
--change-section-lma section{=,+,-}val
=
が使用されている場合,セクションのアドレ
スは,valに設定されます.それ以外の場合,valはセクションアド
レスに加えられる,またはそれから引かれます.上記の
--change-addresses
以下のコメントを参照してください.section
が入力ファイルに存在しない場合,--no-change-warnings
が使用されて
いない限り,警告が発せられます.
--change-section-vma section{=,+,-}val
=
が使用されている場合,セクションのアドレ
スは,valに設定されます.それ以外の場合,valはセクションアド
レスに加えられる,またはそれから引かれます.上記の
--change-addresses
以下のコメントを参照してください.section
が入力ファイルに存在しない場合,--no-change-warnings
が使用されて
いない限り,警告が発せられます.
--change-warnings
--adjust-warnings
--change-section-address
や--change-section-lma
や
--change-section-vma
が使用されている場合で,指名されたセクション
が存在しない場合,警告を発します.これはデフォルトです.
--no-change-warnings
--no-adjust-warnings
--change-section-address
や--change-section-lma
や
--change-section-vma
が使用されている場合で,指名されたセクション
が存在しない場合でも警告を発しません.
--set-section-flags section=flags
alloc
,
contents
,load
,noload
,readonly
,
code
,data
,rom
,share
,そしてdebug
で
す.contents
フラグを内容のないセクションに対し設定可能ですが,内
容のあるセクションのcontents
フラグとしての意味がありません--その
代わりにセクションを削除します.すべてのフラグがすべてのオブジェクトファ
イル書式に意味があるわけではありません.
--add-section sectionname=filename
--change-leading-char
objcopy
に,オブジェクトファイル書式を変換している間にすべてのシン
ボルに前置される文字を変更するよう伝えます.オブジェクトファイル書式が同
じ前置文字を使用している場合,このオプションは効果がありません.それ以外
の場合,それは適切に,文字を加えたり,文字を削除したり,文字を変更したり
します.
--remove-leading-char
--change-leading-char
とは異なり,出
力ファイルのオブジェクトファイルの書式に依存せず,それは適切なときは常に
シンボル名を変更します.
--srec-len=ival
--srec-forceS3
--redefine-sym old=new
--weaken
-R
オプションを使用した,他のオブジェクトに対しリンクするオブジェクトを構築
するとき,これは便利です.
-V
--version
objcopy
のバージョンナンバーを表示します.
-v
--verbose
objcopy -v
は,アーカイブのすべてのメンバー
をリストアップします.
--help
objcopy
へのオプションの概要を表示します.
objdump [ -a | --archive-headers ] [ -b bfdname | --target=bfdname ] [ -C | --demangle[=style] ] [ -d | --disassemble ] [ -D | --disassemble-all ] [ -z | --disassemble-zeroes ] [ -EB | -EL | --endian={big | little } ] [ -f | --file-headers ] [ --file-start-context ] [ -g | --debugging ] [ -h | --section-headers | --headers ] [ -i | --info ] [ -j section | --section=section ] [ -l | --line-numbers ] [ -S | --source ] [ -m machine | --architecture=machine ] [ -M options | --disassembler-options=options] [ -p | --private-headers ] [ -r | --reloc ] [ -R | --dynamic-reloc ] [ -s | --full-contents ] [ -G | --stabs ] [ -t | --syms ] [ -T | --dynamic-syms ] [ -x | --all-headers ] [ -w | --wide ] [ --start-address=address ] [ --stop-address=address ] [ --prefix-addresses] [ --[no-]show-raw-insn ] [ --adjust-vma=offset ] [ -V | --version ] [ -H | --help ] objfile...
objdump
は,1つ以上のオブジェクトファイルに関する情報を表示します.
オプションで,表示する特定の情報を制御します.この情報は,プログラムをコ
ンパイルして動作させたいだけのプログラマより,コンパイルツールに関する作
業をしているプログラマに対し最も役に立ちます.
objfile...は,調査されるオブジェクトファイルです.アーカイブを
指定したとき,objdump
は,それぞれのメンバーオブジェクトファイルの
情報を表示します.
ここに交互に表示しているオプションの長い形式と短い形式は等価です.リスト
の-a,-d,-D,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-x
から少なくとも一
つのオプションを与える必要があります.
-a
--archive-header
ls -l
に似ています).ar tv
を用いてリストアッ
プ可能な情報に加え,objdump -a
は,それぞれのアーカイブのメンバー
のオブジェクトファイルの書式を表示します.
--adjust-vma=offset
a.out
のようなセクションアドレスが
存在できない書式を使用しているとき,セクションを特定のアドレスに配置する
とき発生します.
-b bfdname
--target=bfdname
例えば,以下のようにします.
objdump -b oasys -m vax -h fu.o
それは,fu.o
のセクションヘッダ(-h
)からの情報の概要を表示し,
それは特に,Oasysコンパイラで生成される書式のVAXオブジェクトファイルとし
て認識(-m
)されます.-i
オプションを用いて利用可能な書式をリ
ストアップ可能です.詳細は,See Target Selection.
-C
--demangle[=style]
-G
--debugging
-d
--disassemble
-D
--disassemble-all
-d
に似ていますが,(機械語)命令を含むことを期待されるものだけでな
く,すべてのセクションの内容を逆アセンブルします.
--prefix-addresses
--disassemble-zeroes
-EB
-EL
--endian={big|little}
-f
--file-header
--file-start-context
-h
--section-header
--header
ファイルのセグメントは,非標準のアドレスにリロケートされ,例えば,
-Ttext
,-Tdata
,または-Tbss
オプションがld
で
使用されています.しかし,a.out
のようなオブジェクトファイルの書式
によっては,ファイルセグメントの開始アドレスを保存しないものもあります.
そのような状況では,ld
がセクションを正しくリロケートしますが,ファ
イルのセクションのヘッダのリストにobjdump -h
を使用しても,正しい
アドレスを表示することはできません.その代わりに,それは通常のアドレスを
表示し,それらはターゲットに対して暗黙のうちに行われます.
--help
objdump
に対するオプションの概要を出力し,終了します.
-i
--info
-b
や-m
を用いて指定可能な,すべてのアーキテクチャとオブジェ
クト書式を示すリストを表示します.
-j name
--section=name
-l
--line-numbers
-d
,-D
,または-r
を用いた場合のみ有益です.
-m machine
--architecture=machine
-i
オプションを用
いて,利用可能なアーキテクチャをリストアップ可能です.
-M options
--disassembler-options=options
ターゲットがARMアーキテクチャの場合,逆アセンブラが使用されている間に使
用するレジスタ名のセットを選択するために,このスイッチを使用することが可
能です.-M reg-name-std
(デフォルト)を指定すると,ARMの(機械語)命
令セットのドキュメントで使用しているレジスタ名を選択しますが,'sp'と呼ば
れるレジスタ13,'lr'と呼ばれるレジスタ14,そして'pc'と呼ばれるレジスタ15
レジスタは除きます.-M reg-names-apcs
を指定すると,ARM Procedure
Call Standardで使用されている名前のセットを選択するのに対し,-M
reg-names-raw
を指定すると,r
にレジスタ番号が続いたものを使用しま
す.
APCSレジスタ命名規則には2つの変形があり,-M reg-names-atpcs
と
-M reg-names-special-atpcs
により利用可能で,それはARM/Thumb
Procedure Call Standard命名規約を使用します.(通常のレジスタ名,または,
特殊なレジスタ名のどちらかを使用します.)
このオプションは,ARMアーキテクチャに対し,スイッチ
--disassembler-options=force-thumb
を使用して,すべての(機械語)命
令をTHUMB(機械語)命令として解釈するように逆アセンブラに強制するためにも
使用可能です.他のコンパイラで生成される thumb コードの逆アセンブラを試
みるとき,これは役に立つはずです.
-p
--private-headers
-r
--reloc
-d
や-D
とともに使
用される場合,リロケーションは逆アセンブルの中に点在して出力されます.
-R
--dynamic-reloc
-s
--full-contents
-S
--source
-d
が暗黙のうちに指定されます.
--show-raw-insn
--prefix-addresses
が使用されているとき以外,
これはデフォルトです.
--no-show-raw-insn
--prefix-addresses
が使用されているときデフォルトです.
-G
--stabs
.stab
デバッグシンボルテーブルの項目がELFのセクションに運び込まれ
る(Solaris 2.0のような)システムでのみ役に立ちます.そのほかのほとんどの
書式では,デバッグシンボルテーブルの項目は,リンクシンボルとともにバラバ
ラに配置され,--syms
の出力で見ることが可能となります.スタブシン
ボルの詳細は,Top, を参照してください.
--start-address=address
-d
,-r
,
そして-s
オプションの出力に効果があります.
--stop-address=address
-d
,-r
,
そして-s
オプションの出力に効果があります.
-t
--syms
nm
プログラ
ムで提供される情報に似ています.
-T
--dynamic-syms
-D
(--dynamic
)オプションが与えられているnm
プ
ログラムで提供される情報に似ています.
--version
objdump
のバージョンナンバーを出力し終了します.
-x
--all-header
-x
を用いると,-a -f -h -r -t
をすべて指定
したものと等価になります.
-w
--wide
ranlib [-vV] archive
ranlib
は,アーカイブの内容の索引を生成し,それをアーカイブに保存
します.索引は,リロケート可能なオブジェクトファイルであるアーカイブのメ
ンバーにより定義される,それぞれのシンボルをリストアップします.
この索引をリストアップするために,nm -s
やnm --print-armap
を使用することが可能です.
そのような索引を持ったアーカイブは,ライブラリとのリンクで高速になり,アー カイブ内での位置によらず,ライブラリ内でのお互いの呼び出し動作を可能にし ます.
GNU ranlib
プログラムは,GNU ar
のもう一つの形式で
す.ranlib
を実行することは,ar -s
を実行することと完全に等
価です.See ar.
-v
-V
--version
ranlib
のバージョンナンバーを表示します.
size [ -A | -B | --format=compatibility ] [ --help ] [ -d | -o | -x | --radix=number ] [ --target=bfdname ] [ -V | --version ] [ objfile... ]
GNU size
ユーティリティは,その引数リスト内の,それぞれのオブ
ジェクトやアーカイブファイルobjfileに対し,セクションのサイズ--と
全体のサイズ--をリストアップします.デフォルトで,それぞれのオブジェク
トファイルやそれぞれのアーカイブのモジュールに対し,一行の出力が生成され
ます.
objfile...は,調査されるオブジェクトファイルです.何も指定され
ない場合,ファイルa.out
が使用されます.
コマンドラインオプションには,以下の意味があります.
-A
-B
--format=compatibility
size
(-A
,
または--format=sysv
の使用)からの出力に似ているGNU
size
からの出力,または,Berkeley size
(-B
,または
--format=berkeley
の使用)のいずれかを選択することができます.デフォ
ルトは,一行の書式はBerkeleyのものに似ています.
以下は,Berkeley (デフォルト)書式のsize
の出力例です.
$ size --format=Berkeley ranlib size text data bss dec hex filename 294880 81920 11592 388392 5ed28 ranlib 294880 81920 11888 388688 5ee50 size
これは同じデータですが,System Vの記法を選択して表示されています.
$ size --format=SysV ranlib size ranlib : section size addr .text 294880 8192 .data 81920 303104 .bss 11592 385024 Total 388392 size : section size addr .text 294880 8192 .data 81920 303104 .bss 11888 385024 Total 388688
--help
-d
-o
-x
--radix=number
-d
または--radix=10
),8進数(-o
または
--radix=8
),または16進数(-x
または--radix=16
)で与え
られるもののいづれかに制御可能です.--radix=number
では,3つ
の値(8, 10, 16)のみサポートされます.全体のサイズは常に2つの基数で与えら
れます.それは,-d
や-x
に対する,10進数と16進数,または
-o
を使用した場合,8進数と16進数になります.
--target=bfdname
size
は自動的に多くの書
式を認識できます.詳細は,See Target Selection.
-V
--version
size
のバージョンナンバーを表示します.
strings [-afov] [-min-len] [-n min-len] [-t radix] [-] [--all] [--print-file-name] [--bytes=min-len] [--radix=radix] [--target=bfdname] [--help] [--version] file...
それぞれの与えられたfileに対し,GNU strings
は,出力可
能な文字の,少なくとも4文字の長さ(または以下のオプションで与えられた数)
の並びで,それに出力不可能な文字が続くものを出力します.デフォルトで,オ
ブジェクトファイルの,初期化されロードされたセクションから,文字列のみ出
力します.それ以外のファイルの形式では,ファイル全体から文字列を出力しま
す.
strings
は,テキストではないファイルの内容を判断することに,主に役
立ちます.
-a
--all
-
-f
--print-file-name
--help
-min-len
-n min-len
--bytes=min-len
-o
-t o
に似ています.strings
の他のバージョンには,代わりに
-t d
のように-o
を動作させるものもあります.我々は,両方の互
換性を提供することができないので,単純にこちらを選びました.
-t radix
--radix=radix
o
,16進数に
対するx
,または10進数に対するx
--を指定します.
--target=bfdname
-v
--version
strip [ -F bfdname | --target=bfdname ] [ -I bfdname | --input-target=bfdname ] [ -O bfdname | --output-target=bfdname ] [ -s | --strip-all ] [ -S | -g | --strip-debug ] [ -K symbolname | --keep-symbol=symbolname ] [ -N symbolname | --strip-symbol=symbolname ] [ -x | --discard-all ] [ -X | --discard-locals ] [ -R sectionname | --remove-section=sectionname ] [ -o file ] [ -p | --preserve-dates ] [ -v | --verbose ] [ -V | --version ] [ --help ] objfile...
GNU strip
は,オブジェクトファイルobjfileからシンボルを
すべて廃棄します.オブジェクトファイルのリストには,アーカイブを含めるこ
とが可能です.少なくとも1つのオブジェクトファイルを与える必要があります.
strip
は,異なる名前に編集されたものを書き出すのではなく,その引数
で指名されたファイルを変更します.
-F bfdname
--target=bfdname
--help
strip
へのオプションの概要を表示し終了します.
-I bfdname
--input-target=bfdname
-O bfdname
--output-target=bfdname
-R sectionname
--remove-section=sectionname
-s
--strip-all
-g
-S
--strip-debug
--strip-unneeded
-K symbolname
--keep-symbol=symbolname
-N symbolname
--strip-symbol=symbolname
-K
以外のstrip
オプションと組み
合わせることも可能です.
-o file
strip
された出力をfileに
書き込みます.この引数が使用されたとき,1つのobjfile引数のみ指定可
能です.
-p
--preserve-dates
-x
--discard-all
-X
--discard-locals
L
または.
で始まります.)
-V
--version
strip
のバージョンナンバーを表示します.
-v
--verbose
strip -v
はアーカイブのすべてのメンバーをリ
ストアップします.
c++filt [ -_ | --strip-underscores ] [ -j | --java ] [ -n | --no-strip-underscores ] [ -s format | --format=format ] [ --help ] [ --version ] [ symbol... ]
C++とJava言語は,関数のオーバーロードを提供し,それは(それぞれ異なる型の
パラメータの受け入れを提供する)同じ名前の多くの関数を書くことが可能だと
いうことを意味します.すべてのC++とJavaの関数名は,低レベルのアセンブリ
ラベルに符号化されます(この処理はmanglingとして知られています.)
c++filt
2プログ
ラムは,マッピングを反転します.それは,これらのオーバーロードされた関数
を破壊することから,リンカが守ることができるように,低レベルの名前をユー
ザレベルの名前に復号(demangles)します.
入力にあるすべての英数単語(文字,数字,アンダースコア,ドル記号,または ピリオド)は,ポテンシャルラベルと考えられます.ラベルをC++の名前に復号す る場合,C++の名前は出力で低レベルの名前に置換されます.
個別のシンボルを解読するためにc++filt
を使用することが可能です.
c++filt symbol
symbol引数が与えられた場合,c++filt
は,シンボル名を標準入力
から読み込み,demangleされた名前を標準出力に書き出します.すべての結果は,
標準出力に出力されます.
-_
--strip-underscores
foo
が,低レベルでは
名前_foo
になります.このオプションは,最初のアンダースコアを削除
します.c++filt
がデフォルトでアンダースコアを削除するかどうかはター
ゲットに依存します.
-j
--java
-n
--no-strip-underscores
-s format
--format=format
nm
は,異なるC++コンパイラが使用されてmangleしている,3つ
の異なるメソッドを復号することが可能です.このオプションの引数は,使用さ
れているメソッドを選択します.
gnu
lucid
arm
hp
edg
gnu-new-abi
--help
c++filt
のオプションの概要を出力し終了します.
--version
c++filt
のバージョンナンバーを出力し終了します.
警告:c++filt
は,新しいユーティリティで,そのユーザインター フェースの詳細は将来のリリースで変更を受けやすくなっています.特に,コマ ンドラインの引数として渡される名前を復号するために,コマンドラインオプショ ンが,将来要求されるかもしれません.言い換えると以下のようになるというこ とです.c++filt symbolこれが,将来のリリースでは,以下のようになるかもしれません.
c++filt option symbol
addr2line [ -b bfdname | --target=bfdname ] [ -C | --demangle[=style ] [ -e filename | --exe=filename ] [ -f | --functions ] [ -s | --basename ] [ -H | --help ] [ -V | --version ] [ addr addr ... ]
addr2line
は,プログラムアドレスをファイル名と行番号に変換します.
アドレスと実行形式が与えられた場合,ファイル名と行番号が与えられたアドレ
スに関連していることを判別するため,それは実行形式内のデバッグ情報を使用
します.
使用する実行形式は,-e
オプションで指定されます.デフォルトは,ファ
イルa.out
です.
addr2line
は,2つの処理モードがあります.
1番目は,16進アドレスがコマンドラインで指定され,addr2line
は,それ
ぞれのアドレスに対しファイル名と行番号を表示します.
2番目は,addr2line
が16進のアドレスと標準入力から読み込み,それぞ
れのアドレスに対し,ファイル名と行番号を標準出力に出力します.このモード
では,addr2line
は,動的に選択されたアドレスを変換するパイプとして
使用可能です.
出力の書式は,FILENAME:LINENO
です.それぞれのアドレスに対するファ
イル名と行番号は,個別の行に出力されます.-f
オプションが使用され
た場合,それぞれのFILENAME:LINENO
行に,アドレスに含まれる関数名
FUNCTIONNAME
が前置されます.
ファイル名と関数名が決定できない場合,addr2line
は2つの疑問符をそ
の場所に出力します.行番号が決定できない場合,addr2line
は,0を出
力します.
ここで交互に表示している,オプションの長い形式と短い形式は等価です.
-b bfdname
--target=bfdname
-C
--demangle[=style]
-e filename
--exe=filename
a.out
です.
-f
--functions
-s
--basenames
nlmconv
は,リロケートオブジェクトファイルをNetWare Loadable
Moduleに変換します.
警告: nlmconv
は,NLMターゲットに対してのみ役に立つので,常
にバイナリユーティリティの一部として構築されるわけではありません.
nlmconv [ -I bfdname | --input-target=bfdname ] [ -O bfdname | --output-target=bfdname ] [ -T headerfile | --header-file=headerfile ] [ -d | --debug] [ -l linker | --linker=linker ] [ -h | --help ] [ -V | --version ] infile outfile
nlmconv
は,リロケート可能なi386
オブジェクトファイル
infileをNetWare Loadable Module outfileに変換し,さらに,NLM
ヘッダ情報に対するheaderfileを読み込みます.ヘッダで使用されている
NLMコマンドファイル言語を書くことの説明は, Novell, Inc.で利用可能な,
NLM Software Developer's Kit ("NLM SDK")の一部である,NLM
Development and Tools Overviewの,linkers
セクションの特定の
NLMLINK
を参照してください.nlmconv
は,infileを読み込
むために,GNU Binary File Descriptorライブラリを使用します.詳細は,
BFD,を参照してください.
nlmconv
はリンクステップを実行可能です.言い換えると,(コマンドラ
インで1つの入力ファイルを単に指定するのではなく)定義ファイルでリストアッ
プした場合,入力に対して1つ以上のオブジェクトファイルをリストアップする
ことが可能です.この場合,nlmconv
はリンカを呼び出します.
-I bfdname
--input-target=bfdname
nlmconv
は,通常与えられたファ
イルの書式を決定できます(そのためデフォルトは不要です).詳細は,
See Target Selection.
-O bfdname
--output-target=bfdname
nlmconv
は,出力の書式を入力
の書式を元に推測し,例えば,i386
入力ファイルに対する出力の書式は,
nlm32-i386
になります.詳細は,See Target Selection.
-T headerfile
--header-file=headerfile
linkers
セクションを参
照してください.
-d
--debug
nlmconv
が使用しているリンカコマンドラインを(標準エラー出力に)表示
します.
-l linker
--linker=linker
-h
--help
-V
--version
nlmconv
のバージョンナンバーを出力します.
windres
は,複数のWindowsのリソースで使用可能です.
警告: windres
は,Windowsターゲットに対してのみ役に立つので,
常にバイナリユーティリティの一部として構築されるわけではありません.
windres [options] [input-file] [output-file]
windres
はリソースを入力ファイルから読み込み,それを出力ファイルに
コピーします.ファイルは以下の3つの書式の内,いずれか1つが可能です.
rc
res
coff
これらの書式の差異の正確な記述は,Microsoftのドキュメントで利用可能です.
windres
がrc
書式からres
書式に変換するとき,それは
Windows Resource Compilerのように動作します.windres
がres
書式からcoff
書式に変換するとき,それはWindows CVTRES
プログ
ラムのように動作します.
windres
がrc
ファイルを生成するとき,出力は似ていますが,入
力で期待される書式と同一ではありません.入力rc
ファイルが外部のファ
イル名を参照するとき,出力rc
ファイルは,その代わりに,ファイルの
内容を含めます.
入力や出力の書式が指定されない場合,windres
はファイル名,または,
入力ファイルのファイルの内容を基に推測します..rc
の拡張子を持つファ
イルは,rc
ファイルとして扱われ,.res
の拡張子を持つファイル
は,res
ファイルとして扱われ,そして,.o
や.exe
の拡張
子を持つファイルは,coff
ファイルとして扱われます.
出力ファイルが指定されない場合,windres
は,rc
書式内のリソー
スを標準出力に出力します.
rc
を書き,COFFオブジェクトファイルに変換するためにwindres
を使用し,COFFファイルをアプリケーションにリンクするのが通常の使用方法で
す.これは,rc
ファイルのリソースの記述を,Windowsで利用可能にしま
す.
-i filename
--input filename
windres
は,
最初の非オプションの引数を入力ファイル名として使用します.非オプションの
引数がない場合,windres
は,標準入力から読み込みます.
windres
は,COFFファイルを標準入力から読み込むことはできません.
-o filename
--output filename
windres
は,
入力ファイル名として使用した後の,最初の非オプションの引数を出力ファイル
名として使用します.非オプションの引数がない場合,windres
は,標準
出力に書き出します.windres
は,COFFファイルを標準出力に書き出すこ
とはできません.
-I format
--input-format format
res
,rc
,または
coff
が可能です.入力書式が指定されない場合,windres
は,上
記のように推測します.
-O format
--output-format format
res
,rc
,または
coff
が可能です.出力書式が指定されない場合,windres
は,上
記のように推測します.
-F target
--target target
--help
オプションが使用可能です.通常,windres
はデフォルト
の書式を使用し,それは--help
オプションでリストアップされる最初の
ものです.Target Selection.
--preprocessor program
windres
がrc
ファイルを読み込むとき,それは最初にCプリプロセッ
サを通じて実行されます.このオプションは,使用するプリプロセッサを指定す
るために,利用することができ,それには引数を前置するものを含みます.デフォ
ルトのプリプロセッサ引数は,gcc -E -xc-header -DRC_INVOKED
です.
--include-dir directory
rc
ファイルを読み込むとき使用する,インクルードディレクトリを指定
します.windres
は,これを-I
オプションとしてプリプロセッサ
に渡します.windres
は,rc
ファイルで指名されているファイル
を探すとき,このディレクトリの検索も行います.
-D target
--define sym[=val]
rc
ファイルを読み込むとき,プリプロセッサに渡す-D
オプション
を指定します.
-v
--language val
rc
ファイルを読み込むとき使用する,デフォルトの言語を指定します.
valは16進数の言語コードにする必要があります.下位8ビットは言語で,
上位8ビットはサブ言語です.
--use-temp-file
--no-use-temp-file
--help
--version
windres
のバージョンナンバーを出力します.
--yydebug
windres
がYYDEBUG
を1
と定義してコンパイルされる場合,
パーサデバッグを開始します.
ダイナミックリンクライブラリ(DLL)を構築し使用するのに必要なファイルを作
成するために,dlltool
は使用されます.
警告: dlltool
は,DLLをサポートするターゲットに対してのみ役
に立つので,常にバイナリユーティリティの一部として構築されるわけではあり
ません.
dlltool [-d|--input-def def-file-name] [-b|--base-file base-file-name] [-e|--output-exp exports-file-name] [-z|--output-def def-file-name] [-l|--output-lib library-file-name] [--export-all-symbols] [--no-export-all-symbols] [--exclude-symbols list] [--no-default-excludes] [-S|--as path-to-assembler] [-f|--as-flags options] [-D|--dllname name] [-m|--machine machine] [-a|--add-indirect] [-U|--add-underscore] [-k|--kill-at] [-A|--add-stdcall-alias] [-x|--no-idata4] [-c|--no-idata5] [-i|--interwork] [-n|--nodelete] [-v|--verbose] [-h|--help] [-V|--version] [object-file ...]
dlltool
は,その入力を読み込み,それは,コマンドラインで指定された
オブジェクトファイルと,-d
と-b
オプションから来ます.そして,
これらの入力を処理し,-e
オプションが指定されている場合は,エクス
ポートファイルを作成します.-l
オプションが指定されている場合は,
ライブラリファイルを作成し,-z
オプションが指定されている場合は,
defファイルを作成します.-e,-l,そして-zオプションのいずれか,またはす
べてを,dlltool
の呼び出しに置くことが可能です.
DLLを作成しているとき,DLLのソースファイルとともに,それは3つの他のファ
イルが必要です.dlltool
は,これらのファイルの作成を手助けすること
が可能です.
最初のファイルは,DLLからエクスポートされる関数や,DLLがインポートする関
数等を指定する,.def
ファイルです.これはテキストファイルで,手動
で作成したり,作成するためにdlltool
を-z
オプションを用いて
使用したりできます.この場合,dlltool
は,エクスポートされるように
特別に印の付けられたこれらの関数を探しながら,コマンドラインで指定された
オブジェクトファイルを走査し,作成する.def
ファイルにそれらの項目
を書き出します.
DLLからエクスポートされるように関数に印を付けるため,オブジェクトファイ
ルの.drectve
セクションに,-export:<name_of_function>
項目が
必要です.これは,Cでasm()演算子を使用することで可能となります.
asm (".section .drectve"); asm (".ascii \"-export:my_func\""); int my_func (void) { ... }
DLLの作成に必要とされる2番目のファイルは,エクスポートファイルです.この
ファイルは,DLL本体を作成し,DLLと外部世界の間のインターフェースを取り扱
うオブジェクトファイルとリンクされます.これはバイナリファイルで,
dlltool
が.def
ファイルの作成または読み込みをしている時に,
それに-e
オプションを与えると作成されます.
DLLの作成に必要とされる3番目のファイルは,DLL内の関数にアクセスするため
にプログラムとリンクするライブラリファイルです.このファイルは,
dlltool
が.def
ファイルの作成または読み込みをしている時に,
それに-l
オプションを与えると作成されます.
dlltool
は,手動でライブラリファイルを構築しますが,それは,アセン
ブラ宣言を含む一時ファイルを作成し,それをアセンブルすることで,エクスポー
トファイルを構築します.-S
コマンドラインオプションは,
dlltool
が使用するアセンブラへのパスを指定するため使用可能で,
-f
オプションは,そのアセンブラに特別なフラグを渡すために使用可能
です.-n
は,dlltool
がこれらの一時的なアセンブラファイルを
終了後に削除することを防ぐために使用可能で,-n
が2回指定されている
場合は,dlltool
がライブラリを構築するために使用した,一時的なオブ
ジェクトファイルを削除することを防ぎます.
ここに,ソースファイルdll.c
からDLLを作成し,そのDLLを使用している
プログラムも(program.o
という名前のオブジェクトファイルから)作成し
ている例があります.
gcc -c dll.c dlltool -e exports.o -l dll.lib dll.o gcc dll.o exports.o -o dll.dll gcc program.o dll.lib -o program
コマンドラインオプションは以下の意味があります.
-d filename
--input-def filename
.def
ファイルの名前を指定します.
-b filename
--base-file filename
dlltool
で生成されるエクスポートファイルの,リロケーションセクショ
ンが追加されます.
-e filename
--output-exp filename
dlltool
で作成される,エクスポートファイルの名前を指定します.
-z filename
--output-def filename
dlltool
で作成される,.def
ファイルの名前を指定します.
-l filename
--output-lib filename
dlltool
で作成される,ライブラリファイルの名前を指定します.
--export-all-symbols
--no-default-excludes
オプションを参照してください.
--exclude-symbols
オプションを使用して,エクスポートされないシンボ
ルのリストを追加することが可能です.
--no-export-all-symbols
.def
ファイルや入力オブジェクトファイルの.drectve
セク
ションで,明示的にリストアップされているシンボルのみエクスポートします.
.drectve
は,ソースコード内のdllexport
属性で作成されます.
--exclude-symbols list
--export-all-symbols
が使用
されているときのみ意味があります.
--no-default-excludes
--export-all-symbols
が使用されているとき,それはデフォルトで,あ
る特別なシンボルをエクスポートすることを避けます.現在のエクスポートを避
けるリストは,DllMain@12
, DllEntryPoint@0
,
impure_ptr
です.これらの特別なシンボルを進んでエクスポートするた
めに,--no-default-excludes
オプションを使用することが可能です.こ
れは,--export-all-symbols
が使用されているときのみ意味があります.
-S path
--as path
-f switches
--as-flags switches
-S
が指定され
ていないかのように動作します.このオプションは1つの引数のみ渡し,コマン
ドラインに1回以上出現する場合,最後に出現したもので,前に出現したものに
優先させます.そのため,複数のスイッチをアセンブラに渡す必要がある場合は,
二重引用符で囲む必要があります.
-D name
--dll-name name
-e
オプションが使用されてるとき,DLLの名前として.def
ファイ
ルに保存する名前を指定します.このオプションがない場合,-e
オプショ
ンで与えられるファイル名は,DLLの名前として使用されます.
-m machine
-machine machine
dlltool
に
は,構築のされ方に依存するデフォルト形式がありますが,このオプションで,
それに優先させることが可能です.これは通常,ARMプロセッサに対するDLLを作
成するときのみ役に立ち,DLLの内容は,実際にTHUMB(機械語)命令を使用して符
号化されます.
-a
--add-indirect
dlltool
がエクスポートファイルを作成しているとき,エクスポート関数
がインポートライブラリを使用しないで参照できるように,セクションを加える
ことを指定します.たとえ,それが地獄を意味しようとも!
-U
--add-underscore
dlltool
エクスポートファイルを作成しているとき,エクスポート関数の
名前にアンダースコアを前置することを指定します.
-k
--kill-at
dlltool
エクスポートファイルを作成しているとき,文字列@
<number>
を追加しないことを指定します.これらの数字は,序数と呼ばれ,DLL
では関数にアクセスする1つの方法を表示し,それ以外では名前で表示します.
-A
--add-stdcall-alias
dlltool
がエクスポートファイルを作成しているとき,シンボルに
@ <number>
を追加したものを,@ <number>
なしでstdcallシン
ボルの別名を加えることを指定します.
-x
--no-idata4
dlltool
エクスポートファイルとライブラリファイルを作成しているとき,
.idata4セクションを削除することを指定します.これは,あるオペレーティング
システムとの互換性のためです.
-c
--no-idata5
dlltool
エクスポートファイルとライブラリファイルを作成しているとき,
.idata5セクションを削除することを指定します.これは,あるオペレーティング
システムとの互換性のためです.
-i
--interwork
dlltool
が,生成しているライブラリファイルとエクスポートファイル内
のオブジェクトに,ARMとTHUMB間での相互動作をサポートするように印を付ける
ことを指定します.
-n
--nodelete
dlltool
は,エクスポートファイルを作成するために使用した一時的なア
センブラファイルを保存します.このオプションが繰り返される場合,
dlltool
は,ライブラリを作成するために使用する一時的なオブジェクト
ファイルも保存します.
-v
--verbose
dlltool
は,行っていることを記述します.
-h
--help
-V
--version
dlltool
のバージョンナンバーを表示し終了します.
readelf [ -a | --all ] [ -h | --file-header] [ -l | --program-headers | --segments] [ -S | --section-headers | --sections] [ -e | --headers] [ -s | --syms | --symbols] [ -n | --notes] [ -r | --relocs] [ -d | --dynamic] [ -V | --version-info] [ -D | --use-dynamic] [ -x <number> | --hex-dump=<number>] [ -w[liaprf] | --debug-dump[=info,=line,=abbrev,=pubnames,=ranges,=frames]] [ --histogram] [ -v | --version] [ -H | --help] elffile...
readelf
は,1つ以上のELF書式のオブジェクトファイルの情報を表示しま
す.オプションで表示する特定の情報を制御します.
elffile...は調査するオブジェクトファイルです.現在は,
readelf
は,アーカイブの調査のサポートも,64ビットELFファイルのサ
ポートもありません.
ここで交互に表示されている,オプションの長い形式と短い形式は等価です.
-v
または-H
の他に,少なくとも1つのオプションを与える必要が
あります.
-a
--all
--file-header
,--program-headers
,--sections
,
--symbols
,--relocs
,--dynamic
,--notes
,そ
して--version-info
を指定することと等価です.
-h
--file-header
-l
--program-headers
--segments
-S
--sections
--section-headers
-s
--symbols
--syms
-e
--headers
-h -l -S
と等価です.
-n
--notes
-r
--relocs
-d
--dynamic
-V
--version-info
-D
--use-dynamic
readelf
はこのオプションで,ファイルの
シンボルセクションではなく,動的セクションのシンボルテーブルを使用します.
-x <number>
--hex-dump=<number>
-w[liaprf]
--debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]
--histogram
-v
--version
readelf
のバージョンナンバーを表示します.
-H
--help
readelf
が理解するコマンドラインオプションを表示します.
ターゲットシステムの3つの側面を,GNUバイナリファイルユーティリティ に,それぞれ異なる方法で指定することが可能です.
以下の概要では,変数を指定する方法のリストは,優先順位が下がる順序となっ ています.方法は,最初のものがそれ以降のものに優先するようにリストアップ されています.
有効な値をリストアップするコマンドは,実行しているプログラムに設定されて
いる値のみリストアップします.それらが--enable-targets=all
で設定
されている場合,ほとんどの利用可能なコマンドはリストアップされますが,い
くつかはそうなりません.ターゲットにはnative (ターゲットシステムと
同じ形式のホスト) に設定することしかできないものもあるので,すべてのもの
が一度に設定できるわけではありません.
ターゲットはオブジェクトファイルの書式です.与えられたターゲットは, 複数のアーキテクチャでサポートされるかもしれません(see Architecture Selection).ターゲットの選択は,オペレーティングシステムやアーキテクチャ によっても,変化があるかもしれません.
有効なターゲットの値をリストアップするコマンドは,objdump -i
です
(出力の最初の列は,関連した情報を含みます).
サンプルの値は以下のとおりです.a.out-hp300bsd
,
ecoff-littlemips
,a.out-sunos-big
.
3項目の設定を使用してターゲットを指定することもできます.これは,ターゲッ
トを指定するためにconfigure
に渡す名前と同種です.3項目の設定を引
数として使用するとき,それを完全に標準のものにする必要があります.ソース
に含まれるシェルスクリプトconfig.sub
を実行することで,3項目の標準
的なバージョンを知ることが可能です.
サンプルの値は以下のとおりです.m68k-hp-bsd
,
mips-dec-ultrix
,sparc-sun-sunos
.
objdump
のターゲット指定方法:
-b
または--target
GNUTARGET
objcopy
とstrip
の入力ターゲット指定方法:
-I
または--input-target
,もしくは,
-F
または--target
GNUTARGET
objcopy
とstrip
の出力ターゲット指定方法:
-O
または--output-target
,もしく
は,-F
または--target
objcopy
とstrip
の入力ターゲット"を
参照してください)
GNUTARGET
nm
,size
,そしてstrings
のターゲット指定方法:
--target
GNUTARGET
指定方法:
-b
または--format
(see Options)
TARGET
(see Option Commands)
GNUTARGET
(see Environment)
指定方法:
-oformat
(see Options)
OUTPUT_FORMAT
(see Option Commands)
アーキテクチャは,オブジェクトファイルを実行するCPUの型式です. その名前は,コロンを含めることができ,それは特定のCPUとプロセッサファ ミリーの名前を分けます.
有効なアーキテクチャの値をリストアップするコマンドは,objdump -i
です(2番目のコロンは,関連する情報を含みます)
サンプルの値です.m68k:68020
,mips:3000
,sparc
.
objdump
アーキテクチャ指定方法:
-m
または--architecture
objcopy
,nm
,size
,strings
のアーキテクチャ指定方法:
指定方法:
指定方法:
OUTPUT_ARCH
(see Option Commands)
リンカエミュレーションは,リンカの"個性"で,それはターゲットシス テムのそれ以外の側面に対するリンカのデフォルト値を与えます.特に以下から 成り立ちます.
有効なリンカエミュレーションの値をリストアップするコマンドは,ld
-V
です.
サンプルの値は以下のとおりです.hp300bsd
,mipslit
,
sun4
.
指定方法:
-m
(see Options)
LDEMULATION
Makefile
でコンパイル時に組み込まれたDEFAULT_EMULATION
で,
それはconfig/target.mt
のEMUL
に由来する.
バグの報告は,バイナリユーティリティを確実にする上で重要な役割を果たしま す.
バグを報告することで,問題の解決をもたらすかもしれませんが,そうでないか もしれません.しかし,いずれにせよ,バグの報告の主な機能は,バイナリユー ティリティの次のバージョンの仕事をより良くすることで,全てのコミュニティ に役立つことです.バグの報告は,管理者に対する貢献になります.
バグの報告を目的に役立つようにするため,バグの修正が可能となるような情報 を含める必要があります.
バグを見つけたかどうか確実でない場合,ここに指針がいくつかあります.
多くの企業と個人が,GNU製品に対してサポートを提供しています.サポー ト組織からバイナリユーティリティを得ている場合,われわれは,その組織に最 初に連絡するように勧めます.
GNU Emacs配布物のファイルetc/SERVICE
で,サポートしている多く
の会社と個人へ連絡する情報を見つけることが可能です.
いずれにせよ,我々は,バイナリユーティリティに対するバグの報告を
bug-binutils@gnu.org
にも送ることを勧めます.
バグの報告の有効な基本原理は以下のとおりです.すべての事実を報告 する.事実を述べるべきか削除すべきかよく分からない場合,それを述べてく ださい!
人々はよく,問題を発生させるものを知っていて,重要でない詳細もあると思う ため,事実を省略します.このため,使用したファイル名は重要でないと考えた とします.さて,おそらくそうでしょうが,確実ではありません.おそらくバグ は,パス名がメモリに保存されている場所から取り出すために生じる,偶然のメ モリ参照です.おそらく,パス名が異なっている場合,その場所の内容は,バグ にもかかわらず正しいことを行うユーティリティを馬鹿にするでしょう.安全に 動作するようにし,特定の完全な例を与えてください.それは,最も簡単に行う ことができ,最も役に立ちます.
バグの報告の目的が,新しいものの場合は,バグの修正を可能にすることだとい うことを覚えておいてください.そのため,以前にバグが報告されていないこと を常に前提にして,バグの報告を書いてください.
ときどき,概略だけのわずかな事実を与え,"これはベルを鳴しますか? (Does this ring a bell?)と尋ねる人がいます.これらのバグの報告は役に立たず,正 しくバグの報告をするよう送付者に小言を言うために,それに対する返答 を廃棄するようにということを,我々は全員に勧めます.
バグの修正を可能とするため,これらすべてのものを含めるべきです.
--version
引数
で解した場合,それを報告します.
これがなければ,我々はバイナリユーティリティの現在のバージョンにバグを探 す場所があるかどうか分かりません.
BFD
ライブラリを作るために与えたパッチを含む,ソースに適用したあら
ゆるパッチ.
gcc-2.7
".
我々が引数を推測しようとした場合,おそらく間違ったものを推測し,バグに遭 遇しない可能性があります.
bug-binutils@gnu.org
はメーリングリス
トなので,非常に大きなファイルをそこに送ることは避けるよう注意してくださ
い.ファイルをanonymous FTPで利用可能にするとOKです.
ソースファイルがGNUプログラム(例えば,gcc
,gas
,そし
て/または,GNU ld
)を使用して生成されたことが明らかな場合,オ
ブジェクトファイルよりソースファイルを送ることでOKです.この場合,
gcc
や,それらオブジェクトファイルを生成するために使用したあらゆる
もののバージョンを正確に確実に伝えてください.gcc
や,それらあらゆ
るもののコンフィグレーションの方法も伝えてください.
もちろん,バグはユーティリティが致命的なシグナルを得た場合,我々はきっと そこに注目します.しかし,バグが不適切な出力の場合,我々は,明らかに間違っ ていない限り注目しないかもしれません.我々が間違う機会を与えない方がよい でしょう.
遭遇した問題が致命的なシグナルの場合でさえ,それを明確に伝えるべきです. ユーティリティのコピーが同期化されていない,または,システムのCライブラ リのバグに遭遇したといった,おそらく何か変なことが生じています.(それは 発生したのです!) コピーは壊れていて,我々のはそうでないかもしれません. 壊れることを期待していると我々に告げ,我々が壊すことに失敗した場合,我々 にバグは発生しないことを知るでしょう.壊れることを期待していると我々に告 げない場合,我々は自分達の観測から全く結論が得られないでしょう.
-u
,-c
,または-p
オプ
ションを用いたdiff
で生成したような,コンテクストのdiffを我々に送っ
てください.古いファイルから新しいファイルへのdiffを,常に送ってください.
ld
のソースについて何か議論したい場合,行番号ではなくコンテクスト
で参照してください.
我々の開発ソース内の行番号は,あなた方のソースと一致しないでしょう.行番 号は我々に全く情報をもたらしません.
ここに不要なものがあります.
バグに遭遇した人は,バグを無くす入力ファイルへの変更と,効果がない変更を 調査するのに多くの時間を費やすことが多いです.
我々がバグを見つける方法は,単純な例をブレークポイントを用いたデバッガで 実行することで,それは一連の例から推測することではないので,これは役に立 たないことが多いです.我々は,他のことをすることを勧めます.
もちろん,報告するためのオリジナルの例ではなく,それより簡単な例 が見つかった場合,それはとても役立ちます.出力ファイルのエラーは,見つけ るのがより簡単,デバッガの実行に余り時間がかからない,等々です.
しかし,簡略化は重要ではありません.こうしたくない場合,いい加減にバグを 報告し,使用したテストケースを全て我々に送ってください.
バグに対するパッチは,それが良いものであれば我々は助かります.しかし,テ ストケースのような,我々全員がパッチを必要だと推測するのに必要な情報を省 略しないでください.我々は,パッチに関する問題が分かり,別の方法で問題を 修正することに決めるかもしれませんし,全く理解できないかも知れません.
バイナリユーティリティと同じくらい複雑なプログラムを用いた場合,コードを 通じて,プログラムに特定の手順をたどらせる例を構成することは,とても難し いことです.例を我々に送らない場合,我々はそれを構成することができないの で,我々はバグが修正されたかどうか検証することができません.
そして,あなたが修正しようとしたバグや,パッチの改良点を我々が理解できな い場合や,我々はそれをインストールしないでしょう.テストケースは我々の理 解を助けます.
そのような推測は,通常正しくありません.事実を見つけるために最初にデバッ ガを使用しなければ,我々でも正しく推測できません.
GNU Free Documentation License
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
0. PREAMBLE
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
1. APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
2. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has less than five). C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties-for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
6. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
7. AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
8. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
9. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
10. FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".
If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.
addr2line
: addr2line
ar
: ar
ar
compatibility: ar
c++filt
: c++filt
ar
: ar
cxxfilt
: c++filt
dlltool
: dlltool
ar
: ar scripts
nm
: nm
nm
compatibility: nm
nm
format: nm
objdump
: objdump
ranlib
: ranlib
readelf
: readelf
ar
: ar scripts
size
: size
size
display format: size
size
number format: size
strings
: strings
strip
: strip
ar
: ar cmdline