fix: prefix — also patch basic_string.h stold(strtold)

This commit is contained in:
2026-06-29 14:24:15 +03:00
parent 4a1702309d
commit 678d1d63de
+5 -1
View File
@@ -116,7 +116,11 @@ else
# 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
# Also remove stold() from basic_string.h which references std::strtold.
export _GCC_CSTDLIB="$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++"/*/cstdlib; \
sed -i '/using ::strtold;/d; /using ::__gnu_cxx::strtold;/d' $$_GCC_CSTDLIB 2>/dev/null || true; \
STRHDR="$(PREFIX)/gcc-install/$(GNU_TARGET)/include/c++"/*/bits/basic_string.h; \
sed -i '/inline long double/,/^#endif \/\/ _GLIBCXX_USE_C99_STDLIB/{ /stold(/,/^#endif/d; }' $$STRHDR 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