refactor: move the native devkit from 0:/usr to 0:/sdk (Montauk SDK)

0:/usr was a Unix transplant in an otherwise Montauk-native layout.
The SDK now lives at 0:/sdk/{bin,include,lib} (+ ldscripts under
0:/sdk/x86_64-montauk): Montauk-flavored, and a clean unit for a
future per-component installer tickbox. Native binutils is rebuilt
with --prefix=/sdk so ld's compiled-in search paths follow; future
ports configure with --prefix=/sdk.

Also add pathconf() with _PC_* names to the libc: now that realpath
exists, libiberty's lrealpath.c compiles its pathconf fallback path
unconditionally.

Shell command resolution and tab completion updated to 0:/sdk/bin.
Boot-verified in QEMU: setup, login, desktop on the new image with
zero usr/ remnants in the ramdisk.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
2026-07-15 09:11:05 +02:00
co-authored by Claude Fable 5
parent 1f271b3ba8
commit 54c0584b85
11 changed files with 53 additions and 29 deletions
+13
View File
@@ -3435,6 +3435,19 @@ int kill(pid_t pid, int sig) {
return 0;
}
long pathconf(const char *path, int name) {
(void)path;
switch (name) {
case 3: /* _PC_NAME_MAX */
return 255;
case 4: /* _PC_PATH_MAX */
return 4096;
default:
errno = EINVAL;
return -1;
}
}
/* The libc environment lives in name/value slots (getenv/setenv), not
NAME=VALUE strings, and exec* is unimplemented, so nothing can
consume a populated environ yet. An empty, valid vector satisfies