できるだけ小さなELFを作成しようとしています。このリンカスクリプトでBinutils LDは巨大なファイルを作成します
SECTION .text
dd 0xdeadbeef
:私はこのようなテストファイル(NASMの文法)を作成し
SECTIONS {
.text : {
*(.text)
}
}
は、その後、私は2つの方法で構築されたフラットなバイナリとELFsのサイズを確認:
nasm -f bin -o test test.asm
これはフラットバイナリなので、4バイトです。
nasm -f elf -o test.o test.asm
i686-elf-ld -Tlinker.ld test.o -o test
私は最大500バイトのようなものを期待していますが、結果ファイルの長さは4396バイトです。しかし、このファイルを小さくすることができる--strip-allという名前のオプションがあります。
i686-elf-ld -Tlinker.ld test.o -o test --strip-all
4244バイト。まだ巨大です。
LDが非常に大きなファイルを生成するのはなぜですか?それを小さくする方法はありますか?