fix: prefix — auto-patch GCC cstdlib strtold on rebuild

GCC 13 cstdlib uses ::strtold but relibc only declares it (no impl).
Remove 'using ::strtold' from C++ stdlib header at prefix build time.
This commit is contained in:
2026-06-29 14:12:11 +03:00
parent c437bca589
commit 4a1702309d
+4
View File
@@ -113,6 +113,10 @@ else
# libc.a copy in the toolchain is identical to the one just compiled.
cp -rf "$@/$(GNU_TARGET)/lib/"* "$(PREFIX)/gcc-install/$(GNU_TARGET)/lib/"
cp -rf "$@/$(GNU_TARGET)/include/"* "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/"
# Fix GCC 13 <cstdlib> — relibc declares but doesn't implement strtold (long double).
# GCC was built with _GLIBCXX_USE_C99_STDLIB=1 but relibc lacks the symbol.
# Remove 'using ::strtold' from the C++ stdlib header to prevent compile errors.
sed -i '/using ::strtold;/d; /using ::__gnu_cxx::strtold;/d' "$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++"/*/cstdlib 2>/dev/null || true
# Propagate fresh relibc artifacts to the redoxer toolchain at
# ~/.redoxer/<target>/toolchain/. The redoxer ships its own sysroot
# snapshot from initial setup; without this sync the GCC driver inside