diff --git a/sys/src/cmd/6l/asm.c b/sys/src/cmd/6l/asm.c index 38dd08bcb..dbe1af3e6 100644 --- a/sys/src/cmd/6l/asm.c +++ b/sys/src/cmd/6l/asm.c @@ -109,12 +109,12 @@ asmbelf(long textfoff, vlong datafoff, vlong datva) ph = newElfPhdr(); ph->type = PT_LOAD; ph->flags = PF_R | PF_X; - ph->off = 0; /* cover ELF header from offset 0 */ - ph->vaddr = INITTEXT - textfoff; /* 0x200C00 - 0xC00 = 0x200000 */ - ph->paddr = INITTEXT - textfoff; - ph->filesz = textfoff + textsize; /* header area + text */ - ph->memsz = textfoff + textsize; - ph->align = 0x1000; + ph->off = textfoff; /* HEADR=0xC00; Plan9 convention: off=HEADR not 0 */ + ph->vaddr = INITTEXT; /* 0x200C00; alignment ok: 0xC00 ≡ 0x200C00 (mod 0x200000) */ + ph->paddr = INITTEXT; + ph->filesz = textsize; + ph->memsz = textsize; + ph->align = INITRND; /* 0x200000 */ ph = newElfPhdr(); ph->type = PT_LOAD;