www.mikrocontroller.net

Forum: Compiler & IDEs elf-Format os/abi ändern gcc ld


Autor: René D. (Firma: www.dossmatik.de) (dose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.