From 734c1ae80581785ad611787743f261fcfba8e718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 23 Sep 2025 09:44:36 +0200 Subject: [PATCH 1/3] add parse hook that replaces build dep on Rust 1.65.0 by 1.75.0 on A64FX --- eb_hooks.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index adcafc72..15dbf303 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -140,6 +140,9 @@ def parse_hook(ec, *args, **kwargs): if cpu_target == CPU_TARGET_ZEN4: parse_hook_zen4_module_only(ec, eprefix) + # All A64FX builds for the 2022b toolchain should use a newer Rust version, as the original one does not work + parse_hook_bump_rust_version_in_2022b_for_a64fx(ec, eprefix) + # inject the GPU property (if required) ec = inject_gpu_property(ec) @@ -434,6 +437,27 @@ def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix): raise EasyBuildError("OpenBLAS-specific hook triggered for non-OpenBLAS easyconfig?!") +def parse_hook_bump_rust_version_in_2022b_for_a64fx(ec, eprefix): + """ + Replace Rust 1.65.0 build dependency by version 1.75.0 for A64FX builds, + because version 1.65.0 has build issues. + """ + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') + if cpu_target == CPU_TARGET_A64FX + if is_gcccore_1220_based(ecname=ec['name'], ecversion=ec['version'], + tcname=ec['toolchain']['name'], tcversion=ec['toolchain']['version']): + + build_deps = ec['builddependencies'] + print(build_deps) + rust_name = 'Rust' + rust_original_version = '1.65.0' + rust_new_version = '1.75.0' + for idx, build_dep in enumerate(build_deps): + if build_dep[0] == rust_name and build_dep[1] == rust_original_version: + build_deps[idx] = (rust_name, rust_new_version) + break + + def parse_hook_pybind11_replace_catch2(ec, eprefix): """ Replace Catch2 build dependency in pybind11 easyconfigs with one that doesn't use system toolchain. From 711f7f930edf513c1120848130e2a2bceb2a2c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 23 Sep 2025 09:45:39 +0200 Subject: [PATCH 2/3] add missing colon --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 15dbf303..9201330a 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -443,7 +443,7 @@ def parse_hook_bump_rust_version_in_2022b_for_a64fx(ec, eprefix): because version 1.65.0 has build issues. """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if cpu_target == CPU_TARGET_A64FX + if cpu_target == CPU_TARGET_A64FX: if is_gcccore_1220_based(ecname=ec['name'], ecversion=ec['version'], tcname=ec['toolchain']['name'], tcversion=ec['toolchain']['version']): From f2b40e1672a663e1152db211f89438656c767ed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 23 Sep 2025 09:56:05 +0200 Subject: [PATCH 3/3] remove print statement --- eb_hooks.py | 1 - 1 file changed, 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 9201330a..f3b02ddd 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -448,7 +448,6 @@ def parse_hook_bump_rust_version_in_2022b_for_a64fx(ec, eprefix): tcname=ec['toolchain']['name'], tcversion=ec['toolchain']['version']): build_deps = ec['builddependencies'] - print(build_deps) rust_name = 'Rust' rust_original_version = '1.65.0' rust_new_version = '1.75.0'