feat: ship native dev tools and target sysroot at 0:/usr
The devkit target in programs/GNUmakefile stages the native binutils (as, ld, ar, nm, objcopy, objdump, readelf, ranlib, strip, size, strings, addr2line, c++filt, elfedit as *.elf) into the image at 0:/usr/bin, plus a target-side sysroot: libc headers, montauk/ and Api/ SDK headers and the freestanding C++ set at 0:/usr/include, and libc.a + crt1/crti/crtn objects (with empty libm/libstdc++ stand-ins) at 0:/usr/lib. ld's ldscripts ship under 0:/usr/x86_64-montauk. The /usr prefix matches the binutils configure prefix, and the kernel already resolves driveless absolute paths against the cwd drive, so compiled-in /usr/lib search paths work natively on drive 0. The shell resolves commands from 0:/usr/bin (after 0:/os) and tab completion lists it. When toolchain/native/ has not been built, the devkit step skips cleanly and the image builds as before. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
bd9158fdcc
commit
fe040f8fea
5 files changed
+77
-7
No files matched your search
@@ -84,13 +84,19 @@ int exec_external(const char* cmd, const char* args) {
|
||||
scat(path, name, sizeof(path));
|
||||
if (try_exec(path, finalArgs)) return 0;
|
||||
|
||||
// 5. Try 0:/games/<cmd>.elf
|
||||
// 5. Try 0:/usr/bin/<cmd>.elf (native dev tools: as, ld, ar, ...)
|
||||
scopy(path, "0:/usr/bin/", sizeof(path));
|
||||
scat(path, name, sizeof(path));
|
||||
scat(path, ".elf", sizeof(path));
|
||||
if (try_exec(path, finalArgs)) return 0;
|
||||
|
||||
// 6. Try 0:/games/<cmd>.elf
|
||||
scopy(path, "0:/games/", sizeof(path));
|
||||
scat(path, name, sizeof(path));
|
||||
scat(path, ".elf", sizeof(path));
|
||||
if (try_exec(path, finalArgs)) return 0;
|
||||
|
||||
// 6. If on a non-zero drive, also try drive root
|
||||
// 7. If on a non-zero drive, also try drive root
|
||||
if (current_drive != 0) {
|
||||
build_drive_path(current_drive, name, path, sizeof(path));
|
||||
if (try_exec(path, finalArgs)) return 0;
|
||||
|
||||
Reference in new issue
Block a user