From 56855f3e57c2dd59018746a21fefe475b42553f3 Mon Sep 17 00:00:00 2001 From: Jonas Rembser Date: Sun, 11 Jan 2026 10:27:05 +0100 Subject: [PATCH 1/3] [cppyy] Disable `operator-` test on iterators also on Linux On Linux this test stopped working with gcc 16, which needs to be fixed. Probably it will be fixed by the improved overload resolution after the cppyy upgrade, so for now the test should be disabled. (cherry picked from commit d0621b13793b51dd06c183f8f8572bef77bf4bb5) --- bindings/pyroot/cppyy/cppyy/test/test_operators.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bindings/pyroot/cppyy/cppyy/test/test_operators.py b/bindings/pyroot/cppyy/cppyy/test/test_operators.py index db8f0c2854cc7..ca6cc3e58de73 100644 --- a/bindings/pyroot/cppyy/cppyy/test/test_operators.py +++ b/bindings/pyroot/cppyy/cppyy/test/test_operators.py @@ -338,7 +338,7 @@ def test14_single_argument_call(self): b = ns.Bar() assert b[42] == 42 - @mark.xfail(condition=IS_MAC, reason="Fails on OSX") + @mark.xfail(reason='Fails on macOS and on Linux with gcc 16 because cppyy picks the wrong "operator-" overload.') def test15_class_and_global_mix(self): """Iterator methods have both class and global overloads""" @@ -349,6 +349,10 @@ def test15_class_and_global_mix(self): x = std.vector[int]([1,2,3]) assert (x.end() - 1).__deref__() == 3 + # Next line fails with "TypeError: int/long conversion expects an integer object". + # The subtraction should pick the (iterator, iterator) -> int overload, + # but it somehow chooses the (iterator, iterator) -> iterator overload + # with compiling ROOT with gcc 16. TODO: fix this. assert std.max_element(x.begin(), x.end())-x.begin() == 2 assert (x.end() - 3).__deref__() == 1 From 6f228365954ff240a71e99db2a63fbcf4c430f4b Mon Sep 17 00:00:00 2001 From: Jonas Rembser Date: Sun, 11 Jan 2026 10:25:51 +0100 Subject: [PATCH 2/3] [RF] Use TRandom3 in test RooFuncWrapper Use TRandom3 instead of the `` to get compiler-independent, reproducible behavior. (cherry picked from commit e1f42658629ad67ce7cb224a1379d133f61f2e35) --- roofit/roofitcore/test/testRooFuncWrapper.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/roofit/roofitcore/test/testRooFuncWrapper.cxx b/roofit/roofitcore/test/testRooFuncWrapper.cxx index 2ebdf95333ffb..189e8f2e26657 100644 --- a/roofit/roofitcore/test/testRooFuncWrapper.cxx +++ b/roofit/roofitcore/test/testRooFuncWrapper.cxx @@ -34,12 +34,12 @@ #include #include +#include #include +#include #include -#include #include -#include #include "gtest_wrapper.h" @@ -66,13 +66,13 @@ double getNumDerivative(const RooAbsReal &pdf, RooRealVar &var, const RooArgSet void randomizeParameters(const RooArgSet ¶meters) { + TRandom3 rng(1337); + double lowerBound = -0.1; double upperBound = 0.1; - std::uniform_real_distribution unif(lowerBound, upperBound); - std::default_random_engine re; for (auto *param : parameters) { - double mul = unif(re); + double mul = rng.Uniform(lowerBound, upperBound); auto par = dynamic_cast(param); if (!par) From 855a7d27bd0d7584eddf27f6ea660d1ec1ddeae6 Mon Sep 17 00:00:00 2001 From: Mattias Ellert Date: Fri, 9 Jan 2026 00:32:27 +0100 Subject: [PATCH 3/3] Starting with gcc 16, libstdc++ links to libatomic. Add to whitelist. $ ldd /lib64/libstdc++.so.6 linux-vdso.so.1 (0x00007f3cb4c13000) libm.so.6 => /lib64/libm.so.6 (0x00007f3cb4afc000) libatomic.so.1 => /lib64/libatomic.so.1 (0x00007f3cb4af1000) libc.so.6 => /lib64/libc.so.6 (0x00007f3cb460d000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f3cb4ac5000) /lib64/ld-linux-x86-64.so.2 (0x00007f3cb4c15000) (cherry picked from commit 6ecf2d7c58e231169154f68b85eb3b5542014950) --- bindings/pyroot/pythonizations/test/import_load_libs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bindings/pyroot/pythonizations/test/import_load_libs.py b/bindings/pyroot/pythonizations/test/import_load_libs.py index 63feeca89ba89..18906ff921e32 100644 --- a/bindings/pyroot/pythonizations/test/import_load_libs.py +++ b/bindings/pyroot/pythonizations/test/import_load_libs.py @@ -77,6 +77,7 @@ class ImportLoadLibs(unittest.TestCase): "ld.*", "libffi", "libgcc_s", + "libatomic", # AddressSanitizer runtime and ROOT configuration "libclang_rt.asan-.*", "libROOTSanitizerConfig",