Automate boot unit inclusion with architecture-aware Moderne analysis
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

- Replace boot.mgr's static unit list with generated dangling_units.inc
- Generate Pascal LSTs and run the dangling-unit recipe before compilation
- Exclude Wasuro, inactive architectures, and NOT_DANGLING units
- Add ASURO_ARCH selection with an x86 default
- Mark unfinished legacy units as NOT_DANGLING
- Inherit pinned Moderne tooling in the builder image
- Ensure Drone pulls the latest builder image
- Document the updated build pipeline in MkDocs

Validation:
- Full x86 ISO build and VirtualBox boot succeeded
- 1,133 kernel tests passed with no failures
- x86_64 build failed clearly due to unavailable sources
This commit is contained in:
t3hn3rd committed 2026-11-07 21:49:06 +00:00
1 parent 7ed8012c7e
commit dd3bb1e016
20 files changed
+149 -121

No files matched your search

+2
View File
@@ -19,6 +19,8 @@
}
unit arch.x86.isr.tmr1;
{$DEFINE NOT_DANGLING} { Unused legacy timer ISR; not part of the kernel boot sequence. }
interface
uses
+3 -1
View File
@@ -19,8 +19,10 @@
}
unit arch.x86.proc.loader;
{$DEFINE NOT_DANGLING} { Unimplemented process-loader stub. }
interface
implementation;
end.
end.
+3 -101
View File
@@ -71,107 +71,9 @@ procedure run;
implementation
uses
io.syslog, boot.splash,
// Silo units that must be included here to compile
driver.storage.boot,
test,
core,
app.wasm,
driver.storage.ctl.ahci,
core.enc.base64,
core.panic,
driver.video.bga,
arch.x86.bda,
arch.x86.panic,
core.ds.cfifo,
core.ds.cfifols,
core.ds.circ,
core.gfx.color,
arch.x86.proc.sched,
arch.x86.cpu,
driver.video.desktop,
driver.video.doublebuffer,
driver.mgr,
driver.net.dev.e1000,
driver.bus.usb.ehci,
driver.storage.fs.fat32,
arch.x86.fault,
core.ds.fifo,
driver.storage.fs.mgr,
driver.storage.fs.flatfs,
core.gfx.fonts,
arch.x86.gdt,
driver.video.gpu,
svc.gfxd,
core.ds.hashmap,
arch.x86.idt,
arch.x86.isr.ioapic,
arch.x86.irq,
driver.storage.fs.iso9660,
arch.x86.isr,
arch.x86.isr.mgr,
driver.hid.keyboard,
core.ds.lifo,
core.ds.lists,
memory.heap,
driver.video.lvgl,
core.ds.maxh,
core.enc.md5,
core.ds.minh,
driver.hid.mouse,
arch.x86.multiboot,
driver.net,
driver.bus.usb.ohci,
app.partcmd,
driver.bus.pci,
arch.x86.memory.physical,
core.ds.prio,
proc.mgr,
app.mgr,
driver.hid.ps2.keyboard,
driver.hid.ps2.mouse,
core.rand,
driver.timer.rtc,
driver.io.serial,
io.stdio,
driver.storage.mgr,
driver.storage.test,
core.strings,
driver.exp.testdriver,
proc.testprocs,
arch.x86.isr.tmr0,
debug.tracer,
driver.bus.usb.uhci,
app.uidebug,
driver.bus.usb,
driver.hid.usb.keyboard,
driver.hid.usb.mouse,
driver.storage.ctl.usb,
driver.bus.usb.core,
svc.usbd,
driver.bus.usb.hub,
driver.bus.usb.types,
core.util,
arch.x86.util,
arch.x86.v86,
driver.video.vesa,
driver.storage.vfs,
driver.video,
arch.x86.memory.virtual,
core.enc.fnv1a,
core.enc.djb2,
core.ds.bloom,
app.volcmd,
driver.storage.vol.mgr,
app.vterminal,
wasm,
wasm.vm.io,
wasm.test,
wasm.test.framework,
driver.video.windows,
driver.bus.usb.xhci,
core.fmt.json;
io.syslog, boot.splash
{$INCLUDE dangling_units.inc}
;
type
{ Resolved execution order — indices into Entries[] }
@@ -19,6 +19,8 @@
}
unit driver.storage.ctl.ide.ata;
{$DEFINE NOT_DANGLING} { Part of the unfinished legacy IDE stack. }
interface
uses
@@ -248,4 +250,4 @@ begin
pop_trace();
end;
end.
end.
@@ -24,6 +24,8 @@
unit driver.storage.ctl.ide.atapi;
{$DEFINE NOT_DANGLING} { Nonfunctional legacy ATAPI driver. }
interface
uses
@@ -445,4 +447,4 @@ end;
end.
end.
@@ -21,6 +21,8 @@
}
unit driver.storage.ctl.ide;
{$DEFINE NOT_DANGLING} { Unfinished legacy IDE stack; requires removed console/terminal units. }
interface
uses
@@ -19,6 +19,8 @@
}
unit driver.storage.fs.asfs;
{$DEFINE NOT_DANGLING} { Incomplete legacy filesystem; requires removed storagemanagement API. }
interface
uses
@@ -121,4 +123,6 @@ end;
procedure detect_volumes(disk : PStorage_Device) begin
end;
end;
end.
@@ -19,6 +19,8 @@
unit driver.storage.vol.table;
{$DEFINE NOT_DANGLING} { Unimplemented legacy partition-table API; requires removed storagemanagement. }
interface
uses