詳しいことは「https://sourceware.org/binutils/docs/ld/Simple-Commands.html#Simple-Commands」におまかせ
OUTPUT_FORMAT(output_mode)
出力バイナリのフォーマット
OUTPUT_ARCH(arch)
対象のアーキテクチャを指定
「objdump -help」で対応するアーキテクチャを調べることができる?
INPUT(filename, filename, filename...)
コマンドラインに置いて何度も使用され、いちいち指定するのが面倒な場合はリンカスクリプトで「INPUT」というキーワードを使用することで補うことができます。
例えば「main.o」というオブジェクトファイルをリンカの対象ファイルに含めたい場合は「INPUT(main.o)」と記述します
OUTPUT(filename)
リンカの出力ファイル名を指定します
これは、リンカにおける「-o filename」と全くの同様です
STARTUP(filename)
STARTUPコマンドでは、コマンドラインで1番はじめにfilenameが指定されること以外においてはINPUTコマンドと同じです。
これは、エントリポイントが常に最初のファイルの先頭であるシステムを使用する場合に便利です
SEARCH_DIR(pass)
これは、リンカの実行において指定したファイルが同じ現在のディレクトリにない場合に検索するディレクトリを指定します
-Lオプションと同じ働きをします
ENTRY(function_name)
エントリーポイントを指定します
これは-eオプションと同等です
PROVIDE(var_name = num)
var_name(変数名)の変数をweakシンボルで生成します
LOADADDR(section_name)
LOADADDR()
は括弧で囲まれたセクションの一時配置先(AT >
)アドレスを値で返すつまり、物理アドレスを返すということ
ADDR(section_name)
ADDR()
は括弧で囲まれたセクションの配置先(>
)アドレスを値で返すつまり、仮想アドレス(実際に動作するアドレス)を返すということ
LENGTH(memory_rabel)
LENGTH()
は括弧で囲まれたMEMORY
内の領域のLENGTH
を値で返す
ORIGIN(memory_rabel)
ORIGIN()
は括弧で囲まれたMEMORY
内の領域のORIGIN
アドレスを値で返す