@@ -151,7 +151,6 @@ def is_gcccore_1220_based(**kwargs):
151151 )
152152
153153
154-
155154def get_cuda_version (ec , check_deps = True , check_builddeps = True ):
156155 """
157156 Returns the CUDA version that this EasyConfig (ec) uses as a (build)dependency.
@@ -632,6 +631,24 @@ def parse_hook_qt5_check_qtwebengine_disable(ec, eprefix):
632631 raise EasyBuildError ("Qt5-specific hook triggered for non-Qt5 easyconfig?!" )
633632
634633
634+ def parse_hook_maturin (ec , eprefix ):
635+ """
636+ Replace build dependency on Rust 1.88.0 by 1.91.1,
637+ as 1.88.0 causes segmentation faults on A64FX.
638+ cfr. https://github.com/EESSI/software-layer/pull/1357
639+ """
640+ if ec .name == 'maturin' :
641+ if ec .version == '1.9.1' :
642+ orig_rust = ('Rust' , '1.88.0' )
643+ new_rust = ('Rust' , '1.91.1' )
644+ if orig_rust in ec ['builddependencies' ]:
645+ rust_index = ec ['builddependencies' ].index (orig_rust )
646+ ec ['builddependencies' ][rust_index ] = new_rust
647+ print_msg (f"Replaced { orig_rust } build dependency by { new_rust } for { ec .name } { ec .version } " )
648+ else :
649+ raise EasyBuildError ("maturin-specific hook triggered for non-maturin easyconfig?!" )
650+
651+
635652def parse_hook_ucx_eprefix (ec , eprefix ):
636653 """Make UCX aware of compatibility layer via additional configuration options."""
637654 if ec .name == 'UCX' :
@@ -1818,6 +1835,7 @@ def post_easyblock_hook(self, *args, **kwargs):
18181835 'fontconfig' : parse_hook_fontconfig_add_fonts ,
18191836 'FreeImage' : parse_hook_freeimage_aarch64 ,
18201837 'grpcio' : parse_hook_grpcio_zlib ,
1838+ 'maturin' : parse_hook_maturin ,
18211839 'Mesa' : parse_hook_mesa_use_llvm_minimal ,
18221840 'OpenBLAS' : parse_hook_openblas_relax_lapack_tests_num_errors ,
18231841 'pybind11' : parse_hook_pybind11_replace_catch2 ,
0 commit comments