SchOS/cmd
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nexoniarz 43305768cb exec, mmap, musl: dynamic linking
A program that names an interpreter in PT_INTERP gets it loaded too, at
the bottom of the mmap area, and started instead -- with AT_PHDR,
AT_PHENT, AT_PHNUM, AT_BASE and AT_ENTRY to find the program by. ET_DYN
images are placed at a base: the interpreter there, a PIE program where
a fixed one would go. Static musl programs get AT_PHDR now as well,
which is how musl finds their TLS template.

mmap(MAP_FIXED) of a file handed back zeroed pages whatever the
descriptor said, and kept no record of them, so fork() did not copy
them. A dynamic linker maps every library segment after the first that
way. Fixed mappings now read the file and are recorded wherever no
mapping already covers them.

musl is built shared as well as static, and libc.so ships as
/lib/ld-musl-x86_64.so.1 -- libc and loader in one file. Every port
still links -static on purpose.

cmd/dynhello is the test: against libc.so and a library of its own,
checking TLS, the heap, and a fork whose child still has both.
mprotect is accepted and not enforced yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
2026-10-24 10:59:52 +02:00
..
chvt include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
dynhello exec, mmap, musl: dynamic linking 2026-10-24 10:59:52 +02:00
fbinfo include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
httpd include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
hwreport include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
inputtest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
ldlsd include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
loadkeys include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
memfdtest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
netecho include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
nettest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
pcitest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
ping include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
reflink include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
resolvconf bug pass: whole console lines, a quiet SCI, an honest reserve warning 2026-10-23 16:03:33 +02:00
schattr include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
schdbg include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
schdbgd include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
schinit bug pass: whole console lines, a quiet SCI, an honest reserve warning 2026-10-23 16:03:33 +02:00
schinitd bug pass: whole console lines, a quiet SCI, an honest reserve warning 2026-10-23 16:03:33 +02:00
schmode include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
shmtest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
sigtest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
socktest include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
tone include: one folder per subsystem, and includes that name it 2026-10-23 15:05:12 +02:00
vgpud bug pass: whole console lines, a quiet SCI, an honest reserve warning 2026-10-23 16:03:33 +02:00