From 7d4e403f025607b47659a36ad4ed90e57d7bb4f8 Mon Sep 17 00:00:00 2001 From: Bernd Kuhls Date: Sat, 30 May 2026 14:10:47 +0200 Subject: [PATCH] package/xerces: fix build with recent versions of ICU Since Buildroot commit dcee99507c6767230fd1faeeefe95f5662eb03a3 in 2025.11-rc1 that bumped package/icu to version 77-1, the build of xerces with ICU support enabled fails: In file included from /home/bernd/buildroot/output/host/i586-buildroot-linux-gnu/sysroot/usr/include/unicode/uset.h:38, from /home/bernd/buildroot/output/build/xerces-3.3.0/src/xercesc/util/regx/RangeToken.cpp:40: /home/bernd/buildroot/output/host/i586-buildroot-linux-gnu/sysroot/usr/include/unicode/char16ptr.h:271:55: error: 'is_same_v' is not a member of 'std'; did you mean 'is_same'? Indeed, ICU now requires C++17. Instead of using a patch from Gentoo[1] we use a backported upstream commit, limited to CMakeLists.txt, to raise the c++ version. The build error was not recorded yet by the autobuilders but can be reproduced with this defconfig: BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_PACKAGE_XERCES=y BR2_PACKAGE_ICU=y [1] https://bugs.gentoo.org/931105 Signed-off-by: Bernd Kuhls Signed-off-by: Arnout Vandecappelle --- ...-C++17-C++14-or-C++11-when-available.patch | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 package/xerces/0001-XERCESC-2141-Enable-C++17-C++14-or-C++11-when-available.patch diff --git a/package/xerces/0001-XERCESC-2141-Enable-C++17-C++14-or-C++11-when-available.patch b/package/xerces/0001-XERCESC-2141-Enable-C++17-C++14-or-C++11-when-available.patch new file mode 100644 index 0000000000..24f7aef6ef --- /dev/null +++ b/package/xerces/0001-XERCESC-2141-Enable-C++17-C++14-or-C++11-when-available.patch @@ -0,0 +1,32 @@ +From 6883e346fa88f48022edf84328a09a4653b8c2fe Mon Sep 17 00:00:00 2001 +From: Roger Leigh +Date: Sat, 10 Mar 2018 21:27:27 +0000 +Subject: [PATCH] XERCESC-2141: Enable C++17, C++14 or C++11 when available + +Upstream: https://github.com/apache/xerces-c/commit/6883e346fa88f48022edf84328a09a4653b8c2fe + +[Bernd: rebased for version 3.3.0, limited to CMakeLists.txt] +Signed-off-by: Bernd Kuhls +--- + CMakeLists.txt | 4 +- + configure.ac | 9 + + m4/ax_cxx_compile_stdcxx.m4 | 982 ++++++++++++++++++++++++++++++++++++ + 3 files changed, 993 insertions(+), 2 deletions(-) + create mode 100644 m4/ax_cxx_compile_stdcxx.m4 + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4254f89bb..f5cdb55cc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -32,9 +32,9 @@ if (POLICY CMP0067) + + cmake_minimum_required(VERSION 3.12.0) + +-# Try C++14, then fall back to C++11 and C++98. Used for feature tests ++# Try C++17, then fall back to C++14, C++11 then C++98. Used for feature tests + # for optional features. +-set(CMAKE_CXX_STANDARD 14) ++set(CMAKE_CXX_STANDARD 17) + + # Use folders (for IDE project grouping) + set_property(GLOBAL PROPERTY USE_FOLDERS ON)