Marcus Harnisch schrieb:
> Ich bin untröstlich, dass ich nicht früher antworten konnte. Das
> none-eabi ist für sogenannte bare-metal builds (statisch gelinkt,
> monolithisches OS/App.) gedacht, während das elf-gcc davon ausgeht, dass
> die übersetzte Applikation unter (Linux/)ELF läuft, d.h. von einem OS
> geladen wird.
Diese Unterscheidung ist mir bisher noch nicht begegnet. Gibt es eine
Quelle dazu? Man kann sicher auch eine "old"-ABI toolchain nutzen, um
sogen. bare-metal Applikationen zu bauen. GCC arm-eabi target ist
relativ neu, arm-elf gab es vorher schon lange und ist m.W. "old"-ABI.
Es gibt auch Linux-Umgebungen mit EABI ("Kernel build with EABI") und
wohl auch Unterstützung für beides "Old"-ABI und EABI. (Habe bisher
selbst nur mit älteren "OABI"-buildroots gearbeitet, also dafür nicht
aus erster Hand zu bieten.)
Von einem Zusammenhang der ABI und dem ELF-Format habe ich bis dato noch
nichts gelesen - dafür auch eine Quelle bitte? Man kann sicher eine
Datei im ELF-Format auch mit "OABI"-code füllen und das wurde auch schon
vor EABI nicht nur für Linux-Umgebungen gemacht. Spezielle Einstellungen
zum Erstellen von Linux-Anwendungen kenne ich eher in Cross-Toolchains
für arm-linux-Targets, was m.W. bestenfalls mittelbar mit der ABI und
dem ELF-Format zu tun hat. Lasse mich gerne eines Besseren belehren.
Ausführliches Dokument, das die Unterschiede erklärt kenne ich auch
keines. Zumindest EABI ist auf arm.com gut dokumentiert, da es ein von
ARM gepushter "Standard" zur Verbesserung der Austauschbarkeit von
object-code ist. Mglw. noch ergänzend brauchbar (wenn auch knapp):
http://www.oesf.org/index.php?title=Q3:_What_are_OABI_and_EABI%3F