* [Buildroot] [PATCH 1/1] package/xerces: fix build with recent versions of ICU
@ 2026-01-02 17:26 Bernd Kuhls
2026-01-03 14:37 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Bernd Kuhls @ 2026-01-02 17:26 UTC (permalink / raw)
To: buildroot
Since Buildroot commit dcee99507c6767230fd1faeeefe95f5662eb03a3 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>
---
...-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..96dc5b2326
--- /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 <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)
--
2.47.3
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [Buildroot] [PATCH 1/1] package/xerces: fix build with recent versions of ICU
2026-01-02 17:26 [Buildroot] [PATCH 1/1] package/xerces: fix build with recent versions of ICU Bernd Kuhls
@ 2026-01-03 14:37 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-01-03 14:37 UTC (permalink / raw)
To: Bernd Kuhls; +Cc: buildroot
Hello Bernd,
On Fri, 2 Jan 2026 18:26:39 +0100
Bernd Kuhls <bernd@kuhls.net> wrote:
> Since Buildroot commit dcee99507c6767230fd1faeeefe95f5662eb03a3 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>
Thanks for the patch!
Does this mean that xerces now needs some
BR2_TOOLCHAIN_GCC_AT_LEAST_xyz dependency to make sure we have a C++
compiler that supports C++17 ?
Or maybe ICU needs this? Right now it only depends on gcc >= 4.9, with
a comment saying "C++11". Is gcc 4.9 really sufficient?
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-01-03 14:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-02 17:26 [Buildroot] [PATCH 1/1] package/xerces: fix build with recent versions of ICU Bernd Kuhls
2026-01-03 14:37 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.