[BUG] Bootstrap audit linking omits the native entry script #5
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/rootd#5
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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
Rootd's production-boundary and semantic-baseline audit builds omit its native
linker script. Under Rust 1.97.1 the linker reports a missing
_startentry,while the audit commands still succeed. This violates the warning-free build
requirement and invalidates the small linked-image size as runtime-size evidence.
Reproduction
At
38962edd4b1317e2559284263a9999a1478b7410, use Rust 1.97.1 with thex86_64-unknown-nonetarget and runscripts/check-production-boundary.sh.Both object builds emit
cannot find entry symbol _start; Rust reports thatlinker_messagesignores-D warnings. The separatescripts/bootstrap_baseline.pybuild also omitslinker.ldand capturessuccessful-command stderr without exposing it to the enclosing audit log.
Expected and actual behavior
Expected: audit builds select the maintained Rootd entry/layout script, reject
linker warnings and retain diagnostics. Actual: the successful commands permit
an entry-less auxiliary ELF. Its 4,352-byte size is not evidence of a complete
Rootd runtime image. Object-scanner controls and source/authority inventories
remain separately evaluated; their pass does not validate that linked artifact.
Environment and identity
x86_64-unknown-none.linker.ldand fatal linker warnings.Evidence and prior checks
The complete production-boundary command exits zero and emits two linker warnings.
The generic four strict Rust matrices pass 429/428 tests and correctly linked
native builds. All 62 Python controls pass but do not catch this omission.
Preserve the original diagnostics and 4,352-byte measurement as invalid linked
runtime-size evidence; a corrected measurement is not a performance change.
Corrected original audit acceptance — 18 September 2026: Signed fix
fc898a7f4020757b2571647641ca096f66c31b6fpasses all 64 Python tests, all repository-specific audits and correctly linked warning-free native audit builds. The exact measured delta is only release_binary_bytes, from invalid entry-less evidence to 265,912 bytes. The ELF entry matches rootd_entry in an executable file-backed segment. CI 1031 and CI 1032 both pass; all four terminal logs are complete (222,678 bytes), without warnings. The unchanged runtime Rust inputs retain their strict 429/428-test matrix. The original warning and invalid measurement remain part of this report.Tracking
Related: #1 and #2. Use the maintained linker script and fatal linker warnings
for both audit paths, expose successful-command diagnostics, remeasure the
baseline, and validate exact ELF entry/layout plus all repository-specific gates.
Keep original CI results visible while monitoring the corrected signed revision.