circleci,modules/coreboot,doc: share crossgcc toolchain across Dasharo 24.12 forks; blobs: add lib.sh and unify hash pre-checks#2119
Conversation
This comment was marked as off-topic.
This comment was marked as off-topic.
There was a problem hiding this comment.
Pull request overview
This PR reduces redundant CI work for Dasharo coreboot forks by introducing a shared “dasharo_common” crossgcc toolchain module and restructuring the CircleCI workflow so multiple Dasharo forks reuse a single toolchain build via workspace chaining.
Changes:
- Added
coreboot-dasharo_commonand updated four Dasharo coreboot fork modules to consume it as their toolchain. - Updated CircleCI workflow so
novacustom-nv4x_adlbuilds the shared toolchain and other Dasharo seed jobs depend on it. - Updated CircleCI documentation to describe the shared toolchain model and the re-verification procedure based on
util/crossgcc/sum/diffs.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
modules/coreboot |
Adds a shared Dasharo toolchain module and points Dasharo forks to reuse it via the coreboot_module() toolchain argument. |
doc/circleci.md |
Documents the Dasharo shared toolchain approach and updates the pipeline shape/edit map accordingly. |
.circleci/config.yml |
Reworks the Dasharo seed job dependency graph so only one crossgcc toolchain build is performed and reused via workspace. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
6a3072a to
e4d8ad6
Compare
|
Will see what circleci gives, but yeah, that's why we build 4 buildstacks in master for dasharo forks per their different FSP requirements/changes per bords family, see comment above replicated below in master: Seems like it worked locally? Actually, we can share build system and FSP are in specialized repo for board builds! |
6779152 to
4804431
Compare
4804431 to
2bd5a14
Compare
2bd5a14 to
2701215
Compare
ede00be to
2dd4926
Compare
d85f6af to
e3cbeea
Compare
|
ok enough. merging, its clear enough and already a big improvement. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
blobs/xx30/download_clean_me.sh:16
usage/help text is now inaccurate: the script no longer parses a-m <me_cleaner>option, and it also requiresCOREBOOT_DIRto be set (plus optionally takes an output dir as the first positional arg). Update the usage/help output (and/or reintroduce-mparsing) so users can run the script correctly.
function usage {
echo "Usage: $0 -m <me_cleaner>(optional)"
}
ME_BIN_HASH="c140d04d792bed555e616065d48bdc327bb78f0213ccc54c0ae95f12b28896a4"
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
if [[ "${1:-}" == "--help" ]]; then
usage
else
if [[ -z "${COREBOOT_DIR}" ]]; then
echo "ERROR: No COREBOOT_DIR variable defined."
exit 1
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…o 24.12 forks Signed-off-by: Thierry Laurion <insurgo@riseup.net>
| check_outputs() { | ||
| local all_ok=y | ||
| local pair hash path | ||
| for pair in "$@"; do | ||
| pair="$(echo "$pair" | tr -s ' ')" | ||
| hash="${pair%% *}" | ||
| path="${pair#* }" | ||
| echo -n "CHECKING: ${path}... " | ||
| if [[ ! -f "$path" ]]; then | ||
| echo "MISSING" | ||
| all_ok= | ||
| elif echo "${hash} ${path}" | sha256sum --check >/dev/null 2>&1; then | ||
| echo "OK" |
| chk_sha256sum() { | ||
| local sha256_hash="$1" | ||
| local filename="$2" | ||
| echo "$sha256_hash" "$filename" "$(pwd)" | ||
| sha256sum "$filename" | ||
| if ! echo "${sha256_hash} ${filename}" | sha256sum --check; then | ||
| echo "ERROR: SHA256 checksum for ${filename} doesn't match." | ||
| exit 1 | ||
| fi |
dasharo_nv4xis the toolchain provider.dasharo_v56,dasharo_msi_z690,dasharo_msi_z790consume its crossgcc via the secondcoreboot_module()argument. All Dasharo boards exceptnovacustom-nv4x_adlarebuildjobs (no cache) -- they get crossgcc from workspace and clone fork source fresh.Fix pre-existing hyphen/underscore variable name typo in
modules/corebootthat made the toolchain-module nobuild override a silent no-op. Fix pre-existing portability issue:printfinstead ofecho -e.Rename CI jobs for clarity:
[cache keys],[ME GBE IFD],[cross compiler],[seed:coreboot-VERSION]. Updatedoc/circleci.mdto document the cache model, job types, and Dasharo shared toolchain design.Add
blobs/lib.shwithcheck_outputs()unifying hash verification across all 10 blob download scripts. All scripts now check output file hashes before and after processing, reporting CHECKING/OK/MISSING/HASH MISMATCH per file. Fix fallthrough bugs, variable name mismatches, and missing pre-checks. (2 commits)