Pin prebuilt riscv64 binary to glibc 2.31 (cargo-zigbuild) - #19
Merged
Merged
Conversation
kako-jun
changed the base branch from
main
to
15-16-sync-extensions-vendor-detection
September 17, 2026 01:57
kako-jun
force-pushed
the
18-release-binary-glibc-floor
branch
from
September 17, 2026 01:59
718c426 to
f4afb27
Compare
release.yml と ci.yml の build-riscv を apt の gcc-riscv64-linux-gnu クロス ツールチェーンから cargo-zigbuild ベースのビルドに置き換え、 riscv64gc-unknown-linux-gnu.2.31 を明示指定してランナー image の glibc に 依存しないようにした。ビルド直後に objdump で GLIBC_2.31 超のシンボルが 無いことを機械検証し、ci.yml の build-riscv にも upload-artifact を追加して PR 段階で実機スモークできるようにした。
レビュー指摘を反映: - mlugg/setup-zig@v2 に version: 0.16.0 を明示(CI実測ログで取得されていたバージョン) - glibc floor 検証ステップの run: | 冒頭に set -euo pipefail を明示 - Build for RISC-V ステップ直前に zig の非致命的警告に関する注記コメントを追加 - リベースにより CHANGELOG.md の [Unreleased] を削除し、[2.4.0] - 2026-09-17 の Added/Changed の後ろに Fixed セクションとして統合(#17 のバージョン更新と競合しないように) Verification: - floor 比較式 `test "$(printf 'GLIBC_2.31\n%s\n' "$max" | sort -V | tail -1)" = "GLIBC_2.31"` を ローカル bash で実行して確認: max=GLIBC_2.35(floor超過)は非0終了、max=GLIBC_2.30(floor未満)は0終了。 floor 違反時に検証が確実に落ちることを確認した。 - 手元の dist-ci/riscfetch(cargo-zigbuild ビルド済み riscv64 バイナリ)に対し `strings dist-ci/riscfetch | grep -o 'GLIBC_[0-9.]*' | sort -uV | tail -1` を実行し、 実測最大シンボルは GLIBC_2.30(floor 2.31 を満たす)と確認した(Mac に riscv64 用 objdump が無いため strings で代替)。
kako-jun
force-pushed
the
18-release-binary-glibc-floor
branch
from
September 17, 2026 02:30
f4afb27 to
0fd982a
Compare
kako-jun
changed the base branch from
15-16-sync-extensions-vendor-detection
to
main
September 17, 2026 02:30
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.
closes #18
Rebased on main after #17 merged.
変更内容
riscfetch-linux-riscv64が v2.3.1 で GLIBC_2.39 を要求してしまい、Ubuntu 22.04 (glibc 2.35) の RISC-V ボード (Allwinner D1 系) で動かない退行を修正。release.yml/ci.yml(build-riscv): apt のgcc-riscv64-linux-gnu+.cargo/config.tomllinker 追記をやめ、cargo-zigbuildでriscv64gc-unknown-linux-gnu.2.31を明示ターゲットにビルド(ランナー image の glibc に依存しない)。mlugg/setup-zig@v2はversion: 0.16.0を明示固定objdump -T ... | grep GLIBC_で GLIBC_2.31 超のシンボルが無いことを機械検証するステップを追加(違反すればジョブが落ちる、set -euo pipefail明示)ci.ymlのbuild-riscvにupload-artifactを追加し、PR 段階でも実機スモークできるようにしたBuild for RISC-Vステップに zig の非致命的警告に関する注記コメントを追加CHANGELOG.md: Sync ratified extensions (Ziccid/Sspmp/Zicfilp/Zicfiss) and tier vendor detection keywords #17 でリリース済みの[2.4.0] - 2026-09-17セクション内に### Fixedとして統合([Unreleased]は削除)glibc >= 2.31の注記を追加Verification
test "$(printf 'GLIBC_2.31\n%s\n' "$max" | sort -V | tail -1)" = "GLIBC_2.31"をローカル bash で実行して確認:max=GLIBC_2.35(floor超過)は非0終了、max=GLIBC_2.30(floor未満)は0終了。floor 違反時に検証が確実に落ちることを確認したdist-ci/riscfetch(cargo-zigbuild ビルド済み riscv64 バイナリ)にstrings dist-ci/riscfetch | grep -o 'GLIBC_[0-9.]*' | sort -uV | tail -1を実行し、実測最大シンボルはGLIBC_2.30(floor 2.31 を満たす)と確認した(Mac に riscv64 用 objdump が無いため strings で代替)