Files
RedBear-OS/local/scripts
vasilito f2b6c1e0ed gcc: port GCC 16.1.0 to the Redox target and install the toolchain
The Redox target port applier claimed validation on 16.1.0 but its
idempotency probe used each block's longest line, which for three blocks
is generic upstream boilerplate. Against a pristine 16.1.0 tree that
silently skipped the libgcc target arms and BOTH crossconfig.m4 arms
(libgcc/config.host and crossconfig.m4 contain zero redox references, yet
the applier reported 'already present'), producing a half-ported tree --
the exact failure the script documents itself as preventing. Probe on the
longest redox-bearing line instead, matched whole.

Two port requirements the original extraction missed, both fatal:

- gcc/config/redox.opt.urls. GCC 16 requires a .opt.urls companion for
  every .opt; s-options fails without it. Contents match what
  regenerate-opt-urls.py emits for these two options, cross-checked
  against the six upstream .opt.urls declaring the same pthread/rdynamic.

- libtool has no redox host. Upstream Redox gets shared libraries from
  recipes/dev/libtool (a Redox-patched libtool 2.5.4-redox-9510) via
  libtoolize during autoreconf, not from GCC's bundled libtool.m4. That
  route does not apply to GCC 16, which bundles 2.2.7-era macros plus its
  own ltgcc.m4. Without redox arms _LT_SYS_DYNAMIC_LINKER leaves
  dynamic_linker=no, libstdc++ builds static-only, and the desktop stack
  cannot link -- libQt6Core.so and every KF6 library carry DT_NEEDED
  libstdc++.so.6. apply-libtool-redox.py registers the four arms that
  matter, verbatim from the Redox libtool macros already in prefix/.

Result: x86_64-unknown-redox-gcc 16.1.0 with libstdc++.so.6.0.35 (SONAME
libstdc++.so.6, NEEDED libc.so.6 + libgcc_s.so.1 -- identical to the
13.2.0 library it replaces, exports a superset up to GLIBCXX_3.4.35).
std::ranges::to now compiles for the Redox target; GCC 13.2.0 fails the
same test, which is what blocked kwin's 16 affected files.

install-gcc16-toolchain.sh installs into all three locations a recipe can
resolve a compiler from -- including ~/.redoxer, which src/cook/script.rs
puts highest on PATH -- and is reversible with --restore. Its cstdlib
strtold patch is guarded; the mk/prefix.mk sed is not, and had applied
that block 17 times to the GCC 13 toolchain.
2026-08-03 12:40:15 +03:00
..