.\" $FreeBSD$ .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OBJCOPY 1" .TH OBJCOPY 1 "2004-04-09" "binutils-2.14.91" "GNU Development Tools" .SH 名称 objcopy \- オブジェクトファイルのコピーと変換 .SH 書式 .IX Header "SYNOPSIS" objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR] [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR] [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR] [\fB\-S\fR|\fB\-\-strip\-all\fR] [\fB\-g\fR|\fB\-\-strip\-debug\fR] [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR] [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR] [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR] [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR] [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR] [\fB\-w\fR|\fB\-\-wildcard\fR] [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR|\fB\-\-discard\-locals\fR] [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR] [\fB\-i\fR \fIinterleave\fR|\fB\-\-interleave=\fR\fIinterleave\fR] [\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR] [\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR] [\fB\-\-debugging\fR] [\fB\-\-gap\-fill=\fR\fIval\fR] [\fB\-\-pad\-to=\fR\fIaddress\fR] [\fB\-\-set\-start=\fR\fIval\fR] [\fB\-\-adjust\-start=\fR\fIincr\fR] [\fB\-\-change\-addresses=\fR\fIincr\fR] [\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR] [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR] [\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR] [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR] [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]] [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR] [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR] [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR] [\fB\-\-redefine\-syms=\fR\fIfilename\fR] [\fB\-\-weaken\fR] [\fB\-\-keep\-symbols=\fR\fIfilename\fR] [\fB\-\-strip\-symbols=\fR\fIfilename\fR] [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR] [\fB\-\-localize\-symbols=\fR\fIfilename\fR] [\fB\-\-weaken\-symbols=\fR\fIfilename\fR] [\fB\-\-alt\-machine\-code=\fR\fIindex\fR] [\fB\-\-prefix\-symbols=\fR\fIstring\fR] [\fB\-\-prefix\-sections=\fR\fIstring\fR] [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR] [\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR] [\fB\-\-only\-keep\-debug\fR] [\fB\-\-writable\-text\fR] [\fB\-\-readonly\-text\fR] [\fB\-\-pure\fR] [\fB\-\-impure\fR] [\fB\-v\fR|\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fB\-\-help\fR] [\fB\-\-info\fR] \fIinfile\fR [\fIoutfile\fR] .SH 解説 .IX Header "DESCRIPTION" \s-1GNU\s0 \fBobjcopy\fR ユーティリティはあるオブジェクトファイルの内容を他へコピーします。 \fBobjcopy\fR はオブジェクトファイルの読み書きに \s-1GNU\s0 \s-1BFD\s0 ライブラリを使います。 元のオブジェクトファイルと異なるフォーマットでコピー先の オブジェクトファイルに書き込む事が可能です。 \fBobjcopy\fR の厳密な挙動はコマンドラインの引数で制御します。 \fBobjcopy\fR は、完全にリンクされたファイルなら、 任意の 2 形式間でコピー可能であるはずですが、 再配置可能オジェクトファイルの任意の 2 形式間でのコピーは、 期待通りに動作しないかもしれません。 .PP \fBobjcopy\fR は変換のために一時ファイルを作成して後でそれらを削除します。 \fBobjcopy\fR はすべての変換作業で \s-1BFD\s0 を使います; つまり \s-1BFD\s0 が知っている フォーマットはすべて知っている事になるので、明示的に指定しなくても 大部分のフォーマットを認識する事が出来ます。 .PP \fBobjcopy\fR で出力先に \fBsrec\fR を指定する (例えば \fB\-O srec\fR を使う) ことで S レコードを生成できます。 .PP \fBobjcopy\fR で出力先に \fBbinary\fR を指定する (例えば \fB\-O binary\fR を使う) ことで生のバイナリファイルを生成できます。 \fBobjcopy\fR で生のバイナリファイルを生成することは、本質的には入力の オブジェクトファイルの内容のメモリダンプを生成することに なるでしょう。 シンボルと再配置情報はすべて捨て去られます。 メモリダンプは出力ファイルに コピーされる中で最も低位のセクションの仮想アドレスから始まります。 .PP S レコードや生のバイナリファイルを生成する場合は、 \fB\-S\fR を使ってデバッグ情報を含むセクションを削除するのが良いかもしれません。 場合によっては \fB\-R\fR が、バイナリファイルに必要無い情報を含むセクションを削除するのに有用でしょう。 .PP 注 \- \fBobjcopy\fR は入力ファイルのエンディアンを変えられません。 入力ファイルにエンディアン性がある場合 (フォーマットによっては エンディアン性がないものがあります)、 同じエンディアン性のファイルフォーマットか エンディアン性の無いファイル書式 (例: \fBsrec\fR) へのみ、 \fBobjcopy\fR はコピー可能となります。 .SH オプション .IX Header "OPTIONS" .IP "\fIinfile\fR" 4 .IX Item "infile" .PD 0 .IP "\fIoutfile\fR" 4 .IX Item "outfile" .PD それぞれ入力と出力ファイルです。 \fIoutfile\fR を指定しないと、 \fBobjcopy\fR は一時ファイルを作成してから そのファイル名を \fIinfile\fR に付けかえて しまいます。 .IP "\fB\-I\fR \fIbfdname\fR" 4 .IX Item "-I bfdname" .PD 0 .IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4 .IX Item "--input-target=bfdname" .PD 入力ファイルのオブジェクト形式を推測しようとするかわりに \fIbfdname\fR であるとして扱います。 .IP "\fB\-O\fR \fIbfdname\fR" 4 .IX Item "-O bfdname" .PD 0 .IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4 .IX Item "--output-target=bfdname" .PD オブジェクト形式として \fIbfdname\fR を使って出力ファイルに書き込みます。 .IP "\fB\-F\fR \fIbfdname\fR" 4 .IX Item "-F bfdname" .PD 0 .IP "\fB\-\-target=\fR\fIbfdname\fR" 4 .IX Item "--target=bfdname" .PD 入出力両方のオブジェクト形式が \fIbfdname\fR であるとします; つまり、入力から出力へ無変換でデータを 単純に転送するということです。 .IP "\fB\-B\fR \fIbfdarch\fR" 4 .IX Item "-B bfdarch" .PD 0 .IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4 .IX Item "--binary-architecture=bfdarch" .PD 生のバイナリ入力ファイルをオブジェクトファイルへ変換する場合に有用です。 この場合、出力アーキテクチャを \fIbfdarch\fR に設定可能です。 入力ファイルが既知の \fIbfdarch\fR を持つ場合、このオプションは無視されます。 このバイナリデータは、変換処理によって作成された特殊シンボルを介し、 プログラムからアクセス可能となります。 これらのシンボルは、 _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end, _binary_\fIobjfile\fR_size という名前です。 例えば、画像ファイルをオブジェクトファイルに変換し、 コードからこれらのシンボルを使用することでアクセス可能となります。 .IP "\fB\-j\fR \fIsectionname\fR" 4 .IX Item "-j sectionname" .PD 0 .IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4 .IX Item "--only-section=sectionname" .PD 指定したセクションのみ入力ファイルから出力ファイルへコピーし、 他のすべてのセクションを捨てます。 このオプションは 2 回以上指定できます。 このオプションを不適切に使うと出力ファイルが 利用できない物になるので注意して下さい。 .IP "\fB\-R\fR \fIsectionname\fR" 4 .IX Item "-R sectionname" .PD 0 .IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4 .IX Item "--remove-section=sectionname" .PD \fIsectionname\fR で 指定されたセクションをファイルから取り除きます。 このオプションは 2 回以上指定できます。 このオプションを不適切に使うと出力ファイルが 利用できない物になるので注意して下さい。 .IP "\fB\-S\fR" 4 .IX Item "-S" .PD 0 .IP "\fB\-\-strip\-all\fR" 4 .IX Item "--strip-all" .PD 再配置とシンボルの情報を入力ファイルからコピーしません。 .IP "\fB\-g\fR" 4 .IX Item "-g" .PD 0 .IP "\fB\-\-strip\-debug\fR" 4 .IX Item "--strip-debug" .PD デバッグシンボル、デバッグセクションを入力ファイルからコピーしません。 .IP "\fB\-\-strip\-unneeded\fR" 4 .IX Item "--strip-unneeded" 再配置処理に不要なシンボルをすべて取り除きます。 .IP "\fB\-K\fR \fIsymbolname\fR" 4 .IX Item "-K symbolname" .PD 0 .IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4 .IX Item "--keep-symbol=symbolname" .PD 入力ファイルからシンボル \fIsymbolname\fR だけをコピーします。 このオプションは 2 回以上指定できます。 .IP "\fB\-N\fR \fIsymbolname\fR" 4 .IX Item "-N symbolname" .PD 0 .IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4 .IX Item "--strip-symbol=symbolname" .PD 入力ファイルからシンボル \fIsymbolname\fR をコピーしません。 このオプションは 2 回以上指定できます。 .IP "\fB\-G\fR \fIsymbolname\fR" 4 .IX Item "-G symbolname" .PD 0 .IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4 .IX Item "--keep-global-symbol=symbolname" .PD シンボル \fIsymbolname\fR のみをグローバルにします。 他のシンボルはすべて、外部から参照できないようにファイル内ローカルにします。 このオプションは 2 回以上指定できます。 .IP "\fB\-L\fR \fIsymbolname\fR" 4 .IX Item "-L symbolname" .PD 0 .IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4 .IX Item "--localize-symbol=symbolname" .PD シンボル \fIsymbolname\fR を、外部から参照できないようにファイル内 ローカルにします。このオプションは 2 回以上指定できます。 .IP "\fB\-W\fR \fIsymbolname\fR" 4 .IX Item "-W symbolname" .PD 0 .IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4 .IX Item "--weaken-symbol=symbolname" .PD シンボル \fIsymbolname\fR を weak にします。 このオプションは 2 回以上指定できます。 .IP "\fB\-w\fR" 4 .IX Item "-w" .PD 0 .IP "\fB\-\-wildcard\fR" 4 .IX Item "--wildcard" .PD 他のコマンド行オプションの中で使用される \fIsymbolname\fR で、 正規表現の使用を許可します。 疑問符 (?)、アスタリスク (*)、バックスラッシュ (\e)、角括弧 ([]) 演算子をシンボル名の中のどこででも使用可能にします。 シンボル名の最初の文字が感嘆符 (!) である場合、そのスイッチの意味が そのシンボルに対しては逆になります。 例えば、 .Sp .Vb 1 \& -w -W !foo -W fo* .Ve .Sp により、objcopy は ``foo'' を除き、``fo'' で始まるすべてのシンボルを weak にします。 .IP "\fB\-x\fR" 4 .IX Item "-x" .PD 0 .IP "\fB\-\-discard\-all\fR" 4 .IX Item "--discard-all" .PD 入力ファイルからグローバルでないシンボルをコピーしません。 .IP "\fB\-X\fR" 4 .IX Item "-X" .PD 0 .IP "\fB\-\-discard\-locals\fR" 4 .IX Item "--discard-locals" .PD コンパイラが生成したローカルシンボルをコピーしません (それらは通常 \fBL\fR か \fB.\fR で始まります)。 .IP "\fB\-b\fR \fIbyte\fR" 4 .IX Item "-b byte" .PD 0 .IP "\fB\-\-byte=\fR\fIbyte\fR" 4 .IX Item "--byte=byte" .PD 入力ファイルの各 \fIbyte\fR 番めのバイトのみを取り出します (ヘッダデータには影響しません)。 \fIbyte\fR には 0 から \fIinterleave\fR-1 の範囲の値を指定できます。 \fIinterleave\fR は、\fB\-i\fR または \fB\-\-interleave\fR のオプションで 指定するか、デフォルトの 4 です。 このオプションは \s-1ROM\s0 に書き込むためのファイルを作成するために有用です。 典型的には \f(CW\*(C`srec\*(C'\fR の出力指定と共に使います。 .IP "\fB\-i\fR \fIinterleave\fR" 4 .IX Item "-i interleave" .PD 0 .IP "\fB\-\-interleave=\fR\fIinterleave\fR" 4 .IX Item "--interleave=interleave" .PD 各 \fIinterleave\fR バイトごとに 1 バイトだけをコピーします。 どれをコピーするかは \fB\-b\fR か \fB\-\-byte\fR オプションで 選びます。デフォルトは 4です。 \fB\-b\fR か \fB\-\-byte\fR のどちらも指定されていない場合、 \fBobjcopy\fR は本オプションを無視します。 .IP "\fB\-p\fR" 4 .IX Item "-p" .PD 0 .IP "\fB\-\-preserve\-dates\fR" 4 .IX Item "--preserve-dates" .PD 出力ファイルのアクセス時刻と更新時刻を入力ファイルに合わせます。 .IP "\fB\-\-debugging\fR" 4 .IX Item "--debugging" 可能であればデバッグ情報を変換します。 特定のデバッグ情報しかサポートしておらず、変換処理は時間を 要する可能性があるので、これはデフォルトではありません。 .IP "\fB\-\-gap\-fill\fR \fIval\fR" 4 .IX Item "--gap-fill val" セクション間のすきまを \fIval\fR で埋めます。 この操作はセクションの \fIload address\fR (\s-1LMA\s0) に適用されます。 低位アドレスのセクションのサイズを増やし、できた余分の空間を \fIval\fR で 埋める事で実現しています。 .IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4 .IX Item "--pad-to address" ロードアドレス \fIaddress\fR まで出力ファイルに詰め物をします。 これは最後のセクションのサイズを増やす事で行われます。 できた余分の空間は \fB\-\-gap\-fill\fR で 指定された値 (デフォルトは 0) で埋められます。 .IP "\fB\-\-set\-start\fR \fIval\fR" 4 .IX Item "--set-start val" 新しいファイルの開始アドレスを \fIval\fR に設定します。 すべてのオブジェクトファイル形式が開始アドレスの設定をサポートしている わけではありません。 .IP "\fB\-\-change\-start\fR \fIincr\fR" 4 .IX Item "--change-start incr" .PD 0 .IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4 .IX Item "--adjust-start incr" .PD 開始アドレスを、\fIincr\fR を加算する事で変更します。 すべてのオブジェクトファイル形式が開始アドレスの設定をサポートしている わけではありません。 .IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4 .IX Item "--change-addresses incr" .PD 0 .IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4 .IX Item "--adjust-vma incr" .PD 開始アドレスおよびすべてのセクションの \s-1VMA\s0 および \s-1LMA\s0 のアドレスを、\fIincr\fR を 加算する事で変更します。 いくつかのオブジェクトファイル形式では セクションのアドレスを任意の値に変更する事は許されていません。 これはセクションを再配置するのではない事に注意して下さい; もしプログラムがセクションが特定のアドレスにロードされる事を 期待しており、そしてこのオプションがセクションを異なるアドレスに ロードするように使われた場合は、プログラムは正常に 動作しないかもしれません。 .IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-address section{=,+,-}val" .PD 0 .IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--adjust-section-vma section{=,+,-}val" .PD 指定された \fIsection\fR の \s-1VMA\s0 および \s-1LMA\s0 アドレスを、 設定または変更します。 \fB=\fR が 指定された場合は、セクションのアドレスは \fIval\fR に設定されます。 そうでなければ \fIval\fR がセクションのアドレスに加算または減算されます。 上の \fB\-\-change\-addresses\fR に書かれているコメントも参照して下さい。 入力ファイルに \fIsection\fR が存在しない場合は、 \fB\-\-no\-change\-warnings\fR が指定されていなければ警告が出力されます。 .IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-lma section{=,+,-}val" 指定された \fIsection\fR の \s-1LMA\s0 アドレスを、 設定または変更します。 \s-1LMA\s0 アドレスは、 プログラムロード時にセクションがロードされるメモリのアドレスです。 これは通常、プログラム実行時のセクションのアドレスである \s-1VMA\s0 アドレスと同じですが、システムによっては、 特に \s-1ROM\s0 にプログラムが保持されるものにおいては、両者は異なります。 \fB=\fR が 指定された場合は、セクションのアドレスは \fIval\fR に設定されます。 そうでなければ \fIval\fR がセクションのアドレスに加算または減算されます。 上の \fB\-\-change\-addresses\fR に書かれているコメントも参照して下さい。 入力ファイルに \fIsection\fR が存在しない場合は、 \fB\-\-no\-change\-warnings\fR が指定されていなければ警告が出力されます。 .IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 .IX Item "--change-section-vma section{=,+,-}val" 指定された \fIsection\fR の \s-1VMA\s0 アドレスを、 設定または変更します。 \s-1VMA\s0 アドレスは、 プログラムが実行開始した後にセクションが置かれるアドレスです。 これは通常、メモリにロードされるセクションのアドレスである \s-1LMA\s0 アドレスと同じですが、システムによっては、 特に \s-1ROM\s0 にプログラムが保持されるものにおいては、両者は異なります。 \fB=\fR が 指定された場合は、セクションのアドレスは \fIval\fR に設定されます。 そうでなければ \fIval\fR がセクションのアドレスに加算または減算されます。 上の \fB\-\-change\-addresses\fR に書かれているコメントも参照して下さい。 入力ファイルに \fIsection\fR が存在しない場合は、 \fB\-\-no\-change\-warnings\fR が指定されていなければ警告が出力されます。 .IP "\fB\-\-change\-warnings\fR" 4 .IX Item "--change-warnings" .PD 0 .IP "\fB\-\-adjust\-warnings\fR" 4 .IX Item "--adjust-warnings" .PD \fB\-\-change\-section\-address\fR, \fB\-\-change\-section\-lma\fR, \fB\-\-change\-section\-vma\fR のいずれかが指定された場合、 指定されたセクションが存在しないと警告が出力されます。 これはデフォルトです。 .IP "\fB\-\-no\-change\-warnings\fR" 4 .IX Item "--no-change-warnings" .PD 0 .IP "\fB\-\-no\-adjust\-warnings\fR" 4 .IX Item "--no-adjust-warnings" .PD \fB\-\-change\-section\-address\fR, \fB\-\-adjust\-section\-lma\fR, \fB\-\-adjust\-section\-vma\fR のいずれかが指定された場合、 指定された セクションが存在しなくても警告を出力しません。 .IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4 .IX Item "--set-section-flags section=flags" 指定されたセクションのフラグを設定します。 引数 \fIflags\fR はフラグ名をコンマで区切った文字列です。 認識するフラグ名は \fIalloc\fR, \fIcontents\fR, \fIload\fR, \fInoload\fR, \fIreadonly\fR, \fIcode\fR, \fIdata\fR, \fIrom\fR, \fIshare\fR, \fIdebug\fR です。 内容を持たないセクションに対して \fBcontents\fR フラグを設定可能ですが、 内容を持たないセクションに対して \fBcontents\fR フラグをクリアする ことは無意味です。 単にそのセクションを削除してください。 すべてのフラグがすべてのオブジェクトファイル形式で 意味を持つとは限りません。 .IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 .IX Item "--add-section sectionname=filename" \fIsectionname\fR で指定された名前の新しいセクションをファイルの コピー中に付け加えます。 新しいセクションの内容はファイル \fIfilename\fR から取り込まれます。 セクションのサイズはファイルのサイズになります。 このオプションは任意の名前を持つセクションを サポートできるファイル形式でのみ機能します。 .IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 .IX Item "--rename-section oldname=newname[,flags]" セクションの名前を \fIoldname\fR から \fInewname\fR へ変えます。 この処理において、セクションフラグを \fIflags\fR に変えることもできます。 リンカスクリプトを使ってリネームすることに対する利点は、 出力がオブジェクトファイルのままであり、 リンク済実行形式とはならないことです。 .Sp このオプションが特に有用なのは、入力フォーマットがバイナリの時です。 なぜなら、本オプションは .data セクションを常に作成するからです。 例えば、バイナリデータを含む .rodata セクションを代りに作成したい場合、 次のコマンドラインで実現可能です: .Sp .Vb 3 \& objcopy -I binary -O -B \e \& --rename-section .data=.rodata,alloc,load,readonly,data,contents \e \& .Ve .IP "\fB\-\-change\-leading\-char\fR" 4 .IX Item "--change-leading-char" いくつかのオブジェクトファイル形式でシンボルの最初に特殊文字が 使われています。 もっとも一般的なのはアンダスコアで、しばしば コンパイラが各シンボルの前に付け加えます。 このオプションは \fBobjcopy\fR に、オブジェクトファイル形式を変換する時に各シンボルの始まりの 文字を変更するよう指示します。 変換前後のオブジェクトファイル形式がシンボルの始まりに同じ文字を 使っている場合は、このオプションは何もしません。 そうでなければ、 このオプションで文字を付け加える、または文字を削除する、または 文字を変更する事が、適切に行われます。 .IP "\fB\-\-remove\-leading\-char\fR" 4 .IX Item "--remove-leading-char" グローバルシンボルの最初の文字が、オブジェクトファイル形式で使われる シンボルの最初に付加される特殊文字だった場合は、その文字を取り除きます。 シンボルに前置される最も一般的な文字はアンダスコアです。 このオプションは前置されているアンダスコアをすべての グローバルシンボルから取り除きます。 これはシンボル名の取り決めが 異なるファイル形式のファイルを一緒にリンクしたい場合に有用です。 これは \fB\-\-change\-leading\-char\fR とは異なります。 なぜならこのオプションでは適切であれば、 出力のオブジェクトファイル形式とは関係なく 常にシンボル名を変更してしまうからです。 .IP "\fB\-\-srec\-len=\fR\fIival\fR" 4 .IX Item "--srec-len=ival" srec 出力でのみ意味があります。 S レコードの長さを \fIval\fR に設定します。 この長さには、アドレス、データ、CRC フィールドも含まれます。 .IP "\fB\-\-srec\-forceS3\fR" 4 .IX Item "--srec-forceS3" srec 出力でのみ意味があります。 S1/S2 レコードの生成を防ぎ、S3 レコードのみのフォーマットにします。 .IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4 .IX Item "--redefine-sym old=new" シンボルの名前を \fIold\fR から \fInew\fR へ変更します。 ソースが無い 2 つのものリンクしようとしていて、 名前の衝突があるときに有用でしょう。 .IP "\fB\-\-redefine\-syms=\fR\fIfilename\fR" 4 .IX Item "--redefine-syms=filename" ファイル \fIfilename\fR にリストされたシンボルの組 "\fIold\fR \fInew\fR" のそれぞれに対し、\fB\-\-redefine\-sym\fR を適用します。 \&\fIfilename\fR は単なるフラットファイルであり、シンボルの組 1 つにつき 1 行を占めます。 ハッシュ文字によりコメント行を置くことができます。 このオプションは複数回指定することができます。 .IP "\fB\-\-weaken\fR" 4 .IX Item "--weaken" ファイルのすべてのグローバルシンボルを weak に変更します。 これは、\fB\-R\fR オプションをリンカに使用して、 他のオブジェクトとリンクするオブジェクトを作成するときに有用です。 このオプションは、オブジェクトファイルフォーマットが weak シンボルをサポートするときのみ効果があります。 .IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4 .IX Item "--keep-symbols=filename" ファイル \fIfilename\fR で列挙されている各シンボルに対し、 \fB\-\-keep\-symbol\fR オプションを適用します。 \fIfilename\fR は単に平坦なファイルであり、1 行に 1 シンボルが記述されます。 行コメントは、ハッシュ文字で開始します。 このオプションは 2 回以上指定できます。 .IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4 .IX Item "--strip-symbols=filename" ファイル \fIfilename\fR で列挙されている各シンボルに対し、 \fB\-\-strip\-symbol\fR オプションを適用します。 \fIfilename\fR は単に平坦なファイルであり、1 行に 1 シンボルが記述されます。 行コメントは、ハッシュ文字で開始します。 このオプションは 2 回以上指定できます。 .IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4 .IX Item "--keep-global-symbols=filename" ファイル \fIfilename\fR で列挙されている各シンボルに対し、 \fB\-\-keep\-global\-symbol\fR オプションを適用します。 \fIfilename\fR は単に平坦なファイルであり、1 行に 1 シンボルが記述されます。 行コメントは、ハッシュ文字で開始します。 このオプションは 2 回以上指定できます。 .IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4 .IX Item "--localize-symbols=filename" ファイル \fIfilename\fR で列挙されている各シンボルに対し、 \fB\-\-localize\-symbol\fR オプションを適用します。 \fIfilename\fR は単に平坦なファイルであり、1 行に 1 シンボルが記述されます。 行コメントは、ハッシュ文字で開始します。 このオプションは 2 回以上指定できます。 .IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4 .IX Item "--weaken-symbols=filename" ファイル \fIfilename\fR で列挙されている各シンボルに対し、 \fB\-\-weaken\-symbol\fR オプションを適用します。 \fIfilename\fR は単に平坦なファイルであり、1 行に 1 シンボルが記述されます。 行コメントは、ハッシュ文字で開始します。 このオプションは 2 回以上指定できます。 .IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4 .IX Item "--alt-machine-code=index" 出力アーキテクチャが別のマシンコードを持つ場合、 デフォルトのコードの代りに \fIindex\fR 番目のコードを使用します。 あるマシンに公式なコードが割り当てられており、 ツールチェーンが新規コードを採用するが、 他のアプリケーションは元のコードが使われることに依存している場合、 有用となります。 .IP "\fB\-\-writable\-text\fR" 4 .IX Item "--writable-text" 出力ファイルに書き込み可能の印を付けます。 このオプションはすべてのファイル形式に対して意味があるわけでは ありません。 .IP "\fB\-\-readonly\-text\fR" 4 .IX Item "--readonly-text" 出力ファイルに書き込み禁止の印を付けます。 このオプションはすべてのファイル形式に対して意味があるわけでは ありません。 .IP "\fB\-\-pure\fR" 4 .IX Item "--pure" 出力ファイルにデマンドページの印を付けます。 このオプションはすべてのファイル形式に対して意味があるわけでは ありません。 .IP "\fB\-\-impure\fR" 4 .IX Item "--impure" 出力ファイルに impure の印を付けます。 このオプションはすべてのファイル形式に対して意味があるわけでは ありません。 .IP "\fB\-\-prefix\-symbols=\fR\fIstring\fR" 4 .IX Item "--prefix-symbols=string" 出力ファイルのシンボルすべてに \fIstring\fR を前置します。 .IP "\fB\-\-prefix\-sections=\fR\fIstring\fR" 4 .IX Item "--prefix-sections=string" 出力ファイルのセクションすべてに \fIstring\fR を前置します。 .IP "\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR" 4 .IX Item "--prefix-alloc-sections=string" 出力ファイル中の割り当てられたセクションすべての名前すべてに \&\fIstring\fR を前置します。 .IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4 .IX Item "--add-gnu-debuglink=path-to-file" \&\fIpath-to-file\fR への参照を含む .gnu_debuglink セクションを 生成し、出力ファイルに追加します。 .IP "\fB\-\-only\-keep\-debug\fR" 4 .IX Item "--only-keep-debug" ファイルをストリップします。 すなわち、\fB\-\-strip\-debug\fR により除去される任意のセクションを削除し、デバッグ用 セクションを残します。 .Sp この意図は、このオプションと \fB\-\-add\-gnu\-debuglink\fR とを 組み合わせて使用し、2 パートの実行可能ファイルを生成することに あります。 1 番目はストリップされたバイナリで、\s-1RAM\s0 と 配布ファイルにおいてより少ない空間を占めるようになり、 2 番目はデバッグ情報ファイルで、デバッグ機能が要求される場合にのみ 必要となるものです。 これらのファイルの生成のための推奨手順は次のようになります。 .RS 4 .IP "1.<実行可能形式を普通どおりにリンクする。ここでは、その名前を>" 4 .IX Item "1.<実行可能形式を普通どおりにリンクする。ここでは、その名前を>" \&\f(CW\*(C`foo\*(C'\fR とする... .ie n .IP "1.<""objcopy \-\-only\-keep\-debug foo foo.dbg"" を実行し>" 4 .el .IP "1.<\f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR を実行し>" 4 .IX Item "1." デバッグ情報を含むファイルを生成する。 .ie n .IP "1.<""objcopy \-\-strip\-debug foo"" を実行し>" 4 .el .IP "1.<\f(CWobjcopy \-\-strip\-debug foo\fR を実行し>" 4 .IX Item "1." ストリップされた実行可能形式を生成する。 .ie n .IP "1.<""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo""を実行し>" 4 .el .IP "1.<\f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR を実行し>" 4 .IX Item "1." デバッグ情報へのリンクをストリップ済の実行可能形式に付加する。 .RE .RS 4 .Sp 注意: デバッグ情報ファイルのための拡張子の \f(CW\*(C`.dbg\*(C'\fR は、任意のものを選択できます。 また、\f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR のステップをやるか やらないかも選択次第です。代わりに次のように行なうこともできます。 .IP "1.<実行可能形式を普通どおりリンクする>" 4 .IX Item "1.<実行可能形式を普通どおりリンクする>" .PD 0 .ie n .IP "1.<""foo""\fR を \f(CW""foo.full"" にコピーする>" 4 .el .IP "1.<\f(CWfoo\fR を \f(CWfoo.full\fR にコピーする>" 4 .IX Item "1." .ie n .IP "1.<""objcopy \-\-strip\-debug foo""を実行する>" 4 .el .IP "1.<\f(CWobjcopy \-\-strip\-debug foo\fR を実行する>" 4 .IX Item "1." .ie n .IP "1.<""objcopy \-\-add\-gnu\-debuglink=foo.full foo"" を実行する>" 4 .el .IP "1.<\f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR を実行する>" 4 .IX Item "1." .RE .RS 4 .PD .Sp すなわち、 \fB\-\-add\-gnu\-debuglink\fR が指すファイルは 完全な情報を持つ実行可能形式でも構いません。 \&\fB\-\-only\-keep\-debug\fR スイッチを使い生成したファイルでなくても構いません。 .RE .IP "\fB\-V\fR" 4 .IX Item "-V" .PD 0 .IP "\fB\-\-version\fR" 4 .IX Item "--version" .PD \fBobjcopy\fR のバージョン番号を表示して終了します。 .IP "\fB\-v\fR" 4 .IX Item "-v" .PD 0 .IP "\fB\-\-verbose\fR" 4 .IX Item "--verbose" .PD 出力を冗長にします: 変更されたすべてのオブジェクトファイルをリストします。 アーカイブの場合は "\fBobjcopy \-V\fR" でアーカイブのメンバがすべて リストされます。 .IP "\fB\-\-help\fR" 4 .IX Item "--help" \fBobjcopy\fR のオプションのサマリを表示して終了します。 .IP "\fB\-\-info\fR" 4 .IX Item "--info" 利用可能なアーキテクチャとオブジェクト形式すべてのリストを表示します。 .SH "関連項目" .IX Header "SEE ALSO" \&\fIld\fR\|(1), \fIobjdump\fR\|(1), Info の \fIbinutils\fR の項。 .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R". .SH 日本語訳 野首 寛高(hnokubi@yyy.or.jp): FreeBSD 用に翻訳 .\" .SH 履歴 .\" 野首 寛高 1998/10/05 FreeBSD 用に翻訳 .\" 堀川和雄 2001/08/04 binutil 2.11.2 用に修正 .\" 堀川和雄 2002/12/29 binutil 2.12.91 用に修正