Autor Thema: kernel2 / amd64  (Gelesen 6482 mal)

tulsa

  • Beiträge: 1
    • Profil anzeigen
Gespeichert
« am: 15. September 2014, 23:56 »
Ich bekomme ein Fehler beim Compilieren/Linken des Kernels für die amd64-Architektur ...
In den Quellen zum kernel2 findet sich unter dem Verzeichnis interrupts die Datei apic.c, die auf die Speicherverwaltung aufsetzt. Darin gibt es die Funktion apic_map, die auf die Funktion mmc_automap zurückgreift. mmc_automap ist in mm_context.c definiert - allerdings nur unter arch/i386, unter arch/amd64 fehlt diese Funktion in der entsprechenden Datei.

Meine Frage: läßt sich diese Funktion einfach aus der unter arch/i386 gecodeten mm_context.c übernehmen? Ich könnte es mir jedenfalls vorstellen, auch wenn im long-mode amd64 eine 4-stufige pagetable verwendet wird. Gibt es da ein Problem?

Ist kernel2 überhaupt schon einmal für amd64 compiliert worden und lauffähig?

Herzliche Grüße an alle mit der Bitte um Antwort/Hinweise.
Gabriel-Alexander Reschke

kevin

  • Administrator
  • Beiträge: 2 767
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 16. September 2014, 17:02 »
Ups, entschuldige bitte, dass ich meine tyndur.org-Mails so unregelmäßig lese. :oops:

Ich sehe im Moment nicht viele Gründe, warum der Code von mmc_automap() architekturspezifisch sein sollte. Die korrekte Lösung wäre dann aber natürlich nicht, den Code nach amd64 zu kopieren, sondern ihn aus arch/ herauszuverschieben. Es gibt natürlich einen architekturspezifische Teil (die Flags), aber das ist ein unabhängiges Problem, das im externen Interface korrigiert werden müsste. Und zwischen i386 und amd64 sollten die Flags kompatibel sein, das spielt also im Moment keine Rolle.
Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.

 

Einloggen