From a8a366ec1b7af9b6dbeb9b02b614160ea451bb5d Mon Sep 17 00:00:00 2001 From: julianmorillo Date: Thu, 16 Apr 2026 14:38:44 +0200 Subject: [PATCH 01/13] Add pre-configure hook for Dyninst --- eb_hooks.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index 50d37a91..a72038f5 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1110,6 +1110,31 @@ def pre_configure_hook_score_p(self, *args, **kwargs): raise EasyBuildError("Score-P-specific hook triggered for non-Score-P easyconfig?!") +def pre_configure_hook_dyninst(self, *args, **kwargs): + """ + Pre-configure hook for Dyninst + - specify correct path to binutils (in compat layer) + """ + if self.name == 'Dyninst': + + # determine path to Prefix installation in compat layer via $EPREFIX + eprefix = get_eessi_envvar('EPREFIX') + + binutils_lib_path_glob_pattern = os.path.join(eprefix, 'usr', 'lib*', 'binutils', '*-linux-gnu', '2.*') + binutils_lib_path = glob.glob(binutils_lib_path_glob_pattern) + if len(binutils_lib_path) == 1: + print_msg("Defining LibIberty variables for Dyninst...") + self.cfg.update('configopts', '-DLibIberty_ROOT_DIR=' + binutils_lib_path[0]) + self.cfg.update('configopts', '-DLibIberty_INCLUDE_DIRS=' + os.path.join(binutils_lib_path[0], 'include')) + self.cfg.update('configopts', '-DLibIberty_LIBRARIES=' + binutils_lib_path[0]) + else: + raise EasyBuildError("Failed to isolate path for binutils libraries using %s, got %s", + binutils_lib_path_glob_pattern, binutils_lib_path) + + else: + raise EasyBuildError("Dyninst-specific hook triggered for non-Dyninst easyconfig?!") + + def pre_configure_hook_extrae(self, *args, **kwargs): """ Pre-configure hook for Extrae @@ -1987,6 +2012,7 @@ def pre_run_shell_cmd_hook(cmd, work_dir=None, **kwargs): 'WRF': pre_configure_hook_wrf_aarch64, 'LAMMPS': pre_configure_hook_LAMMPS_zen4_and_aarch64_cuda, 'Score-P': pre_configure_hook_score_p, + 'Dyninst': pre_configure_hook_dyninst, 'CMake': pre_configure_hook_cmake_system, } From def63dc524c1e9c0eb1dac44a696e6623cfd62d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 16:35:10 +0200 Subject: [PATCH 02/13] add easystack --- .../riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml diff --git a/easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml b/easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml new file mode 100644 index 00000000..9be6d8a7 --- /dev/null +++ b/easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml @@ -0,0 +1,5 @@ +easyconfigs: + - Dyninst-13.0.0-GCC-14.3.0.eb: + options: + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/25765 + from-commit: 0e8c07b596b222acaa78409f3ec90a8da6857e27 From fcbd1368a04d14c95aed40d0262f00bac62e8d08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 16:44:37 +0200 Subject: [PATCH 03/13] don't use hooks file from CVMFS --- EESSI-install-software.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 2c674ae8..a56661fc 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -318,6 +318,8 @@ echo "DEBUG: before loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_I source $TOPDIR/load_eessi_extend_module.sh ${EESSI_VERSION} echo "DEBUG: after loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'" +export EASYBUILD_HOOKS=$TOPDIR/eb_hooks.py + # Install full CUDA SDK and cu* libraries in host_injections # (This is done *before* configuring EasyBuild as it may rely on an older EB version) # Hardcode this for now, see if it works From 57293876b79ed142cc051df2d385361c9b451f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 17:02:31 +0200 Subject: [PATCH 04/13] override EASYBUILD_HOOKS later --- EESSI-install-software.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index a56661fc..ae73242d 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -318,8 +318,6 @@ echo "DEBUG: before loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_I source $TOPDIR/load_eessi_extend_module.sh ${EESSI_VERSION} echo "DEBUG: after loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'" -export EASYBUILD_HOOKS=$TOPDIR/eb_hooks.py - # Install full CUDA SDK and cu* libraries in host_injections # (This is done *before* configuring EasyBuild as it may rely on an older EB version) # Hardcode this for now, see if it works @@ -398,6 +396,8 @@ else # load EasyBuild module (will be installed if it's not available yet) source ${TOPDIR}/load_easybuild_module.sh ${eb_version} + export EASYBUILD_HOOKS=$TOPDIR/eb_hooks.py + ${EB} --show-config echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..." From 835d2c3a09a44fb5575903f897c00a083e480419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 17:10:20 +0200 Subject: [PATCH 05/13] alternative approach: copy files unconditionally --- EESSI-install-software.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index ae73242d..307d1b67 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -214,6 +214,7 @@ export PR_DIFF="$PWD/$pr_diff" if [[ -z ${EESSI_DEV_PROJECT} ]]; then ${TOPDIR}/install_scripts.sh --prefix ${EESSI_CVMFS_REPO}/versions/${EESSI_VERSION} --eessi-version ${EESSI_VERSION} fi +${TOPDIR}/install_scripts.sh --prefix /cvmfs/software.eessi.io/versions/2025.06 --eessi-version 2025.06 # Make sure we start with no modules and clean $MODULEPATH echo ">> Setting up \$MODULEPATH..." @@ -396,8 +397,6 @@ else # load EasyBuild module (will be installed if it's not available yet) source ${TOPDIR}/load_easybuild_module.sh ${eb_version} - export EASYBUILD_HOOKS=$TOPDIR/eb_hooks.py - ${EB} --show-config echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..." From 20a575a05b0fc0901f28630abb853e22178acd71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 17:11:07 +0200 Subject: [PATCH 06/13] won't work either... --- EESSI-install-software.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 307d1b67..2c674ae8 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -214,7 +214,6 @@ export PR_DIFF="$PWD/$pr_diff" if [[ -z ${EESSI_DEV_PROJECT} ]]; then ${TOPDIR}/install_scripts.sh --prefix ${EESSI_CVMFS_REPO}/versions/${EESSI_VERSION} --eessi-version ${EESSI_VERSION} fi -${TOPDIR}/install_scripts.sh --prefix /cvmfs/software.eessi.io/versions/2025.06 --eessi-version 2025.06 # Make sure we start with no modules and clean $MODULEPATH echo ">> Setting up \$MODULEPATH..." From e65c01d27152697cd305c26482ed94efc63272d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 17:11:37 +0200 Subject: [PATCH 07/13] delete easystack --- .../riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml diff --git a/easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml b/easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml deleted file mode 100644 index 9be6d8a7..00000000 --- a/easystacks/riscv/2025.06-001/eessi-2025.06-eb-5.3.0-2025b.yml +++ /dev/null @@ -1,5 +0,0 @@ -easyconfigs: - - Dyninst-13.0.0-GCC-14.3.0.eb: - options: - # see https://github.com/easybuilders/easybuild-easyconfigs/pull/25765 - from-commit: 0e8c07b596b222acaa78409f3ec90a8da6857e27 From a7cf48300150df6fb6ebb056298ff4ca63e6e0c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 17:14:55 +0200 Subject: [PATCH 08/13] use hooks file from git --- EESSI-install-software.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index 2c674ae8..ae73242d 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -396,6 +396,8 @@ else # load EasyBuild module (will be installed if it's not available yet) source ${TOPDIR}/load_easybuild_module.sh ${eb_version} + export EASYBUILD_HOOKS=$TOPDIR/eb_hooks.py + ${EB} --show-config echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..." From fa404027135bdd667c1f46e42e842b1545dd63ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 16 Apr 2026 19:50:05 +0200 Subject: [PATCH 09/13] add path to libiberty.a to LibIberty_LIBRARIES --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index a72038f5..4bcab664 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1126,7 +1126,7 @@ def pre_configure_hook_dyninst(self, *args, **kwargs): print_msg("Defining LibIberty variables for Dyninst...") self.cfg.update('configopts', '-DLibIberty_ROOT_DIR=' + binutils_lib_path[0]) self.cfg.update('configopts', '-DLibIberty_INCLUDE_DIRS=' + os.path.join(binutils_lib_path[0], 'include')) - self.cfg.update('configopts', '-DLibIberty_LIBRARIES=' + binutils_lib_path[0]) + self.cfg.update('configopts', '-DLibIberty_LIBRARIES=' + os.path.join(binutils_lib_path[0], 'libiberty.a')) else: raise EasyBuildError("Failed to isolate path for binutils libraries using %s, got %s", binutils_lib_path_glob_pattern, binutils_lib_path) From 9a984ba76049974b736152f33902ce5f442ce8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 17 Apr 2026 14:38:34 +0200 Subject: [PATCH 10/13] add easystack --- .../2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 "easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" diff --git "a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" "b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" new file mode 100644 index 00000000..6a1f0c78 --- /dev/null +++ "b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" @@ -0,0 +1,2 @@ +easyconfigs: + - Dyninst-13.0.0-GCC-14.3.0.eb From 723eae680cf93a6c9f809857466704e5bf1422e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 17 Apr 2026 14:47:52 +0200 Subject: [PATCH 11/13] remove funny characters from filename --- .../software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" => easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml (100%) diff --git "a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml similarity index 100% rename from "easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml\342\200\216" rename to easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml From 6f35a9bf29e36d660d2b53a2964bf1ce6476e182 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 17 Apr 2026 15:12:50 +0200 Subject: [PATCH 12/13] revert change --- EESSI-install-software.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index ae73242d..2c674ae8 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -396,8 +396,6 @@ else # load EasyBuild module (will be installed if it's not available yet) source ${TOPDIR}/load_easybuild_module.sh ${eb_version} - export EASYBUILD_HOOKS=$TOPDIR/eb_hooks.py - ${EB} --show-config echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..." From d85b3d5a352bd495624c62531f728cb87f2eec08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 17 Apr 2026 15:13:07 +0200 Subject: [PATCH 13/13] remove easystack --- .../software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml diff --git a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml b/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml deleted file mode 100644 index 6a1f0c78..00000000 --- a/easystacks/software.eessi.io/2025.06/eessi-2025.06-eb-5.3.0-2025b.yml +++ /dev/null @@ -1,2 +0,0 @@ -easyconfigs: - - Dyninst-13.0.0-GCC-14.3.0.eb