From f629ea3f862800e9ec06cf4d2b321282f72b5bcf Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Fri, 19 Jul 2024 21:17:18 +0000 Subject: [PATCH 1/7] updated v5.0.4 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 4578cdd..5e6cbbd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,7 +1,7 @@ -{% set version = "5.0.3" %} +{% set version = "5.0.4" %} {% set major = version.rpartition('.')[0] %} {% set cuda_major = (cuda_compiler_version|default("11.8")).rpartition('.')[0] %} -{% set build = 10 %} +{% set build = 0 %} # give conda package a higher build number {% if mpi_type == 'conda' %} @@ -16,7 +16,7 @@ package: source: fn: openmpi-{{ version }}.tar.bz2 url: https://www.open-mpi.org/software/ompi/v{{ major }}/downloads/openmpi-{{ version }}.tar.bz2 - sha256: 990582f206b3ab32e938aa31bbf07c639368e4405dca196fabe7f0f76eeda90b + sha256: 64526852cdd88b2d30e022087c16ab3e03806c451b10cd691d5c1ac887d8ef9d build: number: {{ build }} From 5adcced88bcacf89775a7a1f47dfcd6fe3aecc3c Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Fri, 19 Jul 2024 21:19:21 +0000 Subject: [PATCH 2/7] MNT: Re-rendered with conda-build 24.5.1, conda-smithy 3.37.1, and conda-forge-pinning 2024.07.19.18.26.47 --- .scripts/build_steps.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index a5836e8..ba4b251 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -72,7 +72,6 @@ else --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" - ( startgroup "Inspecting artifacts" ) 2> /dev/null # inspect_artifacts was only added in conda-forge-ci-setup 4.6.0 From 3c2f5f7109732c716e66ed08d71027aafba74ca8 Mon Sep 17 00:00:00 2001 From: Lisandro Dalcin Date: Tue, 23 Jul 2024 09:47:25 +0300 Subject: [PATCH 3/7] recipe: Add patch from open-mpi/ompi#12694 --- recipe/meta.yaml | 2 ++ recipe/pr12694.patch | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 recipe/pr12694.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5e6cbbd..ccf6a57 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -17,6 +17,8 @@ source: fn: openmpi-{{ version }}.tar.bz2 url: https://www.open-mpi.org/software/ompi/v{{ major }}/downloads/openmpi-{{ version }}.tar.bz2 sha256: 64526852cdd88b2d30e022087c16ab3e03806c451b10cd691d5c1ac887d8ef9d + patches: + - pr12694.patch build: number: {{ build }} diff --git a/recipe/pr12694.patch b/recipe/pr12694.patch new file mode 100644 index 0000000..e63c346 --- /dev/null +++ b/recipe/pr12694.patch @@ -0,0 +1,24 @@ +From 2085433c0977d37cbd1631fa7695a29de3f578c5 Mon Sep 17 00:00:00 2001 +From: Jeff Squyres +Date: Thu, 6 Jun 2024 11:22:53 -0400 +Subject: [PATCH] aarch64_functions.c: fix trivial typo + +Signed-off-by: Jeff Squyres +(cherry picked from commit 7c5ef484b6f8ee4d13a40e2d6cd84dc11c19c6fe) +--- + ompi/mca/op/aarch64/op_aarch64_functions.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ompi/mca/op/aarch64/op_aarch64_functions.c b/ompi/mca/op/aarch64/op_aarch64_functions.c +index ea4fd488655..d5878913f2f 100644 +--- a/ompi/mca/op/aarch64/op_aarch64_functions.c ++++ b/ompi/mca/op/aarch64/op_aarch64_functions.c +@@ -119,7 +119,7 @@ _Generic((*(out)), \ + int left_over = *count; \ + type##type_size##_t *in = (type##type_size##_t *) _in, \ + *out = (type##type_size##_t *) _out; \ +- OP_CONCAT(OMPI_OP_TYPE_PREPEND, type##type_size####x##type_cnt##_t) vsrc, vdst; \ ++ OP_CONCAT(OMPI_OP_TYPE_PREPEND, type##type_size##x##type_cnt##_t) vsrc, vdst; \ + for (; left_over >= type_cnt; left_over -= type_cnt) { \ + vsrc = vld1q##_##type_name##type_size(in); \ + vdst = vld1q##_##type_name##type_size(out); \ From 30561c7c3e185b45e913e4dd9870ff5fb33ed3f2 Mon Sep 17 00:00:00 2001 From: Min RK Date: Mon, 29 Jul 2024 12:52:42 +0200 Subject: [PATCH 4/7] patch for LDFLAGS typo on mac --- recipe/build-mpi.sh | 2 ++ recipe/ldflags-mac.patch | 31 +++++++++++++++++++++++++++++++ recipe/meta.yaml | 9 ++++++--- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 recipe/ldflags-mac.patch diff --git a/recipe/build-mpi.sh b/recipe/build-mpi.sh index 5ebf122..078c8c2 100755 --- a/recipe/build-mpi.sh +++ b/recipe/build-mpi.sh @@ -14,6 +14,8 @@ unset FFLAGS F77 F90 F95 wrapper_ldflags="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib" export LIBRARY_PATH="$PREFIX/lib" if [[ "$target_platform" == osx-* ]]; then + # FIXME: remove autogen when autotools patch no longer required + perl autogen.pl --force if [[ -n "$CONDA_BUILD_SYSROOT" ]]; then export CFLAGS="$CFLAGS -isysroot $CONDA_BUILD_SYSROOT" export CXXFLAGS="$CXXFLAGS -isysroot $CONDA_BUILD_SYSROOT" diff --git a/recipe/ldflags-mac.patch b/recipe/ldflags-mac.patch new file mode 100644 index 0000000..dcedc7b --- /dev/null +++ b/recipe/ldflags-mac.patch @@ -0,0 +1,31 @@ +From e70f0a4afb1277e52389267777d260229b468ec0 Mon Sep 17 00:00:00 2001 +From: Min RK +Date: Mon, 29 Jul 2024 12:50:59 +0200 +Subject: [PATCH] typo in LDFLAGS_save_xcode variable name + +resulted in effectively overriding LDFLAGS='' on mac +--- + config/ompi_setup_fc.m4 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/config/ompi_setup_fc.m4 b/config/ompi_setup_fc.m4 +index 53c3cd96da..c147bf2b60 100644 +--- a/config/ompi_setup_fc.m4 ++++ b/config/ompi_setup_fc.m4 +@@ -212,11 +212,11 @@ end program + AS_IF([test $xcode_happy -eq 1], + [ # Restore LDFLAFGS + the new flags (i.e., get rid of the + # "-L." we added for this test) +- LDFLAGS="$LDFLAGS_xcode_save $1" ++ LDFLAGS="$LDFLAGS_save_xcode $1" + $2], + [ # If we failed the test, reset LDFLAGS back to its + # original value. +- LDFLAGS=$LDFLAGS_xcode_save ++ LDFLAGS=$LDFLAGS_save_xcode + $3]) + + OPAL_VAR_SCOPE_POP +-- +2.45.0 + diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ccf6a57..4fd8f39 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -18,7 +18,8 @@ source: url: https://www.open-mpi.org/software/ompi/v{{ major }}/downloads/openmpi-{{ version }}.tar.bz2 sha256: 64526852cdd88b2d30e022087c16ab3e03806c451b10cd691d5c1ac887d8ef9d patches: - - pr12694.patch + - pr12694.patch # remove after 5.0.5 + - ldflags-mac.patch # [osx] build: number: {{ build }} @@ -50,8 +51,10 @@ outputs: - {{ compiler('cuda') }} # [cuda_compiler != "None"] - {{ compiler('fortran') }} - {{ stdlib('c') }} - #- autoconf # [unix] - #- automake # [unix] + # FIXME: autotools, perl required for ldflags-mac.patch + - perl # [osx] + - autoconf # [osx] + - automake # [osx] - libtool # [unix] - make # [unix] host: From 3852b259725f1ef85594c1fb14669b6ef7518c5b Mon Sep 17 00:00:00 2001 From: Min RK Date: Mon, 29 Jul 2024 13:26:18 +0200 Subject: [PATCH 5/7] use --with-mpi-moduledir to put mods in include official, no longer need symlinks --- recipe/build-mpi.sh | 8 +------- recipe/run_test.sh | 2 -- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/recipe/build-mpi.sh b/recipe/build-mpi.sh index 078c8c2..7d8979e 100755 --- a/recipe/build-mpi.sh +++ b/recipe/build-mpi.sh @@ -63,6 +63,7 @@ fi --enable-mpi-fortran \ --disable-wrapper-rpath \ --disable-wrapper-runpath \ + --with-mpi-moduledir="$PREFIX/include" \ --with-wrapper-cflags="-I$PREFIX/include" \ --with-wrapper-cxxflags="-I$PREFIX/include" \ --with-wrapper-fcflags="-I$PREFIX/include" \ @@ -80,13 +81,6 @@ fi make -j"${CPU_COUNT:-1}" make install -# openmpi installs .mod files in the wrong prefix (/lib instead of /include) -# symlink instead of copy to avoid breaking anything (unlikely) -for f in $PREFIX/lib/*.mod; do - modname=$(basename "$f") - ln -sv "../lib/${modname}" "$PREFIX/include/${modname}" -done - POST_LINK=$PREFIX/bin/.openmpi-post-link.sh if [ -n "$build_with_ucx" ]; then echo "setting MCA pml to ^ucx..." diff --git a/recipe/run_test.sh b/recipe/run_test.sh index 38c4a0c..e03f4f6 100755 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -28,8 +28,6 @@ if [[ $PKG_NAME == "openmpi" ]]; then $MPIEXEC -n 4 ./helloworld.sh test -f $PREFIX/include/mpi.mod - # keep duplicates in original location for now - test -f $PREFIX/lib/mpi.mod fi if [[ $PKG_NAME == "openmpi-mpicc" ]]; then From 1cee4bdeea70c26033866384b3f1f2ad06cc1feb Mon Sep 17 00:00:00 2001 From: Min RK Date: Tue, 30 Jul 2024 08:21:47 +0200 Subject: [PATCH 6/7] use internal ${includedir} variable for moduledir Co-authored-by: Lisandro Dalcin --- recipe/build-mpi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/build-mpi.sh b/recipe/build-mpi.sh index 7d8979e..749e567 100755 --- a/recipe/build-mpi.sh +++ b/recipe/build-mpi.sh @@ -63,7 +63,7 @@ fi --enable-mpi-fortran \ --disable-wrapper-rpath \ --disable-wrapper-runpath \ - --with-mpi-moduledir="$PREFIX/include" \ + --with-mpi-moduledir='${includedir}' \ --with-wrapper-cflags="-I$PREFIX/include" \ --with-wrapper-cxxflags="-I$PREFIX/include" \ --with-wrapper-fcflags="-I$PREFIX/include" \ From 9dbe6f21e8cbd70d6ad36219529614beca125e0a Mon Sep 17 00:00:00 2001 From: Lisandro Dalcin Date: Tue, 30 Jul 2024 12:44:30 +0300 Subject: [PATCH 7/7] recipe: simplify configuration of MPI compiler wrapper flags --- recipe/build-mpi.sh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/recipe/build-mpi.sh b/recipe/build-mpi.sh index 749e567..e8e364d 100755 --- a/recipe/build-mpi.sh +++ b/recipe/build-mpi.sh @@ -11,7 +11,6 @@ export FC=$(basename "$FC") unset FFLAGS F77 F90 F95 # tweak compiler flags -wrapper_ldflags="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib" export LIBRARY_PATH="$PREFIX/lib" if [[ "$target_platform" == osx-* ]]; then # FIXME: remove autogen when autotools patch no longer required @@ -22,13 +21,22 @@ if [[ "$target_platform" == osx-* ]]; then fi fi +# tweak wrapper ldflags +wrapper_ldflags="" +if [[ "$target_platform" == linux-* ]]; then + # allow-shlib-undefined required for dependencies to link against older sysroot + # avoids undefined + wrapper_ldflags='-Wl,--allow-shlib-undefined' +fi +if [[ "$target_platform" == osx-* ]]; then + # rpath required for '@rpath/libmpi.*.dylib' to be found at runtime + wrapper_ldflags='-Wl,-rpath,${libdir}' +fi + # UCX support build_with_ucx="" if [[ "$target_platform" == linux-* ]]; then build_with_ucx="--with-ucx=$PREFIX" - # allow-shlib-undefined required for dependencies to link against older sysroot - # avoids undefined - wrapper_ldflags="${wrapper_ldflags} -Wl,--allow-shlib-undefined" fi # CUDA support @@ -61,12 +69,7 @@ fi ./configure --prefix=$PREFIX \ --disable-dependency-tracking \ --enable-mpi-fortran \ - --disable-wrapper-rpath \ - --disable-wrapper-runpath \ --with-mpi-moduledir='${includedir}' \ - --with-wrapper-cflags="-I$PREFIX/include" \ - --with-wrapper-cxxflags="-I$PREFIX/include" \ - --with-wrapper-fcflags="-I$PREFIX/include" \ --with-wrapper-ldflags="${wrapper_ldflags}" \ --with-sge \ --with-hwloc=$PREFIX \