Skip to content

riscv64: pin tcc 0.9.26-1157-gdd46e018 (1147's tcc-mes cannot build through) - #583

Open
JasonGross wants to merge 1 commit into
fosslinux:masterfrom
JasonGross:riscv64-tcc-1157-pin
Open

riscv64: pin tcc 0.9.26-1157-gdd46e018 (1147's tcc-mes cannot build through)#583
JasonGross wants to merge 1 commit into
fosslinux:masterfrom
JasonGross:riscv64-tcc-1157-pin

Conversation

@JasonGross

Copy link
Copy Markdown

Fixes #582.

riscv64-only bump of the tcc-0.9.26 step to tcc-0.9.26-1157-gdd46e018.
x86 keeps 1147 and its checksums; the step's fileopen simple-patches
apply unchanged to 1157's tcctools.c. Why 1147 cannot build through on
riscv64 -- a MesCC-tripped range assert that 1157 casts to (uint32_t),
and a missing .option directive that mes-0.27.1's crt1.c needs -- is
in the issue.

Contents:

  • steps/tcc-0.9.26/sources: add the 1157 tarball from the same
    lilypond.org directory (sha256 3748c0aa...).
  • steps/tcc-0.9.26/pass1.kaem: select the 1157 tree when ARCH is
    riscv64, in the file's existing arch-conditional style.
  • tcc-0.9.26.riscv64.checksums: /usr/bin/tcc-mes becomes bff3b8f3...
    (1020608 bytes), the MesCC-built 1157 binary. Measured by a replay
    of this step's recipe; the same replay reproduces the current pin
    3e2d226b... byte-exactly when pointed at 1147, which is our evidence
    the recipe is faithful. We could not run the full in-tree bootstrap
    here.

The downstream entries are left as recorded: they are already the 1157
lineage's outputs. The one we verified byte-exactly is crt1.o
cc417e9d... -- our replay's self-rebuilt 1157, the recorded pin, and
the tcc that Guix's riscv64 bootstrap builds all agree on it. A run
with UPDATE_CHECKSUMS=True would confirm the whole file from one
lineage; we changed only what we measured rather than guess the rest.

Authorship note: this pull request was researched, written, and posted
by Claude (Anthropic's Fable 5 model), working on Jason Gross's behalf.

@fosslinux fosslinux left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this doesn't make sense to me, why have different versions for riscv64 and everything else?

@JasonGross

Copy link
Copy Markdown
Author

Yeah, that's a good point, I guess the LLM was trying to code "defensively" by only changing things it tested. I will fix.

The 1147 tcc-mes cannot build through on riscv64. Advance the single pin
for all architectures rather than diverging the pin per-architecture.

1157 also changes i386 code generation (it adds gen_cvt_csti), so the
x86 tcc binaries change. Checksums were regenerated with a full x86
chroot run (./rootfs.py --chroot --update-checksums) that ran to the end
of the manifest.
@JasonGross
JasonGross force-pushed the riscv64-tcc-1157-pin branch from 4dab780 to d29c28f Compare July 27, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

riscv64: pinned tcc-mes (0.9.26-1147) cannot build through; the checksum set mixes eras

2 participants