Linker-Skript: non constant or forward reference address ...

OP #284291
Lesenswert?
• ▲
▼
Hallo zusammen,
Es geht um den GNU-Linker ld und ein Linker-Skript für diesen.
Nun, ich habe mehrere Objektdateien, die ich zusammenbinden moechte. Zu
diesem Zweck habe ich mir ein Linker-Skript zusammengebastelt (siehe
Dateianhang).
Durch dieses Skript soll die Objektdatei loader.o hinter den restlichen
Objektdateien gespeichert werden, und gleichzeitig soll der Code von
loader.o gegen die Adresse "__sloader" gelinkt werden. Beim Linken
bekomme ich aber leider die folgende Fehlermeldung:

./image.lds:32: non constant or forward reference address expression
for section .loader

Die Fehlermeldung tritt durch "__sloader" auf, denn wenn ich an
seiner Stelle "__offset" einfüge, dann wird fehlerfrei gelinkt.
Weiß vielleicht jemand, wie ich diesen Fehler lösen kann, oder ob ich
eine andere Methode anwenden kann, damit der Code von loader.o gegen
die Adresse "__offset + __einit" gelinkt werden kann?

Danke im Voraus


Luis


PS: beim Linken verwende ich den folgenden Befehl:
    arm-linux-ld -T ./image.lds init.o loader.o preinit.o postinit.o \

        -o image -Map image.map
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.