@@ -140,6 +140,9 @@ def parse_hook(ec, *args, **kwargs):
140140 if cpu_target == CPU_TARGET_ZEN4 :
141141 parse_hook_zen4_module_only (ec , eprefix )
142142
143+ # All A64FX builds for the 2022b toolchain should use a newer Rust version, as the original one does not work
144+ parse_hook_bump_rust_version_in_2022b_for_a64fx (ec , eprefix )
145+
143146 # inject the GPU property (if required)
144147 ec = inject_gpu_property (ec )
145148
@@ -434,6 +437,27 @@ def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix):
434437 raise EasyBuildError ("OpenBLAS-specific hook triggered for non-OpenBLAS easyconfig?!" )
435438
436439
440+ def parse_hook_bump_rust_version_in_2022b_for_a64fx (ec , eprefix ):
441+ """
442+ Replace Rust 1.65.0 build dependency by version 1.75.0 for A64FX builds,
443+ because version 1.65.0 has build issues.
444+ """
445+ cpu_target = get_eessi_envvar ('EESSI_SOFTWARE_SUBDIR' )
446+ if cpu_target == CPU_TARGET_A64FX
447+ if is_gcccore_1220_based (ecname = ec ['name' ], ecversion = ec ['version' ],
448+ tcname = ec ['toolchain' ]['name' ], tcversion = ec ['toolchain' ]['version' ]):
449+
450+ build_deps = ec ['builddependencies' ]
451+ print (build_deps )
452+ rust_name = 'Rust'
453+ rust_original_version = '1.65.0'
454+ rust_new_version = '1.75.0'
455+ for idx , build_dep in enumerate (build_deps ):
456+ if build_dep [0 ] == rust_name and build_dep [1 ] == rust_original_version :
457+ build_deps [idx ] = (rust_name , rust_new_version )
458+ break
459+
460+
437461def parse_hook_pybind11_replace_catch2 (ec , eprefix ):
438462 """
439463 Replace Catch2 build dependency in pybind11 easyconfigs with one that doesn't use system toolchain.
0 commit comments