Refactor builds to use target profiles and discovery; remove architecture checker

This commit is contained in:
Aaron committed 2026-11-07 20:50:04 +00:00
1 parent 6a1eb5e2ac
commit 7a6be7f66e
15 files changed
+238 -232

No files matched your search

+18 -2
View File
@@ -337,8 +337,6 @@ dependencies. The x86-64 bootstrap retains its explicit startup sequence.
Unused working-directory wrappers moved from `io.stdio` into `io.directory`,
which explicitly depends on VFS. Existing in-repository callers need no changes.
Every normal build runs `toolchain/check_arch_boundaries.py` to reject CPU
conditionals in shared units and direct architecture imports in migrated units.
Existing `DEBUG_LMM` allocator guards and architecture-local fault-injection
build flags remain; these are feature/test options, not architecture selection.
@@ -351,3 +349,21 @@ The final adapter build also passes the 6 GiB VirtualBox bootstrap, including
physical memory above 4 GiB and all 162 string, 17 console, 15 descriptor,
and 17 lifecycle/container checks. VM RAM and optical media were restored;
the VM is powered off.
Source search paths are discovered recursively from shared roots and the selected
architecture tree, with other architectures excluded. Both targets use the same
compiler invocation; `target.sh` loads compiler options and entry points from
`toolchain/targets/<architecture>.sh`.
Directory arguments are NUL-delimited, sorted, and passed as an array so new
subdirectories and spaces in names do not require compile-script edits. Full
i386 and x86-64 builds pass using this discovery path.
All shared build steps now consume the selected profile: pipeline stages,
assembler format and source roots, C/Pascal compiler options, linker format,
entry points, output locations, optional compiler runtime, and image validation.
`target.sh` loads the profile by filename instead of keeping an architecture
switch. Assembly files, object files, and static libraries are discovered;
the configured assembly entry is linked first to preserve the Multiboot header.
Initialization-table, icon, LVGL, version, and checksum generation use target
settings too. Full i386 and x86-64 builds and VirtualBox boot checks validate
this pipeline; the i386 boot includes normal mounts and existing storage tests.