From b14548d1428eeabf4460788a099f79cbc63b3086 Mon Sep 17 00:00:00 2001 From: Paul Gessinger Date: Tue, 12 Nov 2024 10:52:29 +0100 Subject: [PATCH 1/4] build: LC_ALL=C for DD4hep in setup (#3844) This popped up in Spack builds, and can cause Xerces-C failures like: ``` Could not load a transcoding service ``` See also: https://github.com/key4hep/key4hep-spack/issues/170 --- cmake/setup_withdeps.sh.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/setup_withdeps.sh.in b/cmake/setup_withdeps.sh.in index b4a17641134..ce1dc3506e7 100644 --- a/cmake/setup_withdeps.sh.in +++ b/cmake/setup_withdeps.sh.in @@ -51,6 +51,9 @@ if [[ -d "@Geant4_DIR@" ]]; then fi if [[ -d "@DD4hep_DIR@" ]]; then . @DD4hep_INCLUDE_DIRS@/../bin/thisdd4hep.sh + # Without this, DD4hep's Xerces-C XML parsing fails with: + # > Could not load a transcoding service + export LC_ALL=C fi if [[ -d "@podio_DIR@" ]]; then export LD_LIBRARY_PATH="@podio_LIBRARY_DIR@:${LD_LIBRARY_PATH}" From 1bd7dd4394bf08eaa0002f00cf263b69d80cf56e Mon Sep 17 00:00:00 2001 From: Paul Gessinger Date: Tue, 12 Nov 2024 12:27:19 +0100 Subject: [PATCH 2/4] fix: Remove false-positive warning in GCC14 (#3817) We had already masked this in GCC13, but it's still present in GCC14 --- Tests/UnitTests/Core/Surfaces/SurfaceBoundsTests.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tests/UnitTests/Core/Surfaces/SurfaceBoundsTests.cpp b/Tests/UnitTests/Core/Surfaces/SurfaceBoundsTests.cpp index e150e9a64c9..470512383a0 100644 --- a/Tests/UnitTests/Core/Surfaces/SurfaceBoundsTests.cpp +++ b/Tests/UnitTests/Core/Surfaces/SurfaceBoundsTests.cpp @@ -27,13 +27,15 @@ class SurfaceBoundsStub : public SurfaceBounds { std::iota(m_values.begin(), m_values.end(), 0); } -#if defined(__GNUC__) && __GNUC__ == 13 && !defined(__clang__) +#if defined(__GNUC__) && (__GNUC__ == 13 || __GNUC__ == 14) && \ + !defined(__clang__) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Warray-bounds" #pragma GCC diagnostic ignored "-Wstringop-overflow" #endif SurfaceBoundsStub(const SurfaceBoundsStub& other) = default; -#if defined(__GNUC__) && __GNUC__ == 13 && !defined(__clang__) +#if defined(__GNUC__) && (__GNUC__ == 13 || __GNUC__ == 14) && \ + !defined(__clang__) #pragma GCC diagnostic pop #endif From ce00e4086f08e324038bb4447e8d986dd608a88d Mon Sep 17 00:00:00 2001 From: Paul Gessinger Date: Tue, 12 Nov 2024 14:02:52 +0100 Subject: [PATCH 3/4] build: Make Boost 1.85 a hard failure when building the Examples (#3843) In the Examples, we require UB-free boost for the event data model to work --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f5209e0d210..601264badc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,8 +290,12 @@ if(ACTS_SETUP_BOOST) endif() if(Boost_VERSION VERSION_EQUAL "1.85.0") + set(_boost_version_severity WARNING) + if(ACTS_BUILD_EXAMPLES) + set(_boost_version_severity FATAL_ERROR) + endif() message( - WARNING + ${_boost_version_severity} "Boost 1.85.0 is known to be broken (https://github.com/boostorg/container/issues/273). Please use a different version." ) endif() From b19011b1ebe4c4776ee4aaf51b2b6b99bc559a87 Mon Sep 17 00:00:00 2001 From: Paul Gessinger Date: Tue, 12 Nov 2024 17:10:51 +0100 Subject: [PATCH 4/4] refactor: Expose IMaterialDecorator::decorate to python (#3819) Exposes the `decorate` function to python, so the decoration can itself be steered from python if needed. Part of #3502 --- Examples/Python/src/Material.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Examples/Python/src/Material.cpp b/Examples/Python/src/Material.cpp index 5bc5aa6a1f3..6855fdc1737 100644 --- a/Examples/Python/src/Material.cpp +++ b/Examples/Python/src/Material.cpp @@ -81,7 +81,9 @@ void addMaterial(Context& ctx) { { py::class_>(m, - "IMaterialDecorator"); + "IMaterialDecorator") + .def("decorate", py::overload_cast( + &Acts::IMaterialDecorator::decorate, py::const_)); } {