w6l: replace streq/streqd clones with strings.compare (Wave-2 hand-rolled->lib)

This commit is contained in:
2026-06-03 04:04:51 +09:00
parent 7d2d2c30ef
commit b4b28bbf02
4 changed files with 18 additions and 56 deletions

View File

@@ -26,6 +26,7 @@ package w6l;
import os;
import rt;
import strings;
import sym;
// ELF constants
@@ -152,16 +153,6 @@ fn alignup(off: u64, a: u64) u64 = {
return (off + a - 1u64) & ~(a - 1u64);
};
fn streqd(a: str, b: str) bool = {
if (a.len != b.len) { return false; };
let i: i32 = 0;
for (i < a.len) {
if (a[i] != b[i]) { return false; };
i += 1;
};
return true;
};
// ---- main entry --------------------------------------------------------
export fn emitdynelf(l: *lnk, fd: i32, base: u64, entry: u64) i32 = {
@@ -274,7 +265,7 @@ export fn emitdynelf(l: *lnk, fd: i32, base: u64, entry: u64) i32 = {
let existing: str;
existing.ptr = vernameptrarr[kk];
existing.len = drdi32(vernamelenbuf.ptr, (kk: u64) * 4u64);
if (streqd(existing, vname)) {
if (strings.compare(existing, vname) == 0) {
seen = 1; k = added;
} else { k += 1; };
};
@@ -394,7 +385,7 @@ export fn emitdynelf(l: *lnk, fd: i32, base: u64, entry: u64) i32 = {
let exi: str;
exi.ptr = vernameptrarr[vk];
exi.len = drdi32(vernamelenbuf.ptr, (vk: u64) * 4u64);
if (streqd(exi, vname)) {
if (strings.compare(exi, vname) == 0) {
let other: u16 = drdu16(vervnaother.ptr, (vk: u64) * 2u64);
dwr16(versymfor.ptr, (pi: u64) * 2u64, other);
matched = 1;