From 0b5068f49461a331f90a780d13fe00c411bf114b Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 14 May 2026 16:37:57 -0500 Subject: [PATCH 1/7] feat: build ROOT against external llvm --- spack-environment/packages.yaml | 2 +- spack-packages.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spack-environment/packages.yaml b/spack-environment/packages.yaml index d9a05626..09ad121b 100644 --- a/spack-environment/packages.yaml +++ b/spack-environment/packages.yaml @@ -611,7 +611,7 @@ packages: root: require: - '@6.38.04' - - cxxstd=20 +fftw +fortran +gdml +http -ipo +mlp +python +root7 +tmva +tmva-sofie +x +xrootd +ssl + - cxxstd=20 ~builtin_llvm +fftw +fortran +gdml +http -ipo +mlp +python +root7 +tmva +tmva-sofie +x +xrootd +ssl - any_of: [+opengl +webgui, -opengl -webgui] sherpa: require: diff --git a/spack-packages.sh b/spack-packages.sh index f3d0cf64..2fdd8197 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -38,6 +38,7 @@ a77a7ed0d2630466cac71165026387b1381b058a 88800eeac4ee97b7689b0a84d066e4f634f32b46 d8271eec35998674d3c67c7613b010fa98519df3 86e2acd247221d45f9944ac2f69518b8766baec3 +8cd9959e3fd4e54d79bbf75210e335ab842e1af0 --- ## Optional hash table with comma-separated file list ## For these commits, the cherry-pick will be restricted to the listed files only. @@ -73,3 +74,4 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## 88800eeac4ee97b7689b0a84d066e4f634f32b46: py-boto3: add v1.42.85 and py-botocore: add v1.42.85 ## d8271eec35998674d3c67c7613b010fa98519df3: py-setuptools-scm: Earlier versions require setuptools-scm too ## 86e2acd247221d45f9944ac2f69518b8766baec3: py-boto3: add v1.43.17, updated dependencies +## 8cd9959e3fd4e54d79bbf75210e335ab842e1af0: root: add builtin_llvm variant to allow external LLVM From 8fdffcb74fc849d4d13b1965daa5823d79dba889 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 14 May 2026 17:12:18 -0500 Subject: [PATCH 2/7] fix: spack cherry-pick: root: miscellaneous --- spack-packages.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spack-packages.sh b/spack-packages.sh index 2fdd8197..8f89ec22 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -38,6 +38,10 @@ a77a7ed0d2630466cac71165026387b1381b058a 88800eeac4ee97b7689b0a84d066e4f634f32b46 d8271eec35998674d3c67c7613b010fa98519df3 86e2acd247221d45f9944ac2f69518b8766baec3 +30e69adca31b9ba98e61c42b4126188911e3537c +93acd58e1399d787dac69d61ecbbd1695c8a2bac +056c2efcd8f3cceb629f9b78acbdf4533e008206 +ad4b252d254d49db587abd6fd06c375c71d27a01 8cd9959e3fd4e54d79bbf75210e335ab842e1af0 --- ## Optional hash table with comma-separated file list @@ -74,4 +78,8 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## 88800eeac4ee97b7689b0a84d066e4f634f32b46: py-boto3: add v1.42.85 and py-botocore: add v1.42.85 ## d8271eec35998674d3c67c7613b010fa98519df3: py-setuptools-scm: Earlier versions require setuptools-scm too ## 86e2acd247221d45f9944ac2f69518b8766baec3: py-boto3: add v1.43.17, updated dependencies +## 30e69adca31b9ba98e61c42b4126188911e3537c: root: cleanup recipe since the minimum version is 6.28.00 +## 93acd58e1399d787dac69d61ecbbd1695c8a2bac: Miscellaneous package fixes +## 056c2efcd8f3cceb629f9b78acbdf4533e008206: root: require openblas ~ilp64 symbol_suffix=none when ^openblas +## ad4b252d254d49db587abd6fd06c375c71d27a01: root: add v6.36.12 ## 8cd9959e3fd4e54d79bbf75210e335ab842e1af0: root: add builtin_llvm variant to allow external LLVM From 2fed3fe4b97ac9ff02beed206f8bc0b9e4949f06 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Thu, 14 May 2026 23:06:11 -0500 Subject: [PATCH 3/7] fix: rm duplicate cherry-pick --- spack-packages.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/spack-packages.sh b/spack-packages.sh index 8f89ec22..4b30b22e 100644 --- a/spack-packages.sh +++ b/spack-packages.sh @@ -40,7 +40,6 @@ d8271eec35998674d3c67c7613b010fa98519df3 86e2acd247221d45f9944ac2f69518b8766baec3 30e69adca31b9ba98e61c42b4126188911e3537c 93acd58e1399d787dac69d61ecbbd1695c8a2bac -056c2efcd8f3cceb629f9b78acbdf4533e008206 ad4b252d254d49db587abd6fd06c375c71d27a01 8cd9959e3fd4e54d79bbf75210e335ab842e1af0 --- @@ -80,6 +79,5 @@ read -r -d '' SPACKPACKAGES_CHERRYPICKS_FILES <<- \ ## 86e2acd247221d45f9944ac2f69518b8766baec3: py-boto3: add v1.43.17, updated dependencies ## 30e69adca31b9ba98e61c42b4126188911e3537c: root: cleanup recipe since the minimum version is 6.28.00 ## 93acd58e1399d787dac69d61ecbbd1695c8a2bac: Miscellaneous package fixes -## 056c2efcd8f3cceb629f9b78acbdf4533e008206: root: require openblas ~ilp64 symbol_suffix=none when ^openblas ## ad4b252d254d49db587abd6fd06c375c71d27a01: root: add v6.36.12 ## 8cd9959e3fd4e54d79bbf75210e335ab842e1af0: root: add builtin_llvm variant to allow external LLVM From 4cd8640dba12dcbc2cc281694113d33e0b74f2a1 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Fri, 15 May 2026 19:05:42 -0500 Subject: [PATCH 4/7] fix: apt-get install libllvm${CLANG}-dev Added installation of libllvm for Clang support. --- containers/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index 0c85d2d0..bcad6957 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -119,7 +119,7 @@ fi # Install packages apt-get -yqq update apt-get -yqq install cpp${GCC} gcc${GCC} g++${GCC} gfortran${GCC} -apt-get -yqq install clang${CLANG} clang-tidy${CLANG} clang-format${CLANG} libclang${CLANG}-dev libc++${CLANG}-dev +apt-get -yqq install clang${CLANG} clang-tidy${CLANG} clang-format${CLANG} libclang${CLANG}-dev libc++${CLANG}-dev libllvm${CLANG}-dev apt-get -yqq autoremove # Remove symlinks loop in nvidia/cuda:12.5.1-devel-ubuntu24.04 rm -f /usr/bin/cpp /etc/alternatives/cpp From ee5f1f17584ee9492e3f8854fc5339251dc60af5 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sat, 16 May 2026 10:43:46 -0500 Subject: [PATCH 5/7] fix: libllvm-dev => llvm-dev --- containers/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index bcad6957..c8a85bea 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -119,7 +119,7 @@ fi # Install packages apt-get -yqq update apt-get -yqq install cpp${GCC} gcc${GCC} g++${GCC} gfortran${GCC} -apt-get -yqq install clang${CLANG} clang-tidy${CLANG} clang-format${CLANG} libclang${CLANG}-dev libc++${CLANG}-dev libllvm${CLANG}-dev +apt-get -yqq install clang${CLANG} clang-tidy${CLANG} clang-format${CLANG} libclang${CLANG}-dev libc++${CLANG}-dev llvm${CLANG}-dev apt-get -yqq autoremove # Remove symlinks loop in nvidia/cuda:12.5.1-devel-ubuntu24.04 rm -f /usr/bin/cpp /etc/alternatives/cpp From 9ed99e02b8c4a9e9ea2479096354d5e320f30a9a Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 18 May 2026 15:29:48 -0500 Subject: [PATCH 6/7] fix: apt-get install libedit-dev --- containers/debian/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/debian/Dockerfile b/containers/debian/Dockerfile index c8a85bea..44151e3b 100644 --- a/containers/debian/Dockerfile +++ b/containers/debian/Dockerfile @@ -119,7 +119,7 @@ fi # Install packages apt-get -yqq update apt-get -yqq install cpp${GCC} gcc${GCC} g++${GCC} gfortran${GCC} -apt-get -yqq install clang${CLANG} clang-tidy${CLANG} clang-format${CLANG} libclang${CLANG}-dev libc++${CLANG}-dev llvm${CLANG}-dev +apt-get -yqq install clang${CLANG} clang-tidy${CLANG} clang-format${CLANG} libclang${CLANG}-dev libc++${CLANG}-dev libedit-dev llvm${CLANG}-dev apt-get -yqq autoremove # Remove symlinks loop in nvidia/cuda:12.5.1-devel-ubuntu24.04 rm -f /usr/bin/cpp /etc/alternatives/cpp From 7e5e143de5adbe5bfb2221bb428e6574e15968a0 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sat, 23 May 2026 17:30:14 -0500 Subject: [PATCH 7/7] fix: use eic-spack with cling CMake fix for external LLVM Point to eic/eic-spack#932 which guards the BEFORE flag in interpreter/cling/CMakeLists.txt include_directories to only apply when builtin_llvm=ON. With external LLVM, the unconditional BEFORE caused LLVM's libc++abi cxxabi.h to shadow GCC 14's cxxabi.h, producing a conflicting declaration of __cxa_init_primary_exception. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- eic-spack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eic-spack.sh b/eic-spack.sh index bfed8ed9..f0c466df 100644 --- a/eic-spack.sh +++ b/eic-spack.sh @@ -5,4 +5,4 @@ EICSPACK_ORGREPO="eic/eic-spack" ## EIC spack commit hash or github version, e.g. v0.19.7 ## note: nightly builds could use a branch e.g. releases/v0.19 -EICSPACK_VERSION="8ee145fad9aa0b0f24751c91716827b859b8c2d1" +EICSPACK_VERSION="e95447a59f560fedd6c6a2a91804a7ec925e50dc"