doc/ja/man/man1/objcopy.1
Jun Kuriyama 0e8d399496 Catching up to 3.0-RELEASE of manpages of GNU binutils.
Reviewed by:	Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1999-01-12 14:25:48 +00:00

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 用に翻訳