From 85a6a7d892108c87a813818eaab6df1314335580 Mon Sep 17 00:00:00 2001 From: vasilito Date: Mon, 29 Jun 2026 07:28:25 +0300 Subject: [PATCH] fix: undef _GLIBCXX_USE_C99_STDLIB for all Qt/KF6 via toolchain GCC uses C99 stdlib wrappers (strtold etc.) gated by this macro. relibc declares but doesn't implement strtold. Undef at toolchain level prevents 'using ::strtold' errors in KF6/Qt C++ builds. --- local/recipes/kde/kf6-ki18n/recipe.toml | 2 ++ local/recipes/qt/redox-toolchain.cmake | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/local/recipes/kde/kf6-ki18n/recipe.toml b/local/recipes/kde/kf6-ki18n/recipe.toml index 2659c817b3..1bff4d432a 100644 --- a/local/recipes/kde/kf6-ki18n/recipe.toml +++ b/local/recipes/kde/kf6-ki18n/recipe.toml @@ -40,6 +40,8 @@ cmake "${COOKBOOK_SOURCE}" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH="${COOKBOOK_SYSROOT}" \ + -DCMAKE_C_FLAGS="-U_GLIBCXX_USE_C99_STDLIB" \ + -DCMAKE_CXX_FLAGS="-U_GLIBCXX_USE_C99_STDLIB" \ -DCMAKE_C_STANDARD_LIBRARIES="-liconv" \ -DCMAKE_CXX_STANDARD_LIBRARIES="-liconv" \ -DCMAKE_SHARED_LINKER_FLAGS="-liconv" \ diff --git a/local/recipes/qt/redox-toolchain.cmake b/local/recipes/qt/redox-toolchain.cmake index 8bff6fca8d..fa19e0c8be 100644 --- a/local/recipes/qt/redox-toolchain.cmake +++ b/local/recipes/qt/redox-toolchain.cmake @@ -42,10 +42,10 @@ set(CMAKE_SYSTEM_VERSION 1) # Redox userspace currently must not emit CET/IBT entry instructions (endbr64), # because they trap as invalid opcode in the current runtime stack. -set(CMAKE_C_FLAGS "-fcf-protection=none -march=x86-64 -include strings.h -include stdlib.h" CACHE STRING "" FORCE) -set(CMAKE_CXX_FLAGS "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -include stdlib.h -I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" CACHE STRING "" FORCE) -set(CMAKE_C_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -include strings.h -include stdlib.h" CACHE STRING "" FORCE) -set(CMAKE_CXX_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -include stdlib.h" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS "-fcf-protection=none -march=x86-64 -include strings.h -include stdlib.h -U_GLIBCXX_USE_C99_STDLIB" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -include stdlib.h -U_GLIBCXX_USE_C99_STDLIB -I${COOKBOOK_SYSROOT}/usr/include/QtQml -I${COOKBOOK_SYSROOT}/usr/include/QtQuick" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -include strings.h -include stdlib.h -U_GLIBCXX_USE_C99_STDLIB" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELEASE "-fcf-protection=none -march=x86-64 -fpermissive -include strings.h -include stdlib.h -U_GLIBCXX_USE_C99_STDLIB" CACHE STRING "" FORCE) # Flag for redox.patch: enables REDOX-specific CMake code paths (mkspec, QPA plugin). # QtPlatformSupport.cmake checks this variable. Set as CACHE INTERNAL so it persists