docs: LG Gram Round 6-7 assessment + plan status update

Assessment doc: added Round 6 (16 relibc stub replacements, sem_open,
ioctl soundness) and Round 7 (kernel 3 blocking errors + ~40 warnings,
relibc netdb fix, all committed and pushed) sections with deliverables
and commit maps.

LG-GRAM plan: updated Status line through Round 7.
This commit is contained in:
2026-07-27 00:58:51 +09:00
parent 5d5f3fa679
commit 74fdf2ff90
2 changed files with 98 additions and 3 deletions
@@ -1,7 +1,7 @@
# LG Gram 16Z90TP-G.AL89C — Host Compatibility Plan
**Created:** 2026-07-20
**Status:** Implementation in progress — Phases 0, 3.2, 3.4, 3.5, 3.6, 4.14.4, 5.05.5, 6.1, 9.1, 9.6 complete. **Round 1 (2026-07-26): `SystemQuirkFlags` consumer wiring landed end-to-end**`force_s2idle`, `no_legacy_pm1b`, `kbd_deactivate_fixup` wired in acpid+ps2d. **Round 2 (2026-07-26): build blockers fixed** (relibc unsafe-block; acpid `common` path). **Lid-switch symmetric wiring**: close → `enter_s2idle()`, open → `exit_s2idle()`. **Round 3 (2026-07-26): kernel SMBIOS scan + `acpi_irq1_skip_override` consumer landed**`acpi/smbios.rs` + `ioapic::handle_src_override` IRQ1 skip. Kernel page-fault `todo!()` bombs fixed. **Round 4 (2026-07-26): `_fenv` POSIX stubs implemented (11 functions)**. **Phase 9.1 MWAIT idle loop confirmed complete** (implemented by parallel session). **base cook succeeds** — all LG Gram changes verified for `x86_64-unknown-redox`. See `local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md`.
**Status:** Implementation in progress — Phases 0, 3.2, 3.4, 3.5, 3.6, 4.14.4, 5.05.5, 6.1, 9.1, 9.6 complete. **Round 1 (2026-07-26): `SystemQuirkFlags` consumer wiring landed end-to-end**`force_s2idle`, `no_legacy_pm1b`, `kbd_deactivate_fixup` wired in acpid+ps2d. **Round 2 (2026-07-26): build blockers fixed** (relibc unsafe-block; acpid `common` path). **Lid-switch symmetric wiring**: close → `enter_s2idle()`, open → `exit_s2idle()`. **Round 3 (2026-07-26): kernel SMBIOS scan + `acpi_irq1_skip_override` consumer landed**`acpi/smbios.rs` + `ioapic::handle_src_override` IRQ1 skip. Kernel page-fault `todo!()` bombs fixed. **Round 4 (2026-07-26): `_fenv` POSIX stubs implemented (11 functions)**. **Phase 9.1 MWAIT idle loop confirmed complete** (implemented by parallel session). **base cook succeeds** — all LG Gram changes verified for `x86_64-unknown-redox`. **Round 5 (2026-07-26): relibc cross-compile denied warnings fixed** (last build blocker); relibc + base both cook successfully. **Round 6 (2026-07-26): 16 relibc `unimplemented!()` stubs replaced with real POSIX implementations** + `sem_open` family + ioctl soundness fixes. **Round 7 (2026-07-27): kernel 3 blocking errors + ~40 warnings fixed** (SMBIOS unsafe blocks, MWAIT idle E0133, unused imports/vars/mut/unsafe cleanup); **relibc `netdb/mod.rs` compile failure fixed** (AF_UNSPEC/AF_INET6 imports + `getnetbyaddr` logic bug); **kernel cook = zero errors, zero warnings**; all work committed and pushed (`bd656d7f` kernel, `92f9d629` relibc, `5d5f3fa679` parent). See `local/docs/evidence/lg-gram/ASSESSMENT-2026-07-26.md`.
**Source evidence:** Host dmesg (Linux 7.1.3-1-MANJARO), six-point codebase recon
(drivers/PCI-ID inventory, redox-drm Intel state, redbear-iwlwifi state, IOMMU/kernel
state, ACPI/power state, USB/input/audio state)
@@ -1,11 +1,83 @@
# LG Gram 16Z90TP-G.AL89C — Compatibility Assessment (2026-07-26)
**Round:** 5 of N
**Scope:** Fix relibc cross-compile denied warnings (last LG Gram build blocker), verify ISO build, document results.
**Round:** 7 of N
**Scope:** Fix kernel build errors (3 blocking + all warnings), fix relibc compile failure, commit and push everything.
**Methodology:** Plan doc cross-checked against full code inventory by explore agent across 15 subsystems + CHANGELOG history + HARDWARE-VALIDATION-MATRIX + boot-logs + evidence directories.
---
## Round 7 deliverables (landed 2026-07-27)
### Kernel 3 blocking ERRORS fixed (`smbios.rs`)
The SMBIOS scan code (Round 3 work) had `unsafe-op-in-unsafe-fn` violations (denied in edition 2024):
1. **`map_physical_range` unsafe blocks** (lines 83, 180): Calls to `map_physical_range()` (a `pub(crate) unsafe fn`) were made inside `unsafe fn` bodies without explicit `unsafe { }` blocks. Wrapped both call sites.
2. **Lifetime propagation**: `bytes` from mapped SMBIOS memory was explicitly typed as `&'static [u8]` since mapped ACPI memory persists for kernel lifetime. Propagated `&'static` through `dmi_string`, `decode_type_1`, `decode_type_2` function signatures.
### Kernel E0133 WARNINGS fixed (`interrupt/mod.rs`)
MWAIT idle loop (Round 4 discovery) had inline `asm!` and unsafe calls inside `unsafe fn` without explicit `unsafe { }` blocks:
1. `mwiat_loop` (line ~102): inline `asm!` wrapped in `unsafe { }`.
2. `idle_loop` (lines ~144, 152, 153): `enable_and_halt()` + `mwiat_loop()` calls wrapped in `unsafe { }`.
### Kernel unnecessary-unsafe warnings fixed
- `cpuid.rs:9`: removed `unsafe {}` wrapper around now-safe `__cpuid_count` intrinsic.
- `tsc.rs:102`: removed `unsafe {}` wrapper around now-safe `rdtsc` intrinsic.
### Kernel general warning cleanup (~40 warnings across 19 files)
- Removed unused imports: `rmm/lib.rs`, `acpi/mod.rs`, `rsdt.rs`, `rxsdt.rs`, `slit.rs`, `srat/`, `xsdt.rs`, `context/mod.rs`, `memory/mod.rs`, `numa.rs`, `scheme/user.rs`, `syscall/fs.rs`.
- Prefixed unused variables with `_`.
- Removed unnecessary `mut`.
- Removed unnecessary `unsafe {}` blocks: `stop.rs`, `srat/mod.rs`, `memory/mod.rs`.
**Subagent bug fixed:** The warning-cleanup subagent incorrectly removed `use rmm::PhysicalAddress;` from `rxsdt.rs` (it IS used at lines 14, 19, 22). Restored.
### Relibc `netdb/mod.rs` compile failure fixed
1. **Missing imports** (E0425): Added `AF_UNSPEC`, `AF_INET6` to the import from `sys_socket::constants`.
2. **`getnetbyaddr` logic bug**: `n_ref.n_net` (a `uint32_t` holding the network number) was incorrectly treated as a raw pointer — `is_null()` check and dereference were nonsensical. Fixed to `let matched = net == u32::from_be(n_ref.n_net);`.
### Build verification: kernel AND relibc cook SUCCESSFULLY
| Recipe | Round 7 result | Verified |
|---|---|---|
| **kernel** | ✅ SUCCESSFUL — zero errors, zero warnings | `repo cook kernel --force-rebuild` |
| **relibc** | ✅ SUCCESSFUL | `repo cook relibc` |
| **redox-driver-sys** | ✅ 80/80 cargo tests pass | host unit tests |
### All Round 7 work committed and pushed
| Repo | Branch | Commit | Status |
|---|---|---|---|
| kernel fork | `submodule/kernel` | `bd656d7f` | ✅ pushed |
| relibc fork | `submodule/relibc` | `92f9d629` | ✅ pushed |
| parent | `0.3.1` | `5d5f3fa679` | ✅ pushed |
---
## Round 6 deliverables (landed 2026-07-26)
### 16 relibc `unimplemented!()` stubs replaced with real implementations
Systematic replacement of all active `unimplemented!()` stubs in relibc with real POSIX implementations:
- `1442195b` — replaced all active `unimplemented!()` stubs with real implementations (14 stubs across netdb, socket, semaphore, mman, resource, uio headers)
- `ef52efde` — replaced last 2 active stubs (remaining netent and protoent helpers)
### POSIX `sem_open` family implemented (relibc `92f9d629`)
Full `sem_open`/`sem_close`/`sem_unlink`/`sem_post`/`sem_wait`/`sem_trywait`/`sem_timedwait` implementation using named shared memory segments under `/dev/shm/sem.*`.
### ioctl soundness fixes (relibc `92f9d629`)
`ioctl()` variadic argument handling hardened to prevent undefined behavior on mismatched request/argument types.
---
## Round 5 deliverables (landed 2026-07-26)
### Relibc cross-compile denied warnings fixed — LAST LG Gram build blocker
@@ -366,3 +438,26 @@ Parent repo commit includes: updated submodule pointers for `local/sources/relib
| RedBear-OS (parent) | `0.3.1` | `6d8ef13dc1` | `LG Gram Round 1: redox-driver-sys stub replacements + doc reference fixes` |
| RedBear-OS/base fork | `submodule/base` | `45452c5a` | `acpid+ps2d: wire SystemQuirkFlags consumers (LG Gram Round 1)` |
| RedBear-OS/base fork | `submodule/base` | `263a41a9` | `bootstrap: fix broken INITNSMGR-CONCURRENCY-DESIGN.md reference` |
---
## Round 7 commit map
| Repo | Branch | Commit | Subject |
|---|---|---|---|
| RedBear-OS/kernel fork | `submodule/kernel` | `bd656d7f` | `kernel: LG Gram SMBIOS scan + MWAIT idle + warning cleanup` |
| RedBear-OS/relibc fork | `submodule/relibc` | `92f9d629` | `relibc: implement POSIX sem_open and ioctl soundness fixes` (includes netdb getnetbyaddr fix) |
| RedBear-OS (parent) | `0.3.1` | `5d5f3fa679` | `submodule bump: kernel + relibc for LG Gram Round 7` |
**Verification:** `repo cook kernel --force-rebuild` = zero errors, zero warnings. `repo cook relibc` = success. `redox-driver-sys` 80/80 cargo tests pass.
---
## Round 6 commit map
| Repo | Branch | Commit | Subject |
|---|---|---|---|
| RedBear-OS/relibc fork | `submodule/relibc` | `1442195b` | `relibc: replace all active unimplemented!() stubs with real implementations` |
| RedBear-OS/relibc fork | `submodule/relibc` | `ef52efde` | `relibc: replace last 2 active unimplemented!() stubs with real implementations` |
(Round 6 relibc commits were swept into the parallel agent's `92f9d629` push and the parent `5d5f3fa679` submodule bump.)