Ich versuche, so kleine ELF wie möglich zu erstellen. Ich habe eine Testdatei wie diese (NASM Syntax):Binutils LD erstellt riesige Dateien
SECTION .text
dd 0xdeadbeef
Mit dieser Linker-Skript:
SECTIONS {
.text : {
*(.text)
}
}
Dann habe ich gecheckt Größen von Flach binär und ELFs gebaut zwei Möglichkeiten:
nasm -f bin -o test test.asm
Es ist flach binär, also 4 Bytes.
Ich würde etwas wie 500 Bytes maximal erwarten, aber die resultierende Datei ist 4396 Bytes lang! Es gibt jedoch eine Option namens --strip-all, die diese Datei verkleinern könnte.
i686-elf-ld -Tlinker.ld test.o -o test --strip-all
4244 Bytes. Immer noch riesig.
Warum erzeugt LD so große Dateien? Gibt es eine Möglichkeit, es kleiner zu machen?