WIP: Correct standalone service linking and reject linker warnings #3
No reviewers
Labels
No labels
bug
ci
docs
duplicate
enhancement
help wanted
invalid
performance
phase-6
question
refactor
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
erix/fatd!3
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/posix-compat"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary and rationale
Correct the standalone service link so it uses the existing linker script and rejects linker warnings. The previous command could return Cargo success while producing an ELF with entry zero and no declared service entrypoint.
Tracking and scope
d91d3f64a7bcd343163d0037f34aa5081a1d1b06onfeature/posix-compat.e2b1cf5995bcf6334839cda9a013e90fa97787d5.Architecture, authority and failure behavior
The final cargo rustc invocation explicitly selects linker.ld and --fatal-warnings. It adds no capability or runtime authority. The static script's deployment-capacity placeholders do not establish a deployable dynamic service or guest readiness.
The original warning-producing exit-zero command and zero-entry ELF are retained. Ordinary runtime/smoke artifacts require their defined service entry and referenced state-arena symbol. The intentional force-fail feature stops before arena initialization; its optimized artifact retains the correct entry and 4 KiB allocated writable NOBITS arena section while its unused conditional symbol may be absent. This source-grounded distinction preserves the original failed universal-symbol assertion without changing production code or forcing unused symbols into it.
Validation evidence
Coherent realm image service prerequisites — 18 September 2026: Signed
15d4d4a4e26bf6ef1db948dc6e1736d7bdeeff0aselects the original shared wire/startup dependency graph. Direct Rust implementation bytes are unchanged. All 6 default, all-feature and separate production development/release configurations pass 175 unit tests per configuration, strict host/native Clippy and freestanding linking with fatal linker warnings. Formatting, private-item rustdoc and Markdown pass, with zero warnings. Original push/PR CI is under observation. Matching catalog adoption and real consumer VMs remain requirements; complete realm and full in-guest build acceptance remain open.Runtime consumer dependency alignment — 15 September 2026
Signed
47d54ab7a4f37a99e442bf8a7b0577c8ab6728b2aligns the existing dependency selections with the original signed runtime graph. This checkpoint changes Cargo selections and the roadmap; this repository's Rust implementation files are unchanged. Formatting, strict Clippy, private rustdoc and canonical documentation checks pass without warnings. Default/all-feature development/release tests pass 175 default / 175 all-feature tests. Independent production configurations also pass strict host/native Clippy and native builds:fatd-runtime: 175 development / 175 release tests. There are 6 supported native builds in total. Push/review CI 90/91 passes with complete classified logs and no final warnings. The product catalog, product VM acceptance and guest build remain pending.Explicit Rust/Cargo 1.97.1 passes formatting, strict default/all-feature host and runtime/all-feature freestanding Clippy, warning-denied host builds and rustdoc. Both host suites pass 175 tests. Six runtime/smoke/all-feature debug/release final links are warning-free and have their declared entry. Deliberately omitting the script with fatal warnings returns Cargo 101.
Original Cargo package IDs and 326 dependency source blobs were reverified, with unchanged lock bytes and no cross-repository path substitutions. Markdown, whitespace and eighteen workflow shell blocks plus embedded Python syntax pass. All authored code remains below 1,000 lines and the crate already denies missing_docs.
No new guest feature is introduced. These host checks do not explain the separately tracked quota VM timeout or demonstrate a build inside EriX.
Review checklist
Coherent dependency checkpoint — 20 September 2026: signed/pushed commit 8548fbb49acf871b7be94e16fc156369546b3b28 aligns original shared dependency pins with the explicit installer-rights contract. Only the manifest and roadmap change; local implementation, APIs and authority policy are unchanged. Four strict 175-unit configurations, four native builds with the maintained linker layout, host/native Clippy, formatting, private rustdoc and dependency checks pass without warnings. Original CI 94/95 passes with four complete hashed logs (143,882 bytes), zero warning candidates.
Full catalog equality and actual consumer-image validation remain required under Integration regression 68. The broader work remains tracked by phase completion, including native external Rust/LLVM/runtime rebuilding and both complete EriX-in-EriX generations. This dependency checkpoint does not close full lifecycle, frame or self-hosting acceptance.
Acknowledged terminal service dependencies — 21 September 2026: signed 7a211d081a5d7f0f9278785da947217bfd047e51 selects the original shared libraries for repeated terminal observation, exact acknowledgement and final CPU measurements under Kernel design 20. Four strict 175-test development/release and default/all-feature configurations, warning-denied host/native builds with the maintained linker layout, host/native Clippy, private rustdoc, applicable doctests, formatting and dependency/Markdown checks pass. All authored code remains below 1,000 lines. Original CI 96, 97 passes; complete hashed logs total 143,946 bytes with zero warning candidates. Full service CPU/profiler VM acceptance and guest builds remain open in Phase 6 completion.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.