@@ -154,6 +154,9 @@ def parse_hook(ec, *args, **kwargs):
154154 if cpu_target == CPU_TARGET_ZEN4 :
155155 parse_hook_zen4_module_only (ec , eprefix )
156156
157+ # All A64FX builds for the 2022b toolchain should use a newer Rust version, as the original one does not work
158+ parse_hook_bump_rust_version_in_2022b_for_a64fx (ec , eprefix )
159+
157160 # inject the GPU property (if required)
158161 ec = inject_gpu_property (ec )
159162
@@ -448,6 +451,26 @@ def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix):
448451 raise EasyBuildError ("OpenBLAS-specific hook triggered for non-OpenBLAS easyconfig?!" )
449452
450453
454+ def parse_hook_bump_rust_version_in_2022b_for_a64fx (ec , eprefix ):
455+ """
456+ Replace Rust 1.65.0 build dependency by version 1.75.0 for A64FX builds,
457+ because version 1.65.0 has build issues.
458+ """
459+ cpu_target = get_eessi_envvar ('EESSI_SOFTWARE_SUBDIR' )
460+ if cpu_target == CPU_TARGET_A64FX :
461+ if is_gcccore_1220_based (ecname = ec ['name' ], ecversion = ec ['version' ],
462+ tcname = ec ['toolchain' ]['name' ], tcversion = ec ['toolchain' ]['version' ]):
463+
464+ build_deps = ec ['builddependencies' ]
465+ rust_name = 'Rust'
466+ rust_original_version = '1.65.0'
467+ rust_new_version = '1.75.0'
468+ for idx , build_dep in enumerate (build_deps ):
469+ if build_dep [0 ] == rust_name and build_dep [1 ] == rust_original_version :
470+ build_deps [idx ] = (rust_name , rust_new_version )
471+ break
472+
473+
451474def parse_hook_pybind11_replace_catch2 (ec , eprefix ):
452475 """
453476 Replace Catch2 build dependency in pybind11 easyconfigs with one that doesn't use system toolchain.
0 commit comments