Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions EESSI-install-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -203,12 +203,16 @@ ${EESSI_PREFIX}/scripts/gpu_support/nvidia/install_cuda_host_injections.sh -c 12
# ${EESSI_PREFIX}/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh

# use PR patch file to determine in which easystack files stuff was added
changed_easystacks=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep '^easystacks/.*yml$' | egrep -v 'known-issues|missing')
if [ -z ${changed_easystacks} ]; then
# Get rebuild easystacks seperately, so they can be rebuild first.
# This avoids missing dependencies when the regular EasyStacks are built.
changed_easystacks_rebuilds=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep '^easystacks/.*yml$' | egrep -v 'known-issues|missing' | grep "/rebuilds/")
changed_easystacks=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep '^easystacks/.*yml$' | egrep -v 'known-issues|missing' | grep -v "/rebuilds/")
all_changed_easystacks="${changed_easystacks_rebuilds} ${changed_easystacks}"
if [ -z "${all_changed_easystacks}" ]; then
echo "No missing installations, party time!" # Ensure the bot report success, as there was nothing to be build here
else

for easystack_file in ${changed_easystacks}; do
for easystack_file in ${all_changed_easystacks}; do

echo -e "Processing easystack file ${easystack_file}...\n\n"

Expand Down
2 changes: 1 addition & 1 deletion EESSI-remove-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ pr_diff=$(ls [0-9]*.diff | head -1)
# if this script is run as root, use PR patch file to determine if software needs to be removed first
if [ $EUID -eq 0 ]; then
changed_easystacks_rebuilds=$(cat ${pr_diff} | grep '^+++' | cut -f2 -d' ' | sed 's@^[a-z]/@@g' | grep '^easystacks/.*yml$' | egrep -v 'known-issues|missing' | grep "/rebuilds/")
if [ -z ${changed_easystacks_rebuilds} ]; then
if [ -z "${changed_easystacks_rebuilds}" ]; then
echo "No software needs to be removed."
else
for easystack_file in ${changed_easystacks_rebuilds}; do
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,13 @@ easyconfigs:
from-pr: 20126
- OpenJPEG-2.5.0-GCCcore-12.3.0.eb
- OpenFOAM-10-foss-2023a.eb
- SuperLU_DIST-8.1.2-foss-2023a.eb:
options:
from-pr: 20162
- PETSc-3.20.3-foss-2023a.eb:
options:
include-easyblocks-from-pr: 3086
from-pr: 19686
- MODFLOW-6.4.4-foss-2023a.eb:
options:
from-pr: 20142
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 2024-03-26
# Rebuild GCCcore to fix a compiler bug in the tree-vectorizer
# We encountered it in https://github.com/EESSI/software-layer/pull/479#issuecomment-1957091774
# and https://github.com/EESSI/software-layer/pull/507#issuecomment-2011724613
# Upstream issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111478
# Upstream fix: https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=e5f1956498251a4973d52c8aad3faf34d0443169
# Fix in EasyBuild https://github.com/easybuilders/easybuild-easyconfigs/pull/19974
# https://github.com/easybuilders/easybuild-easyconfigs/pull/20218
easyconfigs:
- GCCcore-12.3.0.eb:
options:
from-pr: 20218
- GCCcore-13.2.0.eb:
options:
from-pr: 19974
- casacore-3.5.0-foss-2023b.eb:
options:
from-pr: 19840
include-easyblocks-from-pr: 3088
27 changes: 0 additions & 27 deletions eb_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,32 +160,6 @@ def post_prepare_hook(self, *args, **kwargs):
POST_PREPARE_HOOKS[self.name](self, *args, **kwargs)


def parse_hook_casacore_disable_vectorize(ec, eprefix):
"""
Disable 'vectorize' toolchain option for casacore 3.5.0 on aarch64/neoverse_v1
Compiling casacore 3.5.0 with GCC 13.2.0 (foss-2023b) gives an error when building for aarch64/neoverse_v1.
See also, https://github.com/EESSI/software-layer/pull/479
"""
if ec.name == 'casacore':
tcname, tcversion = ec['toolchain']['name'], ec['toolchain']['version']
if (
LooseVersion(ec.version) == LooseVersion('3.5.0') and
tcname == 'foss' and tcversion == '2023b'
):
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
if cpu_target == CPU_TARGET_NEOVERSE_V1:
if not hasattr(ec, 'toolchainopts'):
ec['toolchainopts'] = {}
ec['toolchainopts']['vectorize'] = False
print_msg("Changed toochainopts for %s: %s", ec.name, ec['toolchainopts'])
else:
print_msg("Not changing option vectorize for %s on non-neoverse_v1", ec.name)
else:
print_msg("Not changing option vectorize for %s %s %s", ec.name, ec.version, ec.toolchain)
else:
raise EasyBuildError("casacore-specific hook triggered for non-casacore easyconfig?!")


def parse_hook_cgal_toolchainopts_precise(ec, eprefix):
"""Enable 'precise' rather than 'strict' toolchain option for CGAL on POWER."""
if ec.name == 'CGAL':
Expand Down Expand Up @@ -605,7 +579,6 @@ def inject_gpu_property(ec):


PARSE_HOOKS = {
'casacore': parse_hook_casacore_disable_vectorize,
'CGAL': parse_hook_cgal_toolchainopts_precise,
'fontconfig': parse_hook_fontconfig_add_fonts,
'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors,
Expand Down