elf-Format os/abi ändern gcc ld

OP (Firma: www.dossmatik.de) #1152062
Ich habe einen Embedded  ARM9 und habe die ELDK von DENX als 
Crosscompiler eingesetzt.

Für das Board habe ich eine funktionierende Busybox und jetzt wollte ich 
eine eigene Busysbox compilieren.  Diese lief nie "Ilegal Instruction" 
kam immer als Fehlermeldung. Jetzt habe ich die beiden elf Dateien mir 
angeschaut und eine gravierenden Unterschied im Header gefunden.
Die Datei mit OS/ABI ARM läuft.

Dazu habe ich zwei Fragen. wie kann ich das einstellen beim kompilieren?
Gibt es eine Kompileroption für das OS/ABI?


Oder die andere Lösung wie kann ich die OS/ABI Unix starten. Ich habe 
einen Linuxkernel, der sollte doch das Format kennen.


Selbst ein einfaches Hallo World funktioniert nicht.
Hier ist mein Problem.
Hat jemand eine Idee, wie ich es besser machen könnte.



/rootfs/bin> readelf -h busybox
ELF Header:
 Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
 Class:                             ELF32
 Data:                              2's complement, little endian
 Version:                           1 (current)
 OS/ABI:                            ARM
 ABI Version:                       0
 Type:                              EXEC (Executable file)
 Machine:                           ARM
 Version:                           0x1
 Entry point address:               0xd254
 Start of program headers:          52 (bytes into file)
 Start of section headers:          699004 (bytes into file)
 Flags:                             0x2, has entry point, GNU EABI
 Size of this header:               52 (bytes)
 Size of program headers:           32 (bytes)
 Number of program headers:         5
 Size of section headers:           40 (bytes)
 Number of section headers:         23
 Section header string table index: 22


linux-arm/busybox/busybox-1.13.2/_install/bin>readelf
ELF Header:
 Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
 Class:                             ELF32
 Data:                              2's complement, little endian
 Version:                           1 (current)
 OS/ABI:                            UNIX - System V
 ABI Version:                       0
 Type:                              EXEC (Executable file)
 Machine:                           ARM
 Version:                           0x1
 Entry point address:               0x9d70
 Start of program headers:          52 (bytes into file)
 Start of section headers:          1818056 (bytes into file)
 Flags:                             0x4000002, has entry point,
Version4 EABI
 Size of this header:               52 (bytes)
 Size of program headers:           32 (bytes)
 Number of program headers:         5
 Size of section headers:           40 (bytes)
 Number of section headers:         26
 Section header string table index: 25
red@91-67-201-37-dynip:~/linux-arm/busybox/busybox-1.13.2/_install/bin>

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.