aboutsummaryrefslogtreecommitdiffhomepage
path: root/obj/elf.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2025-12-17 20:32:10 +0100
committerlemon <lsof@mailbox.org>2025-12-17 20:32:23 +0100
commit4545928179837c75ab1357b77e5723a4fdb60b98 (patch)
tree5d864232cda0ff32f1d53d7a5a01daeb53b90873 /obj/elf.c
parent8b486bc9a1333d368538f91e046bf30f68798ce3 (diff)
nicer defaults and facilities for cross-compilation
Diffstat (limited to 'obj/elf.c')
-rw-r--r--obj/elf.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/obj/elf.c b/obj/elf.c
index ea326b6..512e710 100644
--- a/obj/elf.c
+++ b/obj/elf.c
@@ -46,7 +46,8 @@ elfinit(void)
hdr.i_osabi = ELFOSABI_SYSV;
hdr.i_abiversion = 0;
hdr.h32.type = ET_REL;
- switch (targ_mcisa) {
+ switch (target.arch) {
+ default: assert(!"arch?");
case ISx86_64: hdr.h32.machine = EM_X86_64; break;
}
hdr.h32.version = ELFVERSION;
@@ -154,7 +155,7 @@ elfreloc(internstr sym, enum relockind kind, enum section section, uint off, vlo
case Sdata: ++ndatarel; break;
}
assert(kind < NRELOCKIND);
- vpush(&relocs, ((struct reloc) { section, relktab[targ_mcisa][kind], off, addend, .symname = sym }));
+ vpush(&relocs, ((struct reloc) { section, relktab[target.arch][kind], off, addend, .symname = sym }));
}
static void
@@ -372,7 +373,7 @@ elffini(struct wbuf *out)
shnam_strtab = 36, shnam_symtab = 44, shnam_reltext = 52, shnam_relrodata = 63, shnam_reldata = 76
};
int align = targ_64bit ? 8 : 4;
- bool userela = userelatab[targ_mcisa];
+ bool userela = userelatab[target.arch];
char shstrs[] = "\0.text\0.rodata\0.data\0.bss\0.shstrtab\0.strtab\0.symtab\0"
".rela.text\0.rela.rodata\0.rela.data";
if (!userela) {