|

uts: GNU ld -r + kmodstamp for amd64 kmods (A′) #1

Open Chris Tusa wants to merge gnu-kmods-rel into @

Why

amd64 GNU -shared / ET_DYN kmods are a dead end (BFD and LLD refuse non-PIC PC32/32S). This is REMOVE_SUNLD_PLAN A′: keep krtld’s relocatable path, link kmods with stock GNU ld -r, and stamp DT_NEEDED / DT_SUNW_KMOD with onbld kmodstamp.

What

  • kmodstamp (onbld): appends SHT_DYNAMIC to ELF64 ET_REL. Not a linker.
  • KMOD_LINKER=gnu default for $(BINARY) and genunix. GNU path: ld -r -o $@.tmp && kmodstamp && mv.
  • unix and kmdb stay sunld.
  • Does not merge parked ET_DYN/load_dso spike c37d3c296265.

Proof

hh-alpha11 hh-build build_ok=y (~2h39m, d31ca14fb178). Throwaway hh-deploy create wipe of hh-alpha12: Limine → login, zyginit 26/26, dtrace -l 63890 vs prior BE 62948, GNU pcfs modload probe-parity vs sunld. smbfs stamped DT_NEEDED=drv/nsmb autoloads.

Leftovers (not this PR)

Step B: libc BUILD.SO, ld.so.1, delete /usr/bin/sunld. kmdb still sunld. -z defs is a no-op on GNU ld -r (undefs fail at modload).

Nothing to merge — the source bookmark has no changesets beyond the target bookmark (@).

Comments (0)