From cb411c61cb95d7ebeac6a74b61987b2cfb3c8392 Mon Sep 17 00:00:00 2001
From: CentOS Sources <bugs@centos.org>
Date: Nov 03 2021 22:11:47 +0000
Subject: import libpsm2-11.2.185-2.el9


---

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7072623
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/libpsm2-11.2.185.tar.gz
diff --git a/.libpsm2.metadata b/.libpsm2.metadata
new file mode 100644
index 0000000..549ff91
--- /dev/null
+++ b/.libpsm2.metadata
@@ -0,0 +1 @@
+725613650b5647ceb7bc5e47a9b9d296bea5d3be SOURCES/libpsm2-11.2.185.tar.gz
diff --git a/SOURCES/0001-README-add-section-about-OMPI-4.1.x-OFI-BTL-and-high.patch b/SOURCES/0001-README-add-section-about-OMPI-4.1.x-OFI-BTL-and-high.patch
new file mode 100644
index 0000000..8f7e90b
--- /dev/null
+++ b/SOURCES/0001-README-add-section-about-OMPI-4.1.x-OFI-BTL-and-high.patch
@@ -0,0 +1,51 @@
+From 6e0231074111ff1fda0b2de1765e1988fda2e9c9 Mon Sep 17 00:00:00 2001
+From: Brendan Cunningham <bcunningham@cornelisnetworks.com>
+Date: Fri, 7 May 2021 16:33:35 -0400
+Subject: [PATCH] README: add section about OMPI 4.1.x, OFI BTL, and high-PPN
+ jobs.
+
+Signed-off-by: Brendan Cunningham <bcunningham@cornelisnetworks.com>
+---
+ README | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/README b/README
+index 7990555..2961534 100644
+--- a/README
++++ b/README
+@@ -67,7 +67,6 @@ Contains the following sections:
+ - INSTALLING
+   * INSTALLING USING MAKEFILE
+   * INSTALLING USING EITHER YUM OR DNF
+-- TESTING
+ - RELATED SOFTWARE TO PSM2
+ - SUPPORTING DOCUMENTATION
+ 
+@@ -251,6 +250,24 @@ libraries available on them. Open MPI provides a standard configure, make and
+ make install mechanism which will detect and build the relevant PSM2 network
+ modules for Open MPI once the header and runtime files are detected.
+ 
++Open MPI 4.1.x, OFI BTL, and high PPN jobs
++----------------
++Open MPI added the OFI BTL for one-sided communication. On an OPA fabric, the
++OFI BTL may use the PSM2 OFI provider underneath. If PSM2 is in-use as both
++the MTL (directly or via OFI) and the BTL (via OFI), then each rank in the
++Open MPI job will require two PSM2 endpoints and PSM2 context-sharing will
++be disabled.
++
++In this case, total number of PSM2 ranks on a node can be no more than:
++  (num_hfi * num_user_contexts)/2
++Where num_user_contexts is typically equal to the number of physical CPU
++cores on that node.
++
++If your job does not require an inter-node BTL (e.g. OFI), then you can
++disable the OFI BTL in one of two ways:
++  1. When building Open MPI, specify '--with-ofi=no' when you run 'configure'.
++  2. When running your Open MPI job, add '-mca btl self,vader'.
++
+ MVAPICH2 support
+ ----------------
+ MVAPICH2 supports PSM2 transport for optimized communication on HFI hardware.
+-- 
+2.32.0
+
diff --git a/SOURCES/libpsm2-gcc11.patch b/SOURCES/libpsm2-gcc11.patch
new file mode 100644
index 0000000..285046d
--- /dev/null
+++ b/SOURCES/libpsm2-gcc11.patch
@@ -0,0 +1,26 @@
+diff -Nrup a/include/linux-i386/sysdep.h b/include/linux-i386/sysdep.h
+--- a/include/linux-i386/sysdep.h	2019-10-03 20:00:29.000000000 -0600
++++ b/include/linux-i386/sysdep.h	2020-10-19 16:10:45.680585173 -0600
+@@ -139,12 +139,18 @@ static __inline__ uint32_t ips_cmpxchg(v
+ 				       uint32_t old_val, uint32_t new_val)
+ {
+ 	uint32_t prev;
+-	struct xchg_dummy {
+-		uint32_t a[100];
+-	};
+ 
++	/* This code used to cast PTR to a type which was an array of 100
++	   uint32_t objects.  That makes no sense as the cmpxchgl's side
++	   effect can be covered by an single int.
++
++	   The semantics of GCC's ASMs for memory is that it clobbers the
++	   whole pointed-to object.  Thus analyzers saw a 100 uint32_t sized
++	   store which triggers diagnostics for out of bounds array writes.
++
++	   The cast to the dummy type has been removed.  */
+ 	asm volatile (LOCK_PREFIX "cmpxchgl %1,%2" : "=a"(prev)
+-		      : "q"(new_val), "m"(*(struct xchg_dummy *)ptr), "0"(old_val)
++		      : "q"(new_val), "m"(*ptr), "0"(old_val)
+ 		      : "memory");
+ 
+ 	return prev;
diff --git a/SPECS/libpsm2.spec b/SPECS/libpsm2.spec
new file mode 100644
index 0000000..306ab72
--- /dev/null
+++ b/SPECS/libpsm2.spec
@@ -0,0 +1,254 @@
+#
+#  This file is provided under a dual BSD/GPLv2 license.  When using or
+#  redistributing this file, you may do so under either license.
+#
+#  GPL LICENSE SUMMARY
+#
+#  Copyright(c) 2015 Intel Corporation.
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of version 2 of the GNU General Public License as
+#  published by the Free Software Foundation.
+#
+#  This program is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  Contact Information:
+#  Intel Corporation, www.intel.com
+#
+#  BSD LICENSE
+#
+#  Copyright(c) 2015 Intel Corporation.
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#
+#    * Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in
+#      the documentation and/or other materials provided with the
+#      distribution.
+#    * Neither the name of Intel Corporation nor the names of its
+#      contributors may be used to endorse or promote products derived
+#      from this software without specific prior written permission.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Copyright (c) 2014-2015 Intel Corporation. All rights reserved.
+#
+Summary: Intel PSM Libraries
+Name: libpsm2
+Version: 11.2.185
+Release: 2%{?dist}
+License: BSD or GPLv2
+URL: https://github.com/cornelisnetworks/opa-psm2/
+
+# The tarball can be created by:
+# git clone https://github.com/cornelisnetworks/opa-psm2.git
+# cd opa-psm2
+# git checkout 7a33bedc4bb3dff4e57c00293a2d70890db4d983
+# make dist
+Source0: %{name}-%{version}.tar.gz
+Patch2: %{name}-gcc11.patch
+Patch3: 0001-README-add-section-about-OMPI-4.1.x-OFI-BTL-and-high.patch
+
+# The OPA product is supported on x86_64 only:
+ExclusiveArch: x86_64
+BuildRequires: libuuid-devel
+BuildRequires: numactl-devel
+BuildRequires: systemd
+BuildRequires: gcc
+BuildRequires: make
+Obsoletes: hfi1-psm < 1.0.0
+
+%package devel
+Summary: Development files for Intel PSM
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: libuuid-devel
+
+%package compat
+Summary: Compat library for Intel PSM
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: systemd-udev
+
+%global _privatelibs libpsm_infinipath[.]so[.]1.*
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
+%description
+The PSM Messaging API, or PSM API, is the low-level
+user-level communications interface for the Intel OPA
+family of products. PSM users are enabled with mechanisms
+necessary to implement higher level communications
+interfaces in parallel environments.
+
+%description devel
+Development files for the Intel PSM library
+
+%description compat
+Support for MPIs linked with PSM versions < 2
+
+%prep
+%setup -q
+%patch2 -p1
+%patch3 -p1
+
+%build
+%{set_build_flags}
+%{make_build}
+
+%install
+%if 0%{?fedora}
+export DISTRO=fedora
+%endif
+%if 0%{?rhel}
+export DISTRO=rhel
+%endif
+%make_install
+rm -f %{buildroot}%{_libdir}/*.a
+
+%ldconfig_scriptlets
+
+%files
+%license COPYING
+%{_libdir}/libpsm2.so.2.*
+%{_libdir}/libpsm2.so.2
+%if 0%{?rhel} >= 8
+%{_udevrulesdir}/40-psm.rules
+%endif
+
+
+%files devel
+%{_libdir}/libpsm2.so
+%{_includedir}/psm2.h
+%{_includedir}/psm2_mq.h
+%{_includedir}/psm2_am.h
+%{_includedir}/hfi1diag
+
+%files compat
+%{_libdir}/psm2-compat
+%{_udevrulesdir}/40-psm-compat.rules
+%{_prefix}/lib/libpsm2
+%if 0%{?fedora}
+%{_prefix}/lib/modprobe.d/libpsm2-compat.conf
+%endif
+%if 0%{?rhel} >= 8
+%{_sysconfdir}/modprobe.d/libpsm2-compat.conf
+%endif
+
+%changelog
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 11.2.185-2
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+  Related: rhbz#1991688
+
+* Thu Jun 17 2021 Honggang Li <honli@redhat.com> - 11.2.185-1
+- Rebase to latest upstream release PSM2_11.2.185
+- Resolves: rhbz#1924899
+
+* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 11.2.86-9
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 11.2.86-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Oct 19 2020 Jeff Law <law@redhat.com> - 11.2.86-7
+- Avoid out of bounds array index diagnostic with gcc-11
+
+* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 11.2.86-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 13 2020 Merlin Mathesius <mmathesi@redhat.com> - 11.2.86-5
+- Minor updates to enable building for ELN
+
+* Mon Feb 10 2020 Honggang Li <honli@redhat.com> - 11.2.86-4
+- Fix FTBFS in Fedora rawhide/f32
+- Resolves: bz1799597
+
+* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 11.2.86-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Fri Jan 17 2020 Tom Stellard <tstellar@redhat.com> - 11.2.86-2
+- Use make_build macro
+
+* Thu Oct 03 2019 Honggang Li <honli@redhat.com> - 11.2.86-1
+- Rebase to latest upstream release PSM2_11.2.86
+- Resolves: bz1758390
+
+* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 11.2.78-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 11.2.78-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Thu Jan 31 2019 Honggang Li <honli@redhat.com> - 11.2.78-1
+- Rebase to latest upstream release PSM2_11.2.77
+- Resolves: bz1671190
+
+* Mon Oct  8 2018 Honggang Li <honli@redhat.com> - 11.2.23-1
+- Rebase to latest upstream release 11.2.23
+- Resolves: bz1637273
+
+* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 10.3.58-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Fri Jun 22 2018 Honggang Li <honli@redhat.com> - 10.3.58-1
+- Rebase to latest upstream release 10.3.58.
+- Resolves: bz1594073
+
+* Thu Mar 15 2018 - 10.3.8-5
+- Fix partial injection of Fedora build flags.
+- Double the sizeof array fdesc to fix a gcc compiling issue.
+- Resolves: bz1556062
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 10.3.8-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Jan  4 2018 Honggang Li <honli@redhat.com> - 10.3.8-3
+- Filter PSM1 library as private library
+- Resolves: bz1530979
+
+* Fri Dec 15 2017 Honggang Li <honli@redhat.com> - 10.3.8-2
+- Minor enhancement
+- Resolves: bz1526261
+
+* Tue Dec 12 2017 Honggang Li <honli@redhat.com> - 10.3.8-1
+- Rebase to latest upstream release
+- Resolves: bz1524846
+
+* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.2.103_1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.2.103_1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Apr 13 2017 Honggang Li <honli@redhat.com> - 10.2.103_1-1
+- Rebase to latest upstream master branch.
+- Fix build failures caught by gcc 7.x.
+- Resolves: bz1423872
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.2.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Jun 13 2016 Michal Schmidt <mschmidt@redhat.com> - 10.2.2-2
+- Remove redundant %%setup -n argument.
+- Packaging Guidelines: Never use "(R)" in description.
+
+* Tue Jun 07 2016 Paul Reger <paul.j.reger@intel.com> - 10.2.2-1
+- Fix build failures only.
+
+* Tue Apr 05 2016 Paul Reger <paul.j.reger@intel.com> - 10.2.1-1
+- Upstream PSM2 source code for Fedora.