Reviewed by: Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG> Submitted by: Kazuo Horikawa <k-horik@yk.rim.or.jp>
320 lines
12 KiB
Groff
320 lines
12 KiB
Groff
.\" Copyright (c) 1991, 93, 94, 95, 96, 1997 Free Software Foundation
|
|
.\" See section COPYING for conditions for redistribution
|
|
.\" jpman %Id: objcopy.1,v 1.3 1998/12/19 20:10:11 vanitas Stab %
|
|
.TH objcopy 1 "October 1994" "cygnus support" "GNU Development Tools"
|
|
.de BP
|
|
.sp
|
|
.ti \-.2i
|
|
\(**
|
|
..
|
|
|
|
.SH 名称
|
|
objcopy \- オブジェクトファイルのコピーと変換
|
|
|
|
.SH 書式
|
|
.hy 0
|
|
.na
|
|
.TP
|
|
.B objcopy
|
|
.RB "[\|" \-F\ \fIbfdname\fR\ |\ \fB\-\-target=\fIbfdname\fR "\|]"
|
|
.RB "[\|" \-I\ \fIbfdname\fR\ |\ \fB\-\-input\-target=\fIbfdname\fR "\|]"
|
|
.RB "[\|" \-O\ \fIbfdname\fR\ |\ \fB\-\-output\-target=\fIbfdname\fR "\|]"
|
|
.RB "[\|" \-R\ \fIsectionname\fR\ |\ \fB\-\-remove\-section=\fIsectionname\fR "\|]"
|
|
.RB "[\|" \-S\fR\ |\ \fB\-\-strip\-all\fR "\|]"
|
|
.RB "[\|" \-g\fR\ |\ \fB\-\-strip\-debug\fR "\|]"
|
|
.RB "[\|" \-\-strip\-unneeded\fR "\|]"
|
|
.RB "[\|" \-K\ \fIsymbolname\fR\ |\ \fB\-\-keep\-symbol=\fIsymbolname\fR "\|]"
|
|
.RB "[\|" \-N\ \fIsymbolname\fR\ |\ \fB\-\-strip\-symbol=\fIsymbolname\fR "\|]"
|
|
.RB "[\|" \-L\ \fIsymbolname\fR\ |\ \fB\-\-localize\-symbol=\fIsymbolname\fR "\|]"
|
|
.RB "[\|" \-W\ \fIsymbolname\fR\ |\ \fB\-\-weaken\-symbol=\fIsymbolname\fR "\|]"
|
|
.RB "[\|" \-x\fR\ |\ \fB\-\-discard\-all\fR "\|]"
|
|
.RB "[\|" \-X\fR\ |\ \fB\-\-discard\-locals\fR "\|]"
|
|
.RB "[\|" \-b\ \fIbyte\fR\ |\ \fB\-\-byte=\fIbyte\fR "\|]"
|
|
.RB "[\|" \-i\ \fIinterleave\fR\ |\ \fB\-\-interleave=\fIinterleave\fR "\|]"
|
|
.RB "[\|" \-p\fR\ |\ \fB\-\-preserve\-dates\fR "\|]"
|
|
.RB "[\|" \-\-debugging "\|]"
|
|
.RB "[\|" \-\-gap\-fill=\fIval\fR "\|]"
|
|
.RB "[\|" \-\-pad\-to=\fIaddress\fR "\|]"
|
|
.RB "[\|" \-\-set\-start=\fIval\fR "\|]"
|
|
.RB "[\|" \-\-adjust\-start=\fIincr\fR "\|]"
|
|
.RB "[\|" \-\-adjust\-vma=\fIincr\fR "\|]"
|
|
.RB "[\|" \-\-adjust\-section\-vma=\fIsection{=,+,-}val\fR "\|]"
|
|
.RB "[\|" \-\-adjust\-warnings\fR "\|]"
|
|
.RB "[\|" \-\-no\-adjust\-warnings\fR "\|]"
|
|
.RB "[\|" \-\-set\-section\-flags=\fIsection=flags\fR "\|]"
|
|
.RB "[\|" \-\-add\-section=\fIsectionname=filename\fR "\|]"
|
|
.RB "[\|" \-\-change\-leading\-char\fR "\|]"
|
|
.RB "[\|" \-\-remove\-leading\-char\fR "\|]"
|
|
.RB "[\|" \-\-weaken\fR "\|]"
|
|
.RB "[\|" \-v\ |\ \-\-verbose\fR "\|]"
|
|
.RB "[\|" \-V\ |\ \-\-version\fR "\|]"
|
|
.RB "[\|" \-\-help\fR "\|]"
|
|
.B infile
|
|
.RB "[\|" outfile\fR "\|]"
|
|
.SH 解説
|
|
GNU
|
|
.B objcopy
|
|
ユーティリティはあるオブジェクトファイルの内容を他へコピーします。
|
|
.B objcopy
|
|
はオブジェクトファイルの読み書きに GNU BFD ライブラリを使います。
|
|
元のオブジェクトファイルと異なるフォーマットでコピー先の
|
|
オブジェクトファイルに書き込む事が可能です。
|
|
.B objcopy
|
|
の厳密な挙動はコマンドラインの引数で制御します。
|
|
.PP
|
|
.B objcopy
|
|
は変換のために一時ファイルを作成して後でそれらを削除します。
|
|
.B objcopy
|
|
はすべての変換作業で BFD を使います; つまり BFD が知っている
|
|
フォーマットはすべて知っている事になるので、明示的に指定しなくても
|
|
大部分のフォーマットを認識する事が出来ます。
|
|
.PP
|
|
.B objcopy
|
|
で出力先に
|
|
.B srec
|
|
を指定する
|
|
(例えば
|
|
.B -O srec
|
|
を使う) ことで Sレコードを生成できます。
|
|
.PP
|
|
.B objcopy
|
|
で出力先に
|
|
.B binary
|
|
を指定する
|
|
(例えば
|
|
.B -O binary
|
|
を使う) ことで生のバイナリファイルを生成できます。
|
|
.B objcopy
|
|
で生のバイナリファイルを生成することは、本質的には入力の
|
|
オブジェクトファイルの内容のメモリダンプを生成することに
|
|
なるでしょう。シンボルと
|
|
再配置情報はすべて捨て去られます。メモリダンプは出力ファイルに
|
|
コピーされる中で最も低位のセクションの仮想アドレスから始まります。
|
|
.PP
|
|
Sレコードや生のバイナリファイルを生成する場合は、
|
|
.B -S
|
|
を使ってデバッグ情報を含むセクションを削除するのが良いかもしれません。
|
|
場合によっては
|
|
.B -R
|
|
が、バイナリファイルに必要無い情報を含むセクションを削除するのに有用でしょう。
|
|
.PP
|
|
.I infile
|
|
と
|
|
.I outfile
|
|
は それぞれ入力と出力ファイルです。
|
|
.IR outfile
|
|
を指定しないと、
|
|
.B objcopy
|
|
は一時ファイルを作成してから そのファイル名を入力ファイル名に付けかえて
|
|
しまいます。
|
|
|
|
.SH オプション
|
|
.TP
|
|
.B \-I \fIbfdname\fR, \fB\-\-input\-target=\fIbfdname
|
|
入力ファイルのオブジェクト形式を推測しようとするかわりに
|
|
.IR bfdname
|
|
であるとして扱います。
|
|
.TP
|
|
.B \-O \fIbfdname\fR, \fB\-\-output\-target=\fIbfdname
|
|
オブジェクト形式として
|
|
.IR bfdname
|
|
を使って出力ファイルに書き込みます。
|
|
.TP
|
|
.B \-F \fIbfdname\fR, \fB\-\-target=\fIbfdname
|
|
入出力両方のオブジェクト形式が
|
|
.I bfdname
|
|
であるとします; つまり、入力から出力へ無変換でデータを
|
|
単純に転送するということです。
|
|
.TP
|
|
.B \-R \fIsectionname\fR, \fB\-\-remove-section=\fIsectionname
|
|
指定されたセクションをファイルから取り除きます。このオプションは
|
|
2回以上指定できます。このオプションを不適切に使うと出力ファイルが
|
|
利用できない物になるので注意して下さい。
|
|
.TP
|
|
.B \-S\fR, \fB\-\-strip\-all
|
|
再配置とシンボルの情報を入力ファイルからコピーしません。
|
|
.TP
|
|
.B \-g\fR, \fB\-\-strip\-debug
|
|
デバッグシンボルを入力ファイルからコピーしません。
|
|
.TP
|
|
.B \-\-strip\-unneeded
|
|
再配置処理に不要なシンボルをすべて取り除きます。
|
|
.TP
|
|
.B \-K \fIsymbolname\fR, \fB\-\-keep\-symbol=\fIsymbolname
|
|
入力ファイルからシンボル \fIsymbolname\fP だけをコピーします。
|
|
このオプションは 2回以上指定できます。
|
|
.TP
|
|
.B \-N \fIsymbolname\fR, \fB\-\-strip\-symbol=\fIsymbolname
|
|
入力ファイルからシンボル \fIsymbolname\fP をコピーしません。
|
|
このオプションは 2回以上指定できます。
|
|
.TP
|
|
.B \-L \fIsymbolname\fR, \fB\-\-localize\-symbol=\fIsymbolname
|
|
シンボル \fIsymbolname\fP を、外部から参照できないようにファイル内
|
|
ローカルにします。このオプションは 2回以上指定できます。
|
|
.TP
|
|
.B \-W \fIsymbolname\fR, \fB\-\-weaken\-symbol=\fIsymbolname
|
|
シンボル \fIsymbolname\fP を weak にします。
|
|
このオプションは 2回以上指定できます。
|
|
.TP
|
|
.B \-x\fR, \fB \-\-discard\-all
|
|
入力ファイルからグローバルでないシンボルをコピーしません。
|
|
.TP
|
|
.B \-X\fR, \fB\-\-discard\-locals
|
|
コンパイラが生成したローカルシンボルをコピーしません。
|
|
(それらは通常 "L" か "." で始まります。)
|
|
.TP
|
|
.B \-b \fIbyte\fR, \fB\-\-byte=\fIbyte
|
|
入力ファイルの各 \fIbyte\fP番めのバイトのみを取り出します
|
|
(ヘッダデータには影響しません)。\fIbyte\fP には
|
|
0 から interleave-1 の範囲の値を指定できます。
|
|
このオプションは ROM に書き込むためのファイルを作成するために有用です。
|
|
典型的には srec の出力指定と共に使います。
|
|
.TP
|
|
.B \-i \fIinterleave\fR, \fB\-\-interleave=\fIinterleave
|
|
各 \fIinterleave\fPバイト毎に 1バイトだけをコピーします。
|
|
どれをコピーするかは \fB\-b\fP か \fB\-\-byte\fP オプションで
|
|
選びます。デフォルトは 4です。
|
|
interleave は \fB\-b\fP か \fB\-\-byte\fP のどちらも指定されていない
|
|
場合は無視されます。
|
|
.TP
|
|
.B \-p\fR, \fB\-\-preserve\-dates
|
|
出力ファイルのアクセス時刻と更新時刻を入力ファイルに合わせます。
|
|
.TP
|
|
.B \-\-debugging
|
|
可能であればデバッグ情報を変換します。
|
|
特定のデバッグ情報しかサポートしておらず、変換処理は時間を
|
|
要する可能性があるので、これはデフォルトではありません。
|
|
.TP
|
|
.B \-\-gap\-fill=\fIval
|
|
セクション間のすきまを \fIval\fP で埋めます。
|
|
この操作はセクションの \fIload address\fP (LMA) に適用されます。
|
|
低位アドレスのセクションのサイズを増やし、できた余分の空間を \fIval\fP で
|
|
埋める事で実現しています。
|
|
.TP
|
|
.B \-\-pad\-to=\fIaddress
|
|
ロードアドレス \fIaddress\fP まで出力ファイルに詰め物をします。
|
|
これは最後のセクションのサイズを増やす事で行われます。
|
|
できた余分の空間は \fB\-\-gap\-fill\fP で
|
|
指定された値 (デフォルトは 0) で埋められます。
|
|
.TP
|
|
.B \fB\-\-set\-start=\fIval
|
|
新しいファイルの開始アドレスを \fIval\fP に設定します。
|
|
すべてのオブジェクトファイル形式が開始アドレスの設定をサポートしている
|
|
わけではありません。
|
|
.TP
|
|
.B \fB\-\-adjust\-start=\fIincr
|
|
開始アドレスを、\fIincr\fP を加算する事で調整します。
|
|
すべてのオブジェクトファイル形式が開始アドレスの設定をサポートしている
|
|
わけではありません。
|
|
.TP
|
|
.B \fB\-\-adjust\-vma=\fIincr
|
|
開始アドレスおよびすべてのセクションのアドレスを、\fIincr\fP を
|
|
加算する事で調整します。いくつかのオブジェクトファイル形式では
|
|
セクションのアドレスを任意の値に変更する事は許されていません。
|
|
これはセクションを再配置するのではない事に注意して下さい;
|
|
もしプログラムがセクションが特定のアドレスにロードされる事を
|
|
期待しており、そしてこのオプションがセクションを異なるアドレスに
|
|
ロードするように使われた場合は、プログラムは正常に
|
|
動作しないかもしれません。
|
|
.TP
|
|
.B \fB\-\-adjust\-section\-vma=\fIsection{=,+,-}val
|
|
指定された \fIsection\fP のアドレスを設定または調整します。\fI=\fP が
|
|
指定された場合は、セクションのアドレスは \fIval\fP に設定されます。
|
|
そうでなければ \fIval\fP がセクションのアドレスに加算または減算されます。
|
|
上の \fB\-\-adjust\-vma\fP に書かれているコメントも参照して下さい。
|
|
入力ファイルに \fIsection\fP が存在しない場合は、
|
|
\fB\-\-no\-adjust\-warnings\fP が指定されていなければ警告が出力されます。
|
|
.TP
|
|
.B \fB\-\-adjust\-warnings
|
|
\fB\-\-adjust\-section\-vma\fP が指定され、
|
|
指定されたセクションが存在しないと警告が出力されます。
|
|
これはデフォルトです。
|
|
.TP
|
|
.B \fB\-\-no\-adjust\-warnings
|
|
\fB\-\-adjust\-section\-vma\fP が指定されて、指定された
|
|
セクションが存在しなくても警告を出力しません。
|
|
.TP
|
|
.B \fB\-\-set\-section\-flags=\fIsection=flags
|
|
指定されたセクションのフラグを設定します。引数 \fIflags\fP は
|
|
フラグ名をコンマで区切った文字列です。認識するフラグ名は
|
|
\fIalloc\fP, \fIload\fP, \fIreadonly\fP, \fIcode\fP, \fIdata\fP,
|
|
\fIrom\fP です。すべてのフラグがすべてのオブジェクトファイル形式で
|
|
意味を持つとは限りません。
|
|
.TP
|
|
.B \fB\-\-add\-section=\fIsectionname=filename
|
|
\fIsectionname\fR で指定された名前の新しいセクションをファイルの
|
|
コピー中に付け加えます。新しいセクションの内容はファイル
|
|
\fIfilename\fR から取り込まれます。セクションのサイズはファイルの
|
|
サイズになります。このオプションは任意の名前を持つセクションを
|
|
サポートできるファイル形式でのみ機能します。
|
|
.TP
|
|
.B \-\-change\-leading\-char
|
|
いくつかのオブジェクトファイル形式でシンボルの最初に特殊文字が
|
|
使われています。もっとも一般的なのはアンダスコアで、しばしば
|
|
コンパイラが各シンボルの前に付け加えます。
|
|
このオプションは
|
|
.B objcopy
|
|
に、オブジェクトファイル形式を変換する時に各シンボルの始まりの
|
|
文字を変更するよう指示します。
|
|
変換前後のオブジェクトファイル形式がシンボルの始まりに同じ文字を
|
|
使っている場合は、このオプションは何もしません。そうでなければ、
|
|
このオプションで文字を付け加える、または文字を削除する、または
|
|
文字を変更する事が、適切に行われます。
|
|
.TP
|
|
.B \-\-remove\-leading\-char
|
|
グローバルシンボルの最初の文字が、オブジェクトファイル形式で使われる
|
|
シンボルの最初に付加される特殊文字だった場合は、その文字を取り除きます。
|
|
シンボルに前置される最も一般的な文字はアンダスコアです。
|
|
このオプションは前置されているアンダスコアをすべての
|
|
グローバルシンボルから取り除きます。これはシンボル名の取り決めが
|
|
異なるファイル形式のファイルを一緒にリンクしたい場合に有用です。
|
|
これは \fB\-\-change\-leading\-char\fP とは異なります。
|
|
なぜならこのオプションでは適切であれば、
|
|
出力のオブジェクトファイル形式とは関係なく
|
|
常にシンボル名を変更してしまうからです。
|
|
.TP
|
|
.B \-\-weaken
|
|
ファイルのすべてのグローバルシンボルを weak に変更します。
|
|
.TP
|
|
.B \-v\fR, \fB\-\-verbose
|
|
出力を冗長にします: 変更されたすべてのオブジェクトファイルをリストします。
|
|
アーカイブの場合は "\fBobjcopy \-V\fR" でアーカイブのメンバがすべて
|
|
リストされます。
|
|
.TP
|
|
.B \-V\fR, \fB\-\-version
|
|
.B objcopy
|
|
のバージョン番号を表示して終了します。
|
|
.TP
|
|
.B \-\-help
|
|
.B objcopy
|
|
のオプションのサマリを表示して終了します。
|
|
.SH "関連項目"
|
|
.B
|
|
info\c
|
|
\& の
|
|
.RB "`\|" binutils "\|'"
|
|
の項;
|
|
.I
|
|
The GNU Binary Utilities\c
|
|
\&, Roland H. Pesch (June 1993)
|
|
|
|
.SH COPYING
|
|
Copyright (c) 1993, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
|
.PP
|
|
Permission is granted to make and distribute verbatim copies of
|
|
this manual provided the copyright notice and this permission notice
|
|
are preserved on all copies.
|
|
.PP
|
|
Permission is granted to copy and distribute modified versions of this
|
|
manual under the conditions for verbatim copying, provided that the
|
|
entire resulting derived work is distributed under the terms of a
|
|
permission notice identical to this one.
|
|
.PP
|
|
Permission is granted to copy and distribute translations of this
|
|
manual into another language, under the above conditions for modified
|
|
versions, except that this permission notice may be included in
|
|
translations approved by the Free Software Foundation instead of in
|
|
the original English.
|
|
|
|
.SH 日本語訳
|
|
野首 寛高(hnokubi@yyy.or.jp): FreeBSD 用に翻訳
|