selfhost/cmd/w6l: drop l_* prefix from exports + snake fields/helpers

This commit is contained in:
2026-05-11 14:34:11 +09:00
parent f250bcfb3a
commit fce0a54d62
8 changed files with 334 additions and 370 deletions

View File

@@ -23,17 +23,7 @@ fn mklnk(a: *arena) *lnk = {
return l;
};
fn cstreq(a: *u8, lit: str) bool = {
let n: u64 = lit.len: u64;
let i: u64 = 0u64;
for (i < n) {
let li: i32 = i: i32;
if (a[i] != lit[li]) { return false; };
i += 1u64;
};
if (a[i] != 0u8) { return false; };
return true;
};
// `cstreq` lives in obj.ww — same bundle, single definition.
// `cstrlen` lives in obj.ww — same bundle, single definition.
@@ -276,12 +266,12 @@ export fn main(argc: i32, argv: **u8) i32 = {
let l: *lnk = mklnk(a);
// Seed _start so libwwrt-style start.o is recognised as wanted.
l_intern(l, "_start");
intern(l, "_start");
// Load positional inputs first (preserving order).
let k: i32 = 0;
for (k < ninputs) {
if (l_load(l, inputs[k]) != 0) {
if (load(l, inputs[k]) != 0) {
return 1;
};
k += 1;
@@ -300,19 +290,19 @@ export fn main(argc: i32, argv: **u8) i32 = {
return 1;
};
if (isso(p) != 0) {
if (l_load_so(l, p) != 0) { return 1; };
if (loadso(l, p) != 0) { return 1; };
} else {
if (l_load(l, p) != 0) { return 1; };
if (load(l, p) != 0) { return 1; };
};
lf += 1;
};
if (l_resolve(l) != 0) { return 1; };
if (l_relocate(l, BASE + CODE_VA_OFF) != 0) { return 1; };
if (resolve(l) != 0) { return 1; };
if (relocate(l, BASE + CODE_VA_OFF) != 0) { return 1; };
let entrysym: *lsym = l_lookup(l, "_start");
if (entrysym == nil) { entrysym = l_lookup(l, "main"); }
else { if (entrysym.defined == 0) { entrysym = l_lookup(l, "main"); }; };
let entrysym: *lsym = lookup(l, "_start");
if (entrysym == nil) { entrysym = lookup(l, "main"); }
else { if (entrysym.defined == 0) { entrysym = lookup(l, "main"); }; };
if (entrysym == nil) {
os.write(2, "w6l: no _start or main symbol\n".ptr, 29u64);
return 1;
@@ -330,7 +320,7 @@ export fn main(argc: i32, argv: **u8) i32 = {
};
let entryva: u64 = BASE + CODE_VA_OFF + entrysym.val;
let rc: i32 = l_emit_elf(l, fd, BASE, entryva);
let rc: i32 = emitelf(l, fd, BASE, entryva);
os.close(fd);
return rc;
};