selfhost/cmd/w6l: drop l_* prefix from exports + snake fields/helpers
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user