Commit 2d2442e4 authored by Kevin Wolf's avatar Kevin Wolf

user-i386.ld: Platz für die Header reservieren

! user-i386.ld: ELF schreibt vor, dass wenn es ein PT_PHDR-Segment gibt
  (was bei dynamisch gelinkten Programmen der Fall ist), die Header
  gleichzeitig auch in einem LOAD-Segment sein müssen. Älteren
  binutils-Versionen war das egal, aber ein neuerer ld erweitert einfach
  das LOAD-Segment nach vorne, um Platz für die Header zu schaffen.

  Wenn jetzt .text direkt bei 0x40000000 anfängt, dann landen die Header
  also in dem Speicherbereich, der gar nicht mehr dem Userspace gehört,
  und die letzte Pagetable geht kaputt. Um das zu fixen, wird .text
  jetzt genau soweit nach hinten verschoben, dass ab 0x40000000 die
  Header Platz haben.
Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
parent cd3a7f98
......@@ -4,7 +4,7 @@ LINK_ADDR = 0x40000000;
ENTRY(_start)
SECTIONS
{
. = LINK_ADDR;
. = LINK_ADDR + SIZEOF_HEADERS;
.text : AT(ADDR(.text))
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment