package/xerces: fix build with recent versions of ICU

Since Buildroot commit dcee99507c 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 <bernd@kuhls.net>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
This commit is contained in:
Bernd Kuhls
2026-05-30 14:10:47 +02:00
committed by Arnout Vandecappelle
parent 513f800cf3
commit 7d4e403f02

View File

@@ -0,0 +1,32 @@
From 6883e346fa88f48022edf84328a09a4653b8c2fe Mon Sep 17 00:00:00 2001
From: Roger Leigh <rleigh@codelibre.net>
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 <bernd@kuhls.net>
---
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)