|
21 | 21 |
|
22 | 22 |
|
23 | 23 | CPU_TARGET_NEOVERSE_V1 = 'aarch64/neoverse_v1' |
24 | | -CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic' |
| 24 | +CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic' |
25 | 25 |
|
26 | 26 | EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs' |
27 | 27 |
|
@@ -160,6 +160,32 @@ def post_prepare_hook(self, *args, **kwargs): |
160 | 160 | POST_PREPARE_HOOKS[self.name](self, *args, **kwargs) |
161 | 161 |
|
162 | 162 |
|
| 163 | +def parse_hook_casacore_disable_vectorize(ec, eprefix): |
| 164 | + """ |
| 165 | + Disable 'vectorize' toolchain option for casacore 3.5.0 on aarch64/neoverse_v1 |
| 166 | + Compiling casacore 3.5.0 with GCC 13.2.0 (foss-2023b) gives an error when building for aarch64/neoverse_v1. |
| 167 | + See also, https://github.com/EESSI/software-layer/pull/479 |
| 168 | + """ |
| 169 | + if ec.name == 'casacore': |
| 170 | + tcname, tcversion = ec['toolchain']['name'], ec['toolchain']['version'] |
| 171 | + if ( |
| 172 | + LooseVersion(ec.version) == LooseVersion('3.5.0') and |
| 173 | + tcname == 'foss' and tcversion == '2023b' |
| 174 | + ): |
| 175 | + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') |
| 176 | + if cpu_target == CPU_TARGET_NEOVERSE_V1: |
| 177 | + if not hasattr(ec, 'toolchainopts'): |
| 178 | + ec['toolchainopts'] = {} |
| 179 | + ec['toolchainopts']['vectorize'] = False |
| 180 | + print_msg("Changed toochainopts for %s: %s", ec.name, ec['toolchainopts']) |
| 181 | + else: |
| 182 | + print_msg("Not changing option vectorize for %s on non-neoverse_v1", ec.name) |
| 183 | + else: |
| 184 | + print_msg("Not changing option vectorize for %s %s %s", ec.name, ec.version, ec.toolchain) |
| 185 | + else: |
| 186 | + raise EasyBuildError("casacore-specific hook triggered for non-casacore easyconfig?!") |
| 187 | + |
| 188 | + |
163 | 189 | def parse_hook_cgal_toolchainopts_precise(ec, eprefix): |
164 | 190 | """Enable 'precise' rather than 'strict' toolchain option for CGAL on POWER.""" |
165 | 191 | if ec.name == 'CGAL': |
@@ -327,7 +353,7 @@ def pre_configure_hook_wrf_aarch64(self, *args, **kwargs): |
327 | 353 | if LooseVersion(self.version) <= LooseVersion('3.9.0'): |
328 | 354 | self.cfg.update('preconfigopts', "sed -i 's/%s/%s/g' arch/configure_new.defaults && " % (pattern, repl)) |
329 | 355 | print_msg("Using custom preconfigopts for %s: %s", self.name, self.cfg['preconfigopts']) |
330 | | - |
| 356 | + |
331 | 357 | if LooseVersion('4.0.0') <= LooseVersion(self.version) <= LooseVersion('4.2.1'): |
332 | 358 | self.cfg.update('preconfigopts', "sed -i 's/%s/%s/g' arch/configure.defaults && " % (pattern, repl)) |
333 | 359 | print_msg("Using custom preconfigopts for %s: %s", self.name, self.cfg['preconfigopts']) |
@@ -414,7 +440,7 @@ def pre_test_hook_ignore_failing_tests_netCDF(self, *args, **kwargs): |
414 | 440 | """ |
415 | 441 | cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') |
416 | 442 | if self.name == 'netCDF' and self.version == '4.9.2' and cpu_target == CPU_TARGET_NEOVERSE_V1: |
417 | | - self.cfg['testopts'] = "|| echo ignoring failing tests" |
| 443 | + self.cfg['testopts'] = "|| echo ignoring failing tests" |
418 | 444 |
|
419 | 445 | def pre_test_hook_increase_max_failed_tests_arm_PyTorch(self, *args, **kwargs): |
420 | 446 | """ |
@@ -579,6 +605,7 @@ def inject_gpu_property(ec): |
579 | 605 |
|
580 | 606 |
|
581 | 607 | PARSE_HOOKS = { |
| 608 | + 'casacore': parse_hook_casacore_disable_vectorize, |
582 | 609 | 'CGAL': parse_hook_cgal_toolchainopts_precise, |
583 | 610 | 'fontconfig': parse_hook_fontconfig_add_fonts, |
584 | 611 | 'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors, |
|
0 commit comments