Verify exact RV32I prebuilt contents - #16
Merged
Merged
Conversation
jserv
requested changes
Aug 3, 2026
jserv
left a comment
Collaborator
There was a problem hiding this comment.
Rebase latest main branch and resolve conflicts.
thc1006
force-pushed
the
rv32i-content-manifest
branch
from
August 3, 2026 08:02
5bf9e39 to
a064755
Compare
Contributor
Author
|
Rebased onto the latest
|
The rolling release is checked by the number of conformance ELF files. An ELF can change without changing this number, so CI may keep an old release. Lowering the old release again still uses the old ELF. Stage only the files carried by the release and add a sorted SHA-256 manifest. Verify it after extraction and compare it with the manifest from the current CI build. Republish when a staged file is added, removed, or changed. make verify-prebuilt passes. make check-all passes. Signed-off-by: thc1006 <hctsai1006@cs.nctu.edu.tw>
jserv
requested changes
Aug 3, 2026
jserv
left a comment
Collaborator
There was a problem hiding this comment.
Rebase latest main branch and drop commit "Validate RV32I prebuilt count metadata".
thc1006
force-pushed
the
rv32i-content-manifest
branch
from
August 3, 2026 08:12
a064755 to
48e50a2
Compare
Collaborator
|
Thank @thc1006 for contributing! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The rolling release freshness check compare only the number of conformance ELF files. An ELF can change without changing that count, so CI may keep a stale release. Re-running the lowering checks against that release only validates the stale ELF inputs again.
Stage exactly the files included in the release and generate a sorted SHA-256 manifest for them. Verify the manifest after extraction, then compare it with the manifest generated from the current CI build. Republish the rolling release whenever a stage file is added, removed, or changes content.
make verify-prebuiltpasses.make check-allpasses.Summary by cubic
Adds a SHA-256 content manifest for the RV32I prebuilt and updates CI to republish only when the staged payload changes, preventing stale or partial rolling releases. The consumer now verifies the payload against the manifest; malformed or truncated releases skip instead of passing.
New Features
rv32i-releasetarget stages only shipped files intobuild/rv32i-release/rv32iand writesrv32i/MANIFEST.sha256.scripts/rv32i-manifest.shcreates/verifies a canonical, sorted manifest; CI stages the tree, verifies the current release against its own manifest, compares manifests with this build, and republishes on any payload change. Self-heals missing/drifted checksums, unreadable archives, or payload/manifest mismatches. Packaging now tars frombuild/rv32i-release/rv32i.scripts/rv32i-prebuilt.shverifies the manifest before lowering. README updated.Bug Fixes
riscv-tests/count.txtviascripts/rv32i-count.sh: single-line positive decimal, required when conformance ELFs are present, and must match the number of ELFs; reject missing/malformed/mismatched values. Tests add offline cases for bad counts and manifest mismatches (no manifest, drifted digest, extra file), and gate the full pass-case on a staged tree with a matching manifest and count.Written for commit 48e50a2. Summary will update on new commits.