Skip to content

chore: fall back to the toolchain mirror for public downloads - #276

Merged
nickyyOO merged 3 commits into
mainfrom
chore/toolchain-mirror
Nov 2, 2026
Merged

nickyyOO merged 3 commits into
mainfrom
chore/toolchain-mirror

Conversation

@nickyyOO

@nickyyOO nickyyOO commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Before

Every open-source toolchain file came from one upstream link. If that link went away (the EE GCC source already lives only on archive.org), setup stopped.

After

lombyte-project/toolchain-mirror keeps a copy of each open-source file with its license and source, and explains the toolchain choices. When an upstream download fails, the setup tries the mirror, pinned to a commit:

  • setup.sh: binutils, objdiff, and the GCC 2.95.2 headers (when the SDK mirror clone or checkout fails). When both fail, setup stops with "could not download" instead of a hash error.
  • scripts/build-game-compiler.py: the EE GCC 991111b source, bison 1.28
  • scripts/build-sn-compiler.py: gcc-2.95.2
  • docs/build/building.md: one line about the mirror

The SHA-256 pins are the same. Sony's and SN's binaries are not in the mirror; setup still fetches them from their public sources.

Verification

  • Each fallback tested with a dead upstream URL: the file came from the mirror and passed its pin. A dead URL with no mirror copy stops with a clear error; the normal SDK header checkout still works.
  • scripts/test_public_tools.py passes in CI (tools).
  • No build output changes (download code only); make elf not rerun.

setup.sh and the compiler build scripts try lombyte-project/toolchain-mirror
(pinned to a commit) when an upstream download fails: binutils, objdiff,
the EE GCC source, gcc-2.95.2, bison 1.28 and the GCC 2.95.2 headers.
Same SHA-256 pins as before.
@nickyyOO nickyyOO added the enhancement New feature or request label Nov 2, 2026 — with Claude
@nickyyOO nickyyOO self-assigned this Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

Decompilation progress

C_EXACT Change Matched bytes Functions C_FUZZY
All code 100.00 % — 3,547,932 / 3,547,932 B (—) 4,244 / 4,244 (—) 100.00 %
Boot executable 100.00 % — 354,504 / 354,504 B (—) 1,230 / 1,230 (—) 100.00 %
Game 100.00 % — 264,872 / 264,872 B (—) 850 / 850 (—) 100.00 %
SDK 100.00 % — 89,632 / 89,632 B (—) 380 / 380 (—) 100.00 %
Level overlays 100.00 % — 3,193,428 / 3,193,428 B (—) 3,014 / 3,014 (—) 100.00 %
Shared level code 100.00 % — 1,130,492 / 1,130,492 B (—) 1,583 / 1,583 (—) 100.00 %
Per-level code 100.00 % — 2,062,936 / 2,062,936 B (—) 1,431 / 1,431 (—) 100.00 %
Data in C Change Matched bytes
All data 62.81 % — 7,809,078 / 12,433,372 B (—)
Boot executable 26.98 % — 188,645 / 699,136 B (—)
Level overlays 64.94 % — 7,620,433 / 11,734,236 B (—)

No function changed its match state compared with main (a23dc98).

Compared with main (a23dc98). C_FUZZY uses main's last measurement.

setup.sh stops with 'could not download' instead of a misleading hash
error, and a failed sparse checkout of the SDK headers also falls back
to the toolchain mirror.
@nickyyOO
nickyyOO merged commit 7ab5514 into main Nov 2, 2026
5 checks passed
@nickyyOO
nickyyOO deleted the chore/toolchain-mirror branch November 2, 2026 13:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant