import openmpi-4.1.1-2.el8
This commit is contained in:
		
							parent
							
								
									d89696b6a0
								
							
						
					
					
						commit
						cdb498edf5
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1 @@ | ||||
| SOURCES/openmpi-4.0.5.tar.bz2 | ||||
| SOURCES/openmpi-4.1.1.tar.bz2 | ||||
|  | ||||
| @ -1 +1 @@ | ||||
| 01fba71461dd0c89e191e3bf1eb70e832d1aa5db SOURCES/openmpi-4.0.5.tar.bz2 | ||||
| fa4dc97da18c8c26d5aadb85262a0f2d52b1aa90 SOURCES/openmpi-4.1.1.tar.bz2 | ||||
|  | ||||
| @ -0,0 +1,367 @@ | ||||
| From 63c80c7692e55f634cbca6f67cc5c9cdef3a04d2 Mon Sep 17 00:00:00 2001 | ||||
| From: Honggang Li <honli@redhat.com> | ||||
| Date: Mon, 28 Jun 2021 21:38:13 +0800 | ||||
| Subject: [PATCH] Revert "ucx: check supported transports and devices for | ||||
|  setting priority" | ||||
| 
 | ||||
| This reverts commit c36d7459b6331c4da825cad5a64326e7c1a272aa. | ||||
| ---
 | ||||
|  contrib/platform/mellanox/optimized.conf |   2 - | ||||
|  ompi/mca/pml/ucx/pml_ucx_component.c     |  15 +- | ||||
|  opal/mca/common/ucx/common_ucx.c         | 202 +---------------------- | ||||
|  opal/mca/common/ucx/common_ucx.h         |  15 -- | ||||
|  opal/mca/common/ucx/configure.m4         |   2 - | ||||
|  5 files changed, 2 insertions(+), 234 deletions(-) | ||||
| 
 | ||||
| diff --git a/contrib/platform/mellanox/optimized.conf b/contrib/platform/mellanox/optimized.conf
 | ||||
| index 543fd8d1e224..b86b37c9e2fa 100644
 | ||||
| --- a/contrib/platform/mellanox/optimized.conf
 | ||||
| +++ b/contrib/platform/mellanox/optimized.conf
 | ||||
| @@ -61,8 +61,6 @@
 | ||||
|  coll = ^ml | ||||
|  hwloc_base_binding_policy = core | ||||
|  btl = self | ||||
| -pml_ucx_tls = any
 | ||||
| -pml_ucx_devices = any
 | ||||
|  # Basic behavior to smooth startup | ||||
|  mca_base_component_show_load_errors = 0 | ||||
|  orte_abort_timeout = 10 | ||||
| diff --git a/ompi/mca/pml/ucx/pml_ucx_component.c b/ompi/mca/pml/ucx/pml_ucx_component.c
 | ||||
| index 6aed6c41d11d..ed9cc6573e8e 100644
 | ||||
| --- a/ompi/mca/pml/ucx/pml_ucx_component.c
 | ||||
| +++ b/ompi/mca/pml/ucx/pml_ucx_component.c
 | ||||
| @@ -107,26 +107,13 @@ static mca_pml_base_module_t*
 | ||||
|  mca_pml_ucx_component_init(int* priority, bool enable_progress_threads, | ||||
|                             bool enable_mpi_threads) | ||||
|  { | ||||
| -    opal_common_ucx_support_level_t support_level;
 | ||||
|      int ret; | ||||
|   | ||||
| -    support_level = opal_common_ucx_support_level(ompi_pml_ucx.ucp_context);
 | ||||
| -    if (support_level == OPAL_COMMON_UCX_SUPPORT_NONE) {
 | ||||
| -        return NULL;
 | ||||
| -    }
 | ||||
| -
 | ||||
|      if ( (ret = mca_pml_ucx_init(enable_mpi_threads)) != 0) { | ||||
|          return NULL; | ||||
|      } | ||||
|   | ||||
| -    /*
 | ||||
| -     * If found supported devices - set to the configured (high) priority.
 | ||||
| -     * Otherwise - Found only supported transports (which could be exposed by
 | ||||
| -     *             unsupported devices), so set a priority lower than ob1.
 | ||||
| -     */
 | ||||
| -    *priority = (support_level == OPAL_COMMON_UCX_SUPPORT_DEVICE) ?
 | ||||
| -                ompi_pml_ucx.priority : 19;
 | ||||
| -    PML_UCX_VERBOSE(2, "returning priority %d", *priority);
 | ||||
| +    *priority = ompi_pml_ucx.priority;
 | ||||
|      return &ompi_pml_ucx.super; | ||||
|  } | ||||
|   | ||||
| diff --git a/opal/mca/common/ucx/common_ucx.c b/opal/mca/common/ucx/common_ucx.c
 | ||||
| index ac7a17d799a5..ae8e66877ab6 100644
 | ||||
| --- a/opal/mca/common/ucx/common_ucx.c
 | ||||
| +++ b/opal/mca/common/ucx/common_ucx.c
 | ||||
| @@ -14,11 +14,8 @@
 | ||||
|  #include "opal/mca/base/mca_base_framework.h" | ||||
|  #include "opal/mca/pmix/pmix.h" | ||||
|  #include "opal/memoryhooks/memory.h" | ||||
| -#include "opal/util/argv.h"
 | ||||
|   | ||||
|  #include <ucm/api/ucm.h> | ||||
| -#include <fnmatch.h>
 | ||||
| -#include <stdio.h>
 | ||||
|   | ||||
|  /***********************************************************************/ | ||||
|   | ||||
| @@ -28,8 +25,7 @@ opal_common_ucx_module_t opal_common_ucx = {
 | ||||
|      .verbose             = 0, | ||||
|      .progress_iterations = 100, | ||||
|      .registered          = 0, | ||||
| -    .opal_mem_hooks      = 0,
 | ||||
| -    .tls                 = NULL
 | ||||
| +    .opal_mem_hooks      = 0
 | ||||
|  }; | ||||
|   | ||||
|  static void opal_common_ucx_mem_release_cb(void *buf, size_t length, | ||||
| @@ -40,15 +36,10 @@ static void opal_common_ucx_mem_release_cb(void *buf, size_t length,
 | ||||
|   | ||||
|  OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *component) | ||||
|  { | ||||
| -    static const char *default_tls     = "rc_verbs,ud_verbs,rc_mlx5,dc_mlx5,cuda_ipc,rocm_ipc";
 | ||||
| -    static const char *default_devices = "mlx*";
 | ||||
|      static int registered = 0; | ||||
|      static int hook_index; | ||||
|      static int verbose_index; | ||||
|      static int progress_index; | ||||
| -    static int tls_index;
 | ||||
| -    static int devices_index;
 | ||||
| -
 | ||||
|      if (!registered) { | ||||
|          verbose_index = mca_base_var_register("opal", "opal_common", "ucx", "verbose", | ||||
|                                                "Verbose level of the UCX components", | ||||
| @@ -69,29 +60,6 @@ OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *
 | ||||
|                                             OPAL_INFO_LVL_3, | ||||
|                                             MCA_BASE_VAR_SCOPE_LOCAL, | ||||
|                                             &opal_common_ucx.opal_mem_hooks); | ||||
| -
 | ||||
| -        opal_common_ucx.tls  = malloc(sizeof(*opal_common_ucx.tls));
 | ||||
| -        *opal_common_ucx.tls = strdup(default_tls);
 | ||||
| -        tls_index = mca_base_var_register("opal", "opal_common", "ucx", "tls",
 | ||||
| -                                          "List of UCX transports which should be supported on the system, to enable "
 | ||||
| -                                          "selecting the UCX component. Special values: any (any available). "
 | ||||
| -                                          "A '^' prefix negates the list. "
 | ||||
| -                                          "For example, in order to exclude on shared memory and TCP transports, "
 | ||||
| -                                          "please set to '^posix,sysv,self,tcp,cma,knem,xpmem'.",
 | ||||
| -                                          MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
 | ||||
| -                                          OPAL_INFO_LVL_3,
 | ||||
| -                                          MCA_BASE_VAR_SCOPE_LOCAL,
 | ||||
| -                                          opal_common_ucx.tls);
 | ||||
| -
 | ||||
| -        opal_common_ucx.devices  = malloc(sizeof(*opal_common_ucx.devices));
 | ||||
| -        *opal_common_ucx.devices = strdup(default_devices);
 | ||||
| -        devices_index = mca_base_var_register("opal", "opal_common", "ucx", "devices",
 | ||||
| -                                              "List of device driver pattern names, which, if supported by UCX, will "
 | ||||
| -                                              "bump its priority above ob1. Special values: any (any available)",
 | ||||
| -                                              MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
 | ||||
| -                                              OPAL_INFO_LVL_3,
 | ||||
| -                                              MCA_BASE_VAR_SCOPE_LOCAL,
 | ||||
| -                                              opal_common_ucx.devices);
 | ||||
|          registered = 1; | ||||
|      } | ||||
|      if (component) { | ||||
| @@ -107,14 +75,6 @@ OPAL_DECLSPEC void opal_common_ucx_mca_var_register(const mca_base_component_t *
 | ||||
|                                        component->mca_type_name, | ||||
|                                        component->mca_component_name, | ||||
|                                        "opal_mem_hooks", 0); | ||||
| -        mca_base_var_register_synonym(tls_index, component->mca_project_name,
 | ||||
| -                                      component->mca_type_name,
 | ||||
| -                                      component->mca_component_name,
 | ||||
| -                                      "tls", 0);
 | ||||
| -        mca_base_var_register_synonym(devices_index, component->mca_project_name,
 | ||||
| -                                      component->mca_type_name,
 | ||||
| -                                      component->mca_component_name,
 | ||||
| -                                      "devices", 0);
 | ||||
|      } | ||||
|  } | ||||
|   | ||||
| @@ -163,166 +123,6 @@ OPAL_DECLSPEC void opal_common_ucx_mca_deregister(void)
 | ||||
|      opal_output_close(opal_common_ucx.output); | ||||
|  } | ||||
|   | ||||
| -#if HAVE_DECL_OPEN_MEMSTREAM
 | ||||
| -static bool opal_common_ucx_check_device(const char *device_name, char **device_list)
 | ||||
| -{
 | ||||
| -    char sysfs_driver_link[PATH_MAX];
 | ||||
| -    char driver_path[PATH_MAX];
 | ||||
| -    char *ib_device_name;
 | ||||
| -    char *driver_name;
 | ||||
| -    char **list_item;
 | ||||
| -    ssize_t ret;
 | ||||
| -
 | ||||
| -    /* mlx5_0:1 */
 | ||||
| -    ret = sscanf(device_name, "%m[^:]%*d", &ib_device_name);
 | ||||
| -    if (ret != 1) {
 | ||||
| -        return false;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    sysfs_driver_link[sizeof(sysfs_driver_link) - 1] = '\0';
 | ||||
| -    snprintf(sysfs_driver_link, sizeof(sysfs_driver_link) - 1,
 | ||||
| -             "/sys/class/infiniband/%s/device/driver", ib_device_name);
 | ||||
| -    free(ib_device_name);
 | ||||
| -
 | ||||
| -    driver_path[sizeof(driver_path) - 1] = '\0';
 | ||||
| -    ret = readlink(sysfs_driver_link, driver_path, sizeof(driver_path) - 1);
 | ||||
| -    if (ret < 0) {
 | ||||
| -        MCA_COMMON_UCX_VERBOSE(2, "readlink(%s) failed: %s", sysfs_driver_link,
 | ||||
| -                               strerror(errno));
 | ||||
| -        return false;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    driver_name = basename(driver_path);
 | ||||
| -    for (list_item = device_list; *list_item != NULL; ++list_item) {
 | ||||
| -        if (!fnmatch(*list_item, driver_name, 0)) {
 | ||||
| -            MCA_COMMON_UCX_VERBOSE(2, "driver '%s' matched by '%s'",
 | ||||
| -                                   driver_path, *list_item);
 | ||||
| -            return true;
 | ||||
| -        }
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    return false;
 | ||||
| -}
 | ||||
| -#endif
 | ||||
| -
 | ||||
| -OPAL_DECLSPEC opal_common_ucx_support_level_t
 | ||||
| -opal_common_ucx_support_level(ucp_context_h context)
 | ||||
| -{
 | ||||
| -    opal_common_ucx_support_level_t support_level = OPAL_COMMON_UCX_SUPPORT_NONE;
 | ||||
| -    static const char *support_level_names[] = {
 | ||||
| -        [OPAL_COMMON_UCX_SUPPORT_NONE]      = "none",
 | ||||
| -        [OPAL_COMMON_UCX_SUPPORT_TRANSPORT] = "transports only",
 | ||||
| -        [OPAL_COMMON_UCX_SUPPORT_DEVICE]    = "transports and devices"
 | ||||
| -    };
 | ||||
| -#if HAVE_DECL_OPEN_MEMSTREAM
 | ||||
| -    char *rsc_tl_name, *rsc_device_name;
 | ||||
| -    char **tl_list, **device_list, **list_item;
 | ||||
| -    bool is_any_tl, is_any_device;
 | ||||
| -    bool found_tl, negate;
 | ||||
| -    char line[128];
 | ||||
| -    FILE *stream;
 | ||||
| -    char *buffer;
 | ||||
| -    size_t size;
 | ||||
| -    int ret;
 | ||||
| -#endif
 | ||||
| -
 | ||||
| -    is_any_tl     = !strcmp(*opal_common_ucx.tls, "any");
 | ||||
| -    is_any_device = !strcmp(*opal_common_ucx.devices, "any");
 | ||||
| -
 | ||||
| -    /* Check for special value "any" */
 | ||||
| -    if (is_any_tl && is_any_device) {
 | ||||
| -        MCA_COMMON_UCX_VERBOSE(1, "ucx is enabled on any transport or device",
 | ||||
| -                               *opal_common_ucx.tls);
 | ||||
| -        support_level = OPAL_COMMON_UCX_SUPPORT_DEVICE;
 | ||||
| -        goto out;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -#if HAVE_DECL_OPEN_MEMSTREAM
 | ||||
| -    /* Split transports list */
 | ||||
| -    negate  = ('^' == (*opal_common_ucx.tls)[0]);
 | ||||
| -    tl_list = opal_argv_split(*opal_common_ucx.tls + (negate ? 1 : 0), ',');
 | ||||
| -    if (tl_list == NULL) {
 | ||||
| -        MCA_COMMON_UCX_VERBOSE(1, "failed to split tl list '%s', ucx is disabled",
 | ||||
| -                               *opal_common_ucx.tls);
 | ||||
| -        goto out;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    /* Split devices list */
 | ||||
| -    device_list = opal_argv_split(*opal_common_ucx.devices, ',');
 | ||||
| -    if (device_list == NULL) {
 | ||||
| -        MCA_COMMON_UCX_VERBOSE(1, "failed to split devices list '%s', ucx is disabled",
 | ||||
| -                               *opal_common_ucx.devices);
 | ||||
| -        goto out_free_tl_list;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    /* Open memory stream to dump UCX information to */
 | ||||
| -    stream = open_memstream(&buffer, &size);
 | ||||
| -    if (stream == NULL) {
 | ||||
| -        MCA_COMMON_UCX_VERBOSE(1, "failed to open memory stream for ucx info (%s), "
 | ||||
| -                               "ucx is disabled", strerror(errno));
 | ||||
| -        goto out_free_device_list;
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    /* Print ucx transports information to the memory stream */
 | ||||
| -    ucp_context_print_info(context, stream);
 | ||||
| -
 | ||||
| -    /* Rewind and read transports/devices list from the stream */
 | ||||
| -    fseek(stream, 0, SEEK_SET);
 | ||||
| -    while ((support_level != OPAL_COMMON_UCX_SUPPORT_DEVICE) &&
 | ||||
| -           (fgets(line, sizeof(line), stream) != NULL)) {
 | ||||
| -        rsc_tl_name = NULL;
 | ||||
| -        ret = sscanf(line,
 | ||||
| -                     /* "# resource 6  :  md 5  dev 4  flags -- rc_verbs/mlx5_0:1" */
 | ||||
| -                     "# resource %*d : md %*d dev %*d flags -- %m[^/ \n\r]/%m[^/ \n\r]",
 | ||||
| -                     &rsc_tl_name, &rsc_device_name);
 | ||||
| -        if (ret != 2) {
 | ||||
| -            free(rsc_tl_name);
 | ||||
| -            continue;
 | ||||
| -        }
 | ||||
| -
 | ||||
| -        /* Check if 'rsc_tl_name' is found  provided list */
 | ||||
| -        found_tl = is_any_tl;
 | ||||
| -        for (list_item = tl_list; !found_tl && (*list_item != NULL); ++list_item) {
 | ||||
| -            found_tl = !strcmp(*list_item, rsc_tl_name);
 | ||||
| -        }
 | ||||
| -
 | ||||
| -        /* Check if the transport has a match (either positive or negative) */
 | ||||
| -        assert(!(is_any_tl && negate));
 | ||||
| -        if (found_tl != negate) {
 | ||||
| -            if (is_any_device ||
 | ||||
| -                opal_common_ucx_check_device(rsc_device_name, device_list)) {
 | ||||
| -                MCA_COMMON_UCX_VERBOSE(2, "%s/%s: matched both transport and device list",
 | ||||
| -                                    rsc_tl_name, rsc_device_name);
 | ||||
| -                support_level = OPAL_COMMON_UCX_SUPPORT_DEVICE;
 | ||||
| -            } else {
 | ||||
| -                MCA_COMMON_UCX_VERBOSE(2, "%s/%s: matched transport list but not device list",
 | ||||
| -                                    rsc_tl_name, rsc_device_name);
 | ||||
| -                support_level = OPAL_COMMON_UCX_SUPPORT_TRANSPORT;
 | ||||
| -            }
 | ||||
| -        } else {
 | ||||
| -            MCA_COMMON_UCX_VERBOSE(2, "%s/%s: did not match transport list",
 | ||||
| -                                   rsc_tl_name, rsc_device_name);
 | ||||
| -        }
 | ||||
| -
 | ||||
| -        free(rsc_device_name);
 | ||||
| -        free(rsc_tl_name);
 | ||||
| -    }
 | ||||
| -
 | ||||
| -    MCA_COMMON_UCX_VERBOSE(2, "support level is %s", support_level_names[support_level]);
 | ||||
| -    fclose(stream);
 | ||||
| -    free(buffer);
 | ||||
| -
 | ||||
| -out_free_device_list:
 | ||||
| -    opal_argv_free(device_list);
 | ||||
| -out_free_tl_list:
 | ||||
| -    opal_argv_free(tl_list);
 | ||||
| -out:
 | ||||
| -#else
 | ||||
| -    MCA_COMMON_UCX_VERBOSE(2, "open_memstream() was not found, ucx is disabled");
 | ||||
| -#endif
 | ||||
| -    return support_level;
 | ||||
| -}
 | ||||
| -
 | ||||
|  void opal_common_ucx_empty_complete_cb(void *request, ucs_status_t status) | ||||
|  { | ||||
|  } | ||||
| diff --git a/opal/mca/common/ucx/common_ucx.h b/opal/mca/common/ucx/common_ucx.h
 | ||||
| index 92cdd738ef98..202131ac8907 100644
 | ||||
| --- a/opal/mca/common/ucx/common_ucx.h
 | ||||
| +++ b/opal/mca/common/ucx/common_ucx.h
 | ||||
| @@ -88,8 +88,6 @@ typedef struct opal_common_ucx_module {
 | ||||
|      int  progress_iterations; | ||||
|      int  registered; | ||||
|      bool opal_mem_hooks; | ||||
| -    char **tls;
 | ||||
| -    char **devices;
 | ||||
|  } opal_common_ucx_module_t; | ||||
|   | ||||
|  typedef struct opal_common_ucx_del_proc { | ||||
| @@ -97,23 +95,10 @@ typedef struct opal_common_ucx_del_proc {
 | ||||
|      size_t   vpid; | ||||
|  } opal_common_ucx_del_proc_t; | ||||
|   | ||||
| -typedef enum {
 | ||||
| -    /* No supported transports found (according to configured list of supported
 | ||||
| -       transports) */
 | ||||
| -    OPAL_COMMON_UCX_SUPPORT_NONE,
 | ||||
| -
 | ||||
| -    /* Have supported transports but not supported devices */
 | ||||
| -    OPAL_COMMON_UCX_SUPPORT_TRANSPORT,
 | ||||
| -
 | ||||
| -    /* Have both supported transports and supported devices */
 | ||||
| -    OPAL_COMMON_UCX_SUPPORT_DEVICE,
 | ||||
| -} opal_common_ucx_support_level_t;
 | ||||
| -
 | ||||
|  extern opal_common_ucx_module_t opal_common_ucx; | ||||
|   | ||||
|  OPAL_DECLSPEC void opal_common_ucx_mca_register(void); | ||||
|  OPAL_DECLSPEC void opal_common_ucx_mca_deregister(void); | ||||
| -OPAL_DECLSPEC opal_common_ucx_support_level_t opal_common_ucx_support_level(ucp_context_h context);
 | ||||
|  OPAL_DECLSPEC void opal_common_ucx_mca_proc_added(void); | ||||
|  OPAL_DECLSPEC void opal_common_ucx_empty_complete_cb(void *request, ucs_status_t status); | ||||
|  OPAL_DECLSPEC int opal_common_ucx_mca_pmix_fence(ucp_worker_h worker); | ||||
| diff --git a/opal/mca/common/ucx/configure.m4 b/opal/mca/common/ucx/configure.m4
 | ||||
| index af8628a889c6..27e07c2005b2 100644
 | ||||
| --- a/opal/mca/common/ucx/configure.m4
 | ||||
| +++ b/opal/mca/common/ucx/configure.m4
 | ||||
| @@ -18,8 +18,6 @@ AC_DEFUN([MCA_opal_common_ucx_CONFIG],[
 | ||||
|                 [common_ucx_happy="yes"], | ||||
|                 [common_ucx_happy="no"]) | ||||
|   | ||||
| -    AC_CHECK_DECLS([open_memstream], [], [], [[#include <stdio.h>]])
 | ||||
| -
 | ||||
|      AS_IF([test "$common_ucx_happy" = "yes"], | ||||
|            [$1], | ||||
|            [$2]) | ||||
| -- 
 | ||||
| 2.31.1 | ||||
| 
 | ||||
							
								
								
									
										33
									
								
								SOURCES/266189935aef4fce825d0db831b4b53accc62c32.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								SOURCES/266189935aef4fce825d0db831b4b53accc62c32.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| From 266189935aef4fce825d0db831b4b53accc62c32 Mon Sep 17 00:00:00 2001 | ||||
| From: Jeff Squyres <jsquyres@cisco.com> | ||||
| Date: Tue, 22 Jun 2021 22:28:37 -0400 | ||||
| Subject: [PATCH] fbtl-posix: link to common_ompio | ||||
| 
 | ||||
| The posix fbtl calls mca_common_ompio_progress(), which resides in | ||||
| common/ompio (i.e., libmca_common_ompio.la).  So add that into | ||||
| mca_fbtl_posix_la_LIBADD (like we do in a few other OMPIO-based | ||||
| components).  Failure to do this *can* lead to the posix fbtl | ||||
| component failing to load (depending on whether other OMPIO-based | ||||
| components that pull in libmca_common_ompio were loaded first). | ||||
| 
 | ||||
| Thanks to Honggang Li for raising the issue. | ||||
| 
 | ||||
| Signed-off-by: Jeff Squyres <jsquyres@cisco.com> | ||||
| ---
 | ||||
|  ompi/mca/fbtl/posix/Makefile.am | 3 ++- | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/ompi/mca/fbtl/posix/Makefile.am b/ompi/mca/fbtl/posix/Makefile.am
 | ||||
| index a7b0624d3ec..1ce19cb09b7 100644
 | ||||
| --- a/ompi/mca/fbtl/posix/Makefile.am
 | ||||
| +++ b/ompi/mca/fbtl/posix/Makefile.am
 | ||||
| @@ -34,7 +34,8 @@ mcacomponentdir = $(ompilibdir)
 | ||||
|  mcacomponent_LTLIBRARIES = $(component_install) | ||||
|  mca_fbtl_posix_la_SOURCES = $(sources) | ||||
|  mca_fbtl_posix_la_LDFLAGS = -module -avoid-version | ||||
| -mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la
 | ||||
| +mca_fbtl_posix_la_LIBADD = $(top_builddir)/ompi/lib@OMPI_LIBMPI_NAME@.la \
 | ||||
| +    $(OMPI_TOP_BUILDDIR)/ompi/mca/common/ompio/libmca_common_ompio.la
 | ||||
|   | ||||
|  noinst_LTLIBRARIES = $(component_noinst) | ||||
|  libmca_fbtl_posix_la_SOURCES = $(sources) | ||||
| @ -1,6 +1,7 @@ | ||||
| %_openmpi_load \ | ||||
|  . /etc/profile.d/modules.sh; \ | ||||
|  module load mpi/openmpi-%{_arch}; | ||||
|  module load mpi/openmpi-%{_arch}; \ | ||||
|  export OMPI_MCA_rmaps_base_oversubscribe=1 | ||||
| %_openmpi_unload \ | ||||
|  . /etc/profile.d/modules.sh; \ | ||||
|  module unload mpi/openmpi-%{_arch}; | ||||
|  | ||||
| @ -13,9 +13,9 @@ setenv			MPI_FORTRAN_MOD_DIR	@FMODDIR@ | ||||
| setenv			MPI_INCLUDE	@INCDIR@ | ||||
| setenv	 		MPI_LIB		@LIBDIR@/lib | ||||
| setenv			MPI_MAN		@MANDIR@ | ||||
| setenv			MPI_PYTHON_SITEARCH	@PYSITEARCH@ | ||||
| setenv			MPI_PYTHON2_SITEARCH	@PYSITEARCH@ | ||||
| setenv			MPI_PYTHON3_SITEARCH	@PYSITEARCH@ | ||||
| setenv			MPI_PYTHON_SITEARCH	@PY2SITEARCH@ | ||||
| setenv			MPI_PYTHON2_SITEARCH	@PY2SITEARCH@ | ||||
| setenv			MPI_PYTHON3_SITEARCH	@PY3SITEARCH@ | ||||
| setenv			MPI_COMPILER	@COMPILER@ | ||||
| setenv			MPI_SUFFIX	@SUFFIX@ | ||||
| setenv	 		MPI_HOME	@LIBDIR@ | ||||
|  | ||||
							
								
								
									
										1
									
								
								SOURCES/openmpi.pth.py2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								SOURCES/openmpi.pth.py2
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| import sys, os; s = os.getenv('MPI_PYTHON2_SITEARCH'); s and (s in sys.path or sys.path.append(s)) | ||||
| @ -1,18 +1,3 @@ | ||||
| %global _hardened_build 1 | ||||
| # We only compile with gcc, but other people may want other compilers. | ||||
| # Set the compiler here. | ||||
| %global opt_cc gcc | ||||
| # Optional CFLAGS to use with the specific compiler...gcc doesn't need any, | ||||
| # so uncomment and define to use | ||||
| #global opt_cflags | ||||
| %global opt_cxx g++ | ||||
| #global opt_cxxflags | ||||
| %global opt_f77 gfortran | ||||
| #global opt_fflags | ||||
| %global opt_fc gfortran | ||||
| #global opt_fcflags | ||||
| 
 | ||||
| 
 | ||||
| # Optional name suffix to use...we leave it off when compiling with gcc, but | ||||
| # for other compiled versions to install side by side, it will need a | ||||
| # suffix in order to keep the names from conflicting. | ||||
| @ -20,60 +5,99 @@ | ||||
| 
 | ||||
| %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) | ||||
| 
 | ||||
| Name:			openmpi%{?_cc_name_suffix} | ||||
| Version:		4.0.5 | ||||
| Release:		3%{?dist} | ||||
| Summary:		Open Message Passing Interface | ||||
| Group:			Development/Libraries | ||||
| License:		BSD and MIT and Romio | ||||
| URL:			http://www.open-mpi.org/ | ||||
| %if 0%{?fedora} >= 32 || 0%{?rhel} >= 8 | ||||
| %bcond_with python2 | ||||
| %else | ||||
| %bcond_without python2 | ||||
| %endif | ||||
| 
 | ||||
| %ifarch aarch64 ppc64le x86_64 | ||||
| %bcond_without ucx | ||||
| %else | ||||
| %bcond_with ucx | ||||
| %endif | ||||
| 
 | ||||
| # ARM 32-bit is not supported by rdma | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1780584 | ||||
| %ifarch %{arm} | ||||
| %bcond_with rdma | ||||
| %else | ||||
| %bcond_without rdma | ||||
| %endif | ||||
| 
 | ||||
| # Run autogen - needed for some patches | ||||
| %bcond_without autogen | ||||
| 
 | ||||
| Name:           openmpi%{?_cc_name_suffix} | ||||
| Version:        4.1.1 | ||||
| Release:        2%{?dist} | ||||
| Summary:        Open Message Passing Interface | ||||
| License:        BSD and MIT and Romio | ||||
| URL:            http://www.open-mpi.org/ | ||||
| 
 | ||||
| # We can't use %%{name} here because of _cc_name_suffix | ||||
| Source0:		https://www.open-mpi.org/software/ompi/v4.0/downloads/openmpi-%{version}.tar.bz2 | ||||
| Source1:		openmpi.module.in | ||||
| Source2:		openmpi.pth.py3 | ||||
| Source3:		macros.openmpi | ||||
| Source0:        https://www.open-mpi.org/software/ompi/v4.1/downloads/openmpi-%{version}.tar.bz2 | ||||
| Source1:        openmpi.module.in | ||||
| Source2:        openmpi.pth.py2 | ||||
| Source3:        openmpi.pth.py3 | ||||
| Source4:        macros.openmpi | ||||
| Patch1:         266189935aef4fce825d0db831b4b53accc62c32.patch | ||||
| Patch2:         0001-Revert-ucx-check-supported-transports-and-devices-fo.patch | ||||
| 
 | ||||
| BuildRequires:		gcc-gfortran, gcc-c++ | ||||
| %ifnarch s390 s390x | ||||
| BuildRequires:		valgrind-devel | ||||
| BuildRequires:  gcc-c++ | ||||
| BuildRequires:  gcc-gfortran | ||||
| BuildRequires:  make | ||||
| %if %{with autogen} | ||||
| BuildRequires:  libtool | ||||
| BuildRequires:  perl(Data::Dumper) | ||||
| BuildRequires:  perl(File::Find) | ||||
| %endif | ||||
| %ifnarch s390 s390x i686 | ||||
| BuildRequires:		ucx-devel | ||||
| %endif | ||||
| %ifnarch s390 s390x %{arm} | ||||
| BuildRequires:		libibverbs-devel >= 1.1.3, opensm-devel >= 3.3.22 | ||||
| BuildRequires:		librdmacm-devel rdma-core-devel | ||||
| BuildRequires:  valgrind-devel | ||||
| %if %{with rdma} | ||||
| BuildRequires:  opensm-devel > 3.3.0 | ||||
| BuildRequires:  rdma-core-devel | ||||
| %endif | ||||
| # Doesn't compile: | ||||
| # vt_dyn.cc:958:28: error: 'class BPatch_basicBlockLoop' has no member named 'getLoopHead' | ||||
| #                      loop->getLoopHead()->getStartAddress(), loop_stmts ); | ||||
| #BuildRequires:		dyninst-devel | ||||
| BuildRequires:		hwloc-devel >= 2.2.0 | ||||
| #BuildRequires:  dyninst-devel | ||||
| BuildRequires:  hwloc-devel >= 2.2.0 | ||||
| # So configure can find lstopo | ||||
| BuildRequires:		hwloc-gui | ||||
| BuildRequires:		java-devel | ||||
| BuildRequires:  hwloc-gui | ||||
| BuildRequires:  java-devel | ||||
| # Old libevent causes issues | ||||
| %if !0%{?el7} | ||||
| BuildRequires:  libevent-devel | ||||
| %endif | ||||
| BuildRequires:  libfabric-devel | ||||
| %ifnarch s390 s390x | ||||
| BuildRequires:		libfabric-devel | ||||
| BuildRequires:		papi-devel | ||||
| BuildRequires:  papi-devel | ||||
| %endif | ||||
| BuildRequires:		perl-generators | ||||
| BuildRequires:		perl(Getopt::Long) | ||||
| BuildRequires:		pmix-devel | ||||
| BuildRequires:  perl-generators | ||||
| BuildRequires:  perl-interpreter | ||||
| BuildRequires:  perl(Getopt::Long) | ||||
| BuildRequires:  pmix-devel | ||||
| BuildRequires:  python%{python3_pkgversion}-devel | ||||
| %ifarch x86_64 | ||||
| BuildRequires:          libpsm2-devel | ||||
| BuildRequires:  libpsm2-devel | ||||
| %endif | ||||
| %if %{with ucx} | ||||
| BuildRequires:  ucx-devel | ||||
| %endif | ||||
| BuildRequires:  zlib-devel | ||||
| %if !0%{?el7} | ||||
| BuildRequires:  rpm-mpi-hooks | ||||
| %endif | ||||
| BuildRequires:		torque-devel | ||||
| BuildRequires:		zlib-devel | ||||
| BuildRequires:		rpm-mpi-hooks | ||||
| BuildRequires:		libevent-devel >= 2.0.22 | ||||
| 
 | ||||
| Provides:		mpi | ||||
| Requires:		environment(modules) | ||||
| Provides:       mpi | ||||
| %if 0%{?rhel} == 7 | ||||
| # Need this for /etc/profile.d/modules.sh | ||||
| Requires:       environment-modules | ||||
| %endif | ||||
| Requires:       environment(modules) | ||||
| # openmpi currently requires ssh to run | ||||
| # https://svn.open-mpi.org/trac/ompi/ticket/4228 | ||||
| Requires:		openssh-clients | ||||
| Requires:		libevent >= 2.0.22 | ||||
| Requires:       openssh-clients | ||||
| 
 | ||||
| # Private openmpi libraries | ||||
| %global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so | ||||
| @ -90,28 +114,31 @@ researchers. For more information, see http://www.open-mpi.org/ . | ||||
| 
 | ||||
| %package devel | ||||
| Summary:	Development files for openmpi | ||||
| Group:		Development/Libraries | ||||
| Requires:	%{name} = %{version}-%{release}, gcc-gfortran | ||||
| Provides:	mpi-devel | ||||
| %if !0%{?el7} | ||||
| Requires:	rpm-mpi-hooks | ||||
| # Make sure this package is rebuilt with correct Python version when updating | ||||
| # Otherwise mpi.req from rpm-mpi-hooks doesn't work | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1705296 | ||||
| Requires:	(python(abi) = %{python3_version} if python3) | ||||
| %endif | ||||
| 
 | ||||
| %description devel | ||||
| Contains development headers and libraries for openmpi. | ||||
| 
 | ||||
| %package java | ||||
| Summary:	Java library | ||||
| Group:		Development/Libraries | ||||
| Requires:	%{name} = %{version}-%{release} | ||||
| Requires:	java-headless | ||||
| Summary:        Java library | ||||
| Requires:       %{name} = %{version}-%{release} | ||||
| Requires:       java-headless | ||||
| 
 | ||||
| %description java | ||||
| OpenMPI Java library. | ||||
| Java library. | ||||
| 
 | ||||
| %package java-devel | ||||
| Summary:	Java development files for openmpi | ||||
| Group:		Development/Libraries | ||||
| Requires:	%{name}-java = %{version}-%{release} | ||||
| Requires:	java-devel | ||||
| Summary:        Java development files for openmpi | ||||
| Requires:       %{name}-java = %{version}-%{release} | ||||
| Requires:       java-devel | ||||
| 
 | ||||
| %description java-devel | ||||
| Contains development wrapper for compiling Java with openmpi. | ||||
| @ -120,19 +147,32 @@ Contains development wrapper for compiling Java with openmpi. | ||||
| # particular package, version, compiler | ||||
| %global namearch openmpi-%{_arch}%{?_cc_name_suffix} | ||||
| 
 | ||||
| %package -n python3-openmpi | ||||
| Summary:	OpenMPI support for Python 3 | ||||
| Group:		Development/Libraries | ||||
| BuildRequires:	python3-devel | ||||
| Requires:	%{name} = %{version}-%{release} | ||||
| Provides:	python-openmpi | ||||
| %if %{with python2} | ||||
| %package -n python2-openmpi | ||||
| Summary:        OpenMPI support for Python 2 | ||||
| BuildRequires:  python2-devel | ||||
| Requires:       %{name} = %{version}-%{release} | ||||
| Requires:       python(abi) = %{python2_version} | ||||
| 
 | ||||
| %description -n python3-openmpi | ||||
| %description -n python2-openmpi | ||||
| OpenMPI support for Python 2. | ||||
| %endif | ||||
| 
 | ||||
| %package -n python%{python3_pkgversion}-openmpi | ||||
| Summary:        OpenMPI support for Python 3 | ||||
| Requires:       %{name} = %{version}-%{release} | ||||
| Requires:       python(abi) = %{python3_version} | ||||
| 
 | ||||
| %description -n python%{python3_pkgversion}-openmpi | ||||
| OpenMPI support for Python 3. | ||||
| 
 | ||||
| 
 | ||||
| %prep | ||||
| %setup -q -n openmpi-%{version} | ||||
| %autosetup -p1 -n %{name}-%{version} | ||||
| %if %{with autogen} | ||||
| ./autogen.pl --force | ||||
| %endif | ||||
| 
 | ||||
| 
 | ||||
| %build | ||||
| %set_build_flags | ||||
| @ -141,37 +181,23 @@ OpenMPI support for Python 3. | ||||
| 	--includedir=%{_includedir}/%{namearch} \ | ||||
| 	--sysconfdir=%{_sysconfdir}/%{namearch} \ | ||||
| 	--disable-silent-rules \ | ||||
| 	--disable-builtin-atomics \ | ||||
| 	--enable-mpi-thread-multiple \ | ||||
| %ifnarch %{power64} | ||||
| 	--enable-builtin-atomics \ | ||||
| 	--enable-mpi-cxx \ | ||||
| %endif | ||||
| 	--enable-mpi-java \ | ||||
| 	--enable-mpi-fortran=all \ | ||||
| 	--enable-cxx-exceptions \ | ||||
| 	--enable-mpi1-compatibility \ | ||||
| 	--with-sge \ | ||||
| %ifnarch s390 s390x | ||||
| 	--with-valgrind \ | ||||
| 	--enable-memchecker \ | ||||
| %endif | ||||
| %ifnarch s390 s390x i686 | ||||
| 	--with-ucx \ | ||||
| 	--with-ucx-libdir=%{_libdir} \ | ||||
| %endif | ||||
| 	--with-hwloc=external \ | ||||
| 	--with-pmix=external \ | ||||
| 	--with-hwloc=/usr \ | ||||
| %if !0%{?el7} | ||||
| 	--with-libevent=external \ | ||||
| 	CC=%{opt_cc} CXX=%{opt_cxx} FC=%{opt_fc} \ | ||||
| 	LDFLAGS="%{build_ldflags}" \ | ||||
| 	CFLAGS="%{?opt_cflags}%{!?opt_cflags:$RPM_OPT_FLAGS}" \ | ||||
| 	CXXFLAGS="%{?opt_cxxflags}%{!?opt_cxxflags:$RPM_OPT_FLAGS}" \ | ||||
| 	FCFLAGS="%{?opt_fcflags}%{!?opt_fcflags:$RPM_OPT_FLAGS}" \ | ||||
| 	--with-contrib-vt-flags='CXXFLAGS="-I%{_includedir}/dyninst -L%{_libdir}/dyninst"' | ||||
| 	--with-pmix=external \ | ||||
| %endif | ||||
| 
 | ||||
| make %{?_smp_mflags} V=1 | ||||
| %make_build V=1 | ||||
| 
 | ||||
| %install | ||||
| make install DESTDIR=%{buildroot} | ||||
| %make_install | ||||
| find %{buildroot}%{_libdir}/%{name}/lib -name \*.la | xargs rm | ||||
| find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9 | ||||
| ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz | ||||
| @ -180,21 +206,26 @@ rm %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1 | ||||
| mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n} | ||||
| 
 | ||||
| # Make the environment-modules file | ||||
| mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi | ||||
| mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi | ||||
| # Since we're doing our own substitution here, use our own definitions. | ||||
| sed 's#@LIBDIR@#%{_libdir}/%{name}#; | ||||
|      s#@ETCDIR@#%{_sysconfdir}/%{namearch}#; | ||||
|      s#@FMODDIR@#%{_fmoddir}/%{name}#; | ||||
|      s#@INCDIR@#%{_includedir}/%{namearch}#; | ||||
|      s#@MANDIR@#%{_mandir}/%{namearch}#; | ||||
|      s#@PYSITEARCH@#%{python3_sitearch}/%{name}#; | ||||
| %if %{with python2} | ||||
|      s#@PY2SITEARCH@#%{python2_sitearch}/%{name}#; | ||||
| %else | ||||
|      /@PY2SITEARCH@/d; | ||||
| %endif | ||||
|      s#@PY3SITEARCH@#%{python3_sitearch}/%{name}#; | ||||
|      s#@COMPILER@#openmpi-%{_arch}%{?_cc_name_suffix}#; | ||||
|      s#@SUFFIX@#%{?_cc_name_suffix}_openmpi#' \ | ||||
|      <%{SOURCE1} \ | ||||
|      >%{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch} | ||||
|      >%{buildroot}%{_datadir}/modulefiles/mpi/%{namearch} | ||||
| 
 | ||||
| # make the rpm config file | ||||
| install -Dpm 644 %{SOURCE3} %{buildroot}/%{macrosdir}/macros.%{namearch} | ||||
| install -Dpm 644 %{SOURCE4} %{buildroot}/%{macrosdir}/macros.%{namearch} | ||||
| 
 | ||||
| # Link the fortran module to proper location | ||||
| mkdir -p %{buildroot}%{_fmoddir}/%{name} | ||||
| @ -215,8 +246,12 @@ sed -i -e s/-ldl// -e s/-lhwloc// \ | ||||
|   %{buildroot}%{_libdir}/%{name}/share/openmpi/*-wrapper-data.txt | ||||
| 
 | ||||
| # install .pth files | ||||
| %if %{with python2} | ||||
| mkdir -p %{buildroot}/%{python2_sitearch}/%{name} | ||||
| install -pDm0644 %{SOURCE2} %{buildroot}/%{python2_sitearch}/openmpi.pth | ||||
| %endif | ||||
| mkdir -p %{buildroot}/%{python3_sitearch}/%{name} | ||||
| install -pDm0644 %{SOURCE2} %{buildroot}/%{python3_sitearch}/openmpi.pth | ||||
| install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth | ||||
| 
 | ||||
| %check | ||||
| make check | ||||
| @ -231,33 +266,58 @@ make check | ||||
| %dir %{_mandir}/%{namearch} | ||||
| %dir %{_mandir}/%{namearch}/man* | ||||
| %config(noreplace) %{_sysconfdir}/%{namearch}/* | ||||
| %{_libdir}/%{name}/bin/*.pl | ||||
| %{_libdir}/%{name}/bin/mpi[er]* | ||||
| %{_libdir}/%{name}/bin/ompi* | ||||
| %{_libdir}/%{name}/bin/orte[-dr_]* | ||||
| %ifnarch s390 s390x i686 | ||||
| %{_libdir}/%{name}/bin/osh* | ||||
| %{_libdir}/%{name}/bin/shmem* | ||||
| %if %{with ucx} | ||||
| %{_libdir}/%{name}/bin/oshmem_info | ||||
| %{_libdir}/%{name}/bin/oshrun | ||||
| %{_libdir}/%{name}/bin/shmemrun | ||||
| %endif | ||||
| %{_libdir}/%{name}/lib/*.so.* | ||||
| %{_mandir}/%{namearch}/man1/* | ||||
| %{_mandir}/%{namearch}/man7/* | ||||
| %{_libdir}/%{name}/lib/*.so.40* | ||||
| %{_libdir}/%{name}/lib/libmca_common_ofi.so.10* | ||||
| %{_libdir}/%{name}/lib/libmca*.so.41* | ||||
| %{_libdir}/%{name}/lib/libmca*.so.50* | ||||
| %if 0%{?el7} | ||||
| %{_libdir}/%{name}/lib/pmix/ | ||||
| %endif | ||||
| %{_mandir}/%{namearch}/man1/mpi[er]* | ||||
| %{_mandir}/%{namearch}/man1/ompi* | ||||
| %{_mandir}/%{namearch}/man1/orte[-dr_]* | ||||
| %if %{with ucx} | ||||
| %{_mandir}/%{namearch}/man1/oshmem_info* | ||||
| %{_mandir}/%{namearch}/man1/oshrun* | ||||
| %{_mandir}/%{namearch}/man1/shmemrun* | ||||
| %endif | ||||
| %{_mandir}/%{namearch}/man7/ompi_* | ||||
| %{_mandir}/%{namearch}/man7/opal_* | ||||
| %{_mandir}/%{namearch}/man7/orte* | ||||
| %{_libdir}/%{name}/lib/openmpi/* | ||||
| %{_sysconfdir}/modulefiles/mpi/ | ||||
| %{_datadir}/modulefiles/mpi/ | ||||
| %dir %{_libdir}/%{name}/share | ||||
| %dir %{_libdir}/%{name}/share/openmpi | ||||
| %{_libdir}/%{name}/share/openmpi/amca-param-sets | ||||
| %{_libdir}/%{name}/share/openmpi/help*.txt | ||||
| %ifnarch s390 %{arm} | ||||
| %if %{with rdma} | ||||
| %{_libdir}/%{name}/share/openmpi/mca-btl-openib-device-params.ini | ||||
| %endif | ||||
| 
 | ||||
| %if 0%{?el7} | ||||
| %{_libdir}/%{name}/share/pmix/ | ||||
| %endif | ||||
| 
 | ||||
| %files devel | ||||
| %dir %{_includedir}/%{namearch} | ||||
| %{_libdir}/%{name}/bin/aggregate_profile.pl | ||||
| %{_libdir}/%{name}/bin/mpi[cCf]* | ||||
| %{_libdir}/%{name}/bin/opal_* | ||||
| %{_libdir}/%{name}/bin/orte[cCf]* | ||||
| %if %{with ucx} | ||||
| %{_libdir}/%{name}/bin/osh[cCf]* | ||||
| %endif | ||||
| %{_libdir}/%{name}/bin/profile2mat.pl | ||||
| %if %{with ucx} | ||||
| %{_libdir}/%{name}/bin/shmem[cCf]* | ||||
| %endif | ||||
| %{_includedir}/%{namearch}/* | ||||
| %{_fmoddir}/%{name}/ | ||||
| %{_libdir}/%{name}/lib/*.so | ||||
| @ -265,6 +325,10 @@ make check | ||||
| %{_libdir}/%{name}/lib/pkgconfig/ | ||||
| %{_libdir}/pkgconfig/*.pc | ||||
| %{_mandir}/%{namearch}/man1/mpi[cCf]* | ||||
| %if %{with ucx} | ||||
| %{_mandir}/%{namearch}/man1/osh[cCf]* | ||||
| %{_mandir}/%{namearch}/man1/shmem[cCf]* | ||||
| %endif | ||||
| %{_mandir}/%{namearch}/man1/opal_* | ||||
| %{_mandir}/%{namearch}/man3/* | ||||
| %{_libdir}/%{name}/share/openmpi/openmpi-valgrind.supp | ||||
| @ -281,12 +345,29 @@ make check | ||||
| %{_libdir}/%{name}/share/doc/ | ||||
| %{_mandir}/%{namearch}/man1/mpijavac.1.gz | ||||
| 
 | ||||
| %files -n python3-openmpi | ||||
| %if %{with python2} | ||||
| %files -n python2-openmpi | ||||
| %dir %{python2_sitearch}/%{name} | ||||
| %{python2_sitearch}/openmpi.pth | ||||
| %endif | ||||
| 
 | ||||
| %files -n python%{python3_pkgversion}-openmpi | ||||
| %dir %{python3_sitearch}/%{name} | ||||
| %{python3_sitearch}/openmpi.pth | ||||
| 
 | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Jul 21 2021 Honggang Li <honli@redhat.com> - 4.1.1-2 | ||||
| - fbtl-posix: link to common_ompio | ||||
| - Require environment(modules) | ||||
| - Revert upstream commit c36d7459b6331c4da82 | ||||
| - Resolves: rhbz#1974780, rhbz#1971771 | ||||
| 
 | ||||
| * Wed Jun 09 2021 Honggang Li <honli@redhat.com> - 4.1.1-1 | ||||
| - Update to upstream v4.1.1 release | ||||
| - Sync with Fedora build | ||||
| - Resolves: rhbz#1928631, rhbz#1920801 | ||||
| 
 | ||||
| * Wed Jan 27 2021 Honggang Li <honli@redhat.com> - 4.0.5-3 | ||||
| - disable gcc built-in atomics | ||||
| - Resolves: rhbz#1921262 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user