gcc: record verified upstream sources and the port sequence
redbear-ci / check (push) Has been cancelled
redbear-ci / check (push) Has been cancelled
Latest upstream RELEASE tag is releases/gcc-16.1.0; '16.1.1' seen on distros is a packaging/snapshot string, not an upstream release. Both gcc-16.1.0.tar.xz and gcc-15.3.0.tar.xz confirmed reachable on ftp.gnu.org (HTTP 206 on a range request). The Redox gcc fork carries no upstream release tags, so the pristine base must come from ftp.gnu.org or gcc-mirror. Records the ordered next steps and marks them explicitly NOT STARTED, so the extraction is not mistaken for a working port. The dominant cost is step 5 -- the full C++ tree rebuild forced by the libstdc++ ABI change -- not the 13-file port itself.
This commit is contained in:
@@ -79,3 +79,37 @@ Inference, not a maintainer statement: Redox's own toolchain is
|
||||
Clang/LLVM-21-centric and GCC is the secondary C/C++ path, so upgrade pressure
|
||||
is low. They have jumped versions before (8.2.0 → 13.2.0), which argues the gap
|
||||
is demand-driven rather than a technical blocker.
|
||||
|
||||
## Verified upstream sources (checked, not assumed)
|
||||
|
||||
Latest GCC **release tag** is `releases/gcc-16.1.0`. Note "16.1.1" seen on
|
||||
distros (e.g. Arch) is a packaging/snapshot string, not an upstream release.
|
||||
|
||||
Tarballs confirmed reachable (HTTP 206 on a range request):
|
||||
|
||||
https://ftp.gnu.org/gnu/gcc/gcc-16.1.0/gcc-16.1.0.tar.xz
|
||||
https://ftp.gnu.org/gnu/gcc/gcc-15.3.0/gcc-15.3.0.tar.xz
|
||||
|
||||
Prefer the tarball over `git clone` of gcc.gnu.org (~2 GB) — it suits the
|
||||
offline-first build model and matches how other external recipes vendor sources
|
||||
(`tar =` + `blake3 =`).
|
||||
|
||||
`gitlab.redox-os.org/redox-os/gcc` carries **no** upstream release tags, so the
|
||||
pristine base must come from ftp.gnu.org or gcc-mirror, not from the Redox fork.
|
||||
|
||||
## Next steps (in order)
|
||||
|
||||
1. Vendor `gcc-16.1.0.tar.xz`, record its blake3, create
|
||||
`local/recipes/dev/gcc16/recipe.toml` (model on `recipes/dev/gcc13`).
|
||||
2. Apply `files/` + the arms in `registration-hunks.txt`; regenerate `configure`
|
||||
from `crossconfig.m4` with autoconf.
|
||||
3. Parameterize the hardcoded `13.2.0` in `mk/prefix.mk` (at minimum the
|
||||
`lib/gcc/$(GNU_TARGET)/13.2.0/include/limits.h` path).
|
||||
4. Build the cross compiler; stage into `prefix/`. Expect relibc header
|
||||
fallout (see risks above) before anything else compiles.
|
||||
5. Full C++ tree rebuild for the libstdc++ ABI change — Qt6, all KF6, Plasma,
|
||||
Mesa C++. Budget this as the dominant cost, not the port itself.
|
||||
6. Only then retry `kwin`, whose 16 `std::ranges::to` files are the reason for
|
||||
the whole exercise.
|
||||
|
||||
**Not started.** Steps 1–6 are unvalidated; nothing below step 0 has been run.
|
||||
|
||||
Reference in New Issue
Block a user