From 696e6ebff695921c535e743b235350ee6f3669f6 Mon Sep 17 00:00:00 2001 From: crivella Date: Fri, 30 Oct 2026 11:01:46 +0100 Subject: [PATCH 1/2] Add hook to fix CoordgenLibs build on a64fx with GCC 15.x --- eb_hooks.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index 5a701c74..a72c6601 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1164,6 +1164,28 @@ def pre_prepare_hook_llvm_a64fx(self, *args, **kwargs): update_build_option('optarch', 'march=armv8.2-a') +def pre_prepare_hook_coordgenlibs_a64fx(self, *args, **kwargs): + """ + Solve issues with compiling coordgenlibs on a64fx with the 2026.1 stack. The specific error is: + ``` + immediate offset out of range 0 to 31 at operand 3 -- `st1b z30.d,p7,[z31.d,#40]' + ``` + - https://github.com/EESSI/software-layer/pull/1829#issuecomment-6510125464 + This was also observed previously with LLVM and Rus+LLVM builds on older stacks. See eg: + - https://github.com/EESSI/software-layer/issues/1213 + - https://github.com/EESSI/software-layer/issues/1213 + - https://github.com/EESSI/software-layer/pull/1177 + """ + if self.name == 'CoordgenLibs': + eessi_version = get_eessi_envvar('EESSI_VERSION') + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') + if eessi_version == '2026.06' and cpu_target == CPU_TARGET_A64FX: + self.orig_optarch = build_option('optarch') + update_build_option('optarch', '-march=armv8.2-a') + else: + raise EasyBuildError("CoordgenLibs-specific hook triggered for non-CoordgenLibs easyconfig?!") + + def pre_prepare_hook_pytorch(self, *args, **kwargs): """ Solve PyTorch test failures due to: @@ -1286,6 +1308,19 @@ def post_prepare_hook_llvm_a64fx(self, *args, **kwargs): update_build_option('optarch', self.orig_optarch) +def post_prepare_hook_coordgenlibs_a64fx(self, *args, **kwargs): + """ + Reset the optarch build option for coordgenlibs on a64fx with the 2026.1 stack. + """ + if self.name == 'CoordgenLibs': + eessi_version = get_eessi_envvar('EESSI_VERSION') + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') + if eessi_version == '2026.06' and cpu_target == CPU_TARGET_A64FX: + update_build_option('optarch', self.orig_optarch) + else: + raise EasyBuildError("CoordgenLibs-specific hook triggered for non-CoordgenLibs easyconfig?!") + + def pre_configure_hook(self, *args, **kwargs): """Main pre-configure hook: trigger custom functions based on software name.""" if self.name in PRE_CONFIGURE_HOOKS: @@ -2701,12 +2736,14 @@ def post_easyblock_hook(self, *args, **kwargs): 'Highway': pre_prepare_hook_highway_handle_test_compilation_issues, 'LAMMPS': pre_prepare_hook_LAMMPS_kokkos_CUDA_families, 'LLVM': pre_prepare_hook_llvm_a64fx, + 'CoordgenLibs': pre_prepare_hook_coordgenlibs_a64fx, 'PyTorch': pre_prepare_hook_pytorch, 'Rust': pre_prepare_hook_llvm_a64fx, 'uv': pre_prepare_hook_uv_source_date_epoch, } POST_PREPARE_HOOKS = { + 'CoordgenLibs': post_prepare_hook_coordgenlibs_a64fx, 'GCCcore': post_prepare_hook_gcc_prefixed_ld_rpath_wrapper, 'Highway': post_prepare_hook_highway_handle_test_compilation_issues, 'LLVM': post_prepare_hook_llvm_a64fx, From 3e843d8b65ac19f899e8f2ad0423e45254538849 Mon Sep 17 00:00:00 2001 From: Davide Grassano <34096612+Crivella@users.noreply.github.com> Date: Fri, 30 Oct 2026 14:14:40 +0100 Subject: [PATCH 2/2] Update eb_hooks.py Co-authored-by: ocaisa --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index a72c6601..fd3aed75 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1171,7 +1171,7 @@ def pre_prepare_hook_coordgenlibs_a64fx(self, *args, **kwargs): immediate offset out of range 0 to 31 at operand 3 -- `st1b z30.d,p7,[z31.d,#40]' ``` - https://github.com/EESSI/software-layer/pull/1829#issuecomment-6510125464 - This was also observed previously with LLVM and Rus+LLVM builds on older stacks. See eg: + This was also observed previously with LLVM and Rust+LLVM builds on older stacks. See eg: - https://github.com/EESSI/software-layer/issues/1213 - https://github.com/EESSI/software-layer/issues/1213 - https://github.com/EESSI/software-layer/pull/1177