12.78 --keep=section_id

未使用セクションの削除で削除されないようにする入力セクションを指定します。

構文

--keep=section_id

section_id は以下のいずれかになります。

symbol

未使用セクションの削除中に、symbol を定義している入力セクションを保持するように指定します。 symbol が複数定義されている場合は、armlink からエラーメッセージが生成されます。

例えば、--keep=int_handler を使用できます。

_handler で終わるシンボルを定義するすべてのセクションを保持するには、 --keep=*_handler を使用します。

object(section)

未使用セクションの削除中に、objectsection を保持するように指定します。生成される section のインスタンスが 1 つの場合、 file.o() のように section は省略できます。それ以外の場合は section を指定する必要があります。

例えば、vectors.o オブジェクトの vect セクションを保持するには、 以下のオプションを使用します。--keep=vectors.o(vect)

vectors.o オブジェクトのセクションで、セクション名の先頭 3 文字が vec のセクションをすべて保持するには、--keep=vectors.o(vec*) オプションを使用します。

object

未使用セクションの削除中に、 section を保持するように指定します。この短縮形を使用した場合に object に複数の入力セクションが存在すると、リンカでエラーメッセージが生成されます。

例えば、--keep=dspdata.o を使用できます。

dsp で始まる名前の各オブジェクトで、それぞれ 1 つの入力セクションを保持するには、--keep=dsp*.o を使用します。

使用法

すべての形式の section_id 引数には、ワイルド文字 *? を含めることができます。ホスト上でファイル名の大文字と小文字が区別される場合でも、この一致では大文字と小文字は区別されません。以下に例を示します。

  • --keep foo.o(Premier*) と指定した場合、 Premier* と一致させるときに大文字と小文字が区別されます。

  • --keep foo.o(Premier) と指定した場合、文字列 Premier と一致させるときに大文字と小文字が区別されます。

すべてのオブジェクトファイルと一致させる場合は、*.o を使用します。すべてのオブジェクトファイルおよびライブラリと一致させる場合は、* を使用します。

コマンドラインでは --keep オプションを複数指定できます。

オブジェクトと同じ名前のシンボルの照合

シンボルにオブジェクトと同じ名前を付けた場合、 --keep=symbol_id と指定すると symbol_id と一致するシンボルが検索されます。

  • シンボルが見つかった場合は、そのシンボルと照合されます。

  • シンボルが見つからない場合は、オブジェクトと照合されます。

--keep では、オブジェクトと --keep=symbol_id() と強制的に一致させることができます。したがって、シンボルとオブジェクトの両方を保持するには、--keep foo.o --keep foo.o() と指定します。

関連する概念
3.1 ARM ELF イメージの構造
非機密扱い PDF file icon PDF 版 ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.