w6l: purge dead elf branches; pin rx extent

This commit is contained in:
2026-08-09 04:37:33 +09:00
parent e720d4802f
commit ac8ddee6c1
8 changed files with 33 additions and 29 deletions

View File

@@ -80,8 +80,6 @@ l_emit_elf(Lnk *l, FILE *f, u64 base, u64 entry)
bsslen++;
}
const u64 data_file_len = l->datalen - bsslen;
const u64 file_end = has_data ? (data_off + data_file_len) : rx_end;
(void)data_va;
Ehdr eh = {0};
memcpy(eh.e_ident, "\x7f""ELF", 4);
@@ -104,6 +102,8 @@ l_emit_elf(Lnk *l, FILE *f, u64 base, u64 entry)
phx.p_vaddr = base;
phx.p_paddr = base;
phx.p_filesz = rx_end;
/* The loader page-rounds mappings; when present, data_off starts
* independently on the next page, so padding is not R+X extent. */
phx.p_memsz = rx_end;
phx.p_align = page;
@@ -133,7 +133,6 @@ l_emit_elf(Lnk *l, FILE *f, u64 base, u64 entry)
for (long i = here; i < (long)data_off; i++) fputc(0, f);
fwrite(l->data, 1, data_file_len, f);
}
(void)file_end;
return 0;
}