Autor Thema: Komische Linkerfehlermeldung  (Gelesen 2934 mal)

FreakyPenguin

  • Administrator
  • Beiträge: 301
    • Profil anzeigen
    • toni.famkaufmann.info
Gespeichert
« am: 17. May 2005, 20:48 »
Hallo zusammen
Ich hab begonnen meinen Kernel für grub abzuändern. Multibootheader, hab ich. Nun hab ich gehört(und gemerkt), dass grub nur mit dem ELF Format zurecht kommt. Also hab ich meinen kernel mit
nasmw -f elf -o kernel.elf kernel.asm
assembliert und wolltewin mit linken, mit demfolgenden aufruf:
ld kernel.elf -e  start --oformat elf32-i386 -Ttext 0x10000 -o kernel.bin
nun, gibt mir der linker die Folgende Fehlermeldung zurück:
ld: warning: cannot find entry symbol start; defaulting to 00010000
kernel.elf: In function `_start':
kernel.asm:(.text+0x1d): relocation truncated to fit: R_386_16 against `.text'
üld: warning: cannot find entry symbol start; defaulting to 00010000
kernel.elf: In function `_start':
kernel.asm:(.text+0x1d): relocation truncated to fit: R_386_16 against `.text'

Dier erste zeile sagt ja aus, das er das Label _Start  nicht finden kann, obwohl ich es mit _start erstellt habe. Was mache ich falsch ?

Und mit den 2 Nächsten Zeilen, kann ich überhaupt nichts anfangen.
ich habe auch nirgens das label .text definiert.

Kann mir jamand sagen wo der oderdie Fehler liegen könnten   ?


Vielenm Dank

Liebe Grüsse Togi[/code]

Golum

  • Beiträge: 96
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 17. May 2005, 21:00 »
Ich vermute das Label muss nur "start" heißen ....
.text ist ein Teil einer ELF-Datei in dem ausführbare Code steht.

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 17. May 2005, 21:00 »
hi togi,

also der linker meckert weil du zwar _start definiert hast, aber ihm nur start als einstiegspunkt übergeben hast, am besten du entscheidest dich für eines von beiden ;-).
für die 2te fehlermeldung: hast du [bits32] in deinem assembler file drin stehen?wenn nicht solltest du das reinschreiben.

gruß

n3Ro
Agieren statt Konsumieren!

 

Einloggen