diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0027dda --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libpsm2-10.3.58.tar.gz diff --git a/.libpsm2.metadata b/.libpsm2.metadata new file mode 100644 index 0000000..29682b7 --- /dev/null +++ b/.libpsm2.metadata @@ -0,0 +1 @@ +871dea07ad15f63f63b6d2ee43a9283b35abc113 SOURCES/libpsm2-10.3.58.tar.gz diff --git a/SOURCES/0001-temporally-replace-g3-with-default-g.patch b/SOURCES/0001-temporally-replace-g3-with-default-g.patch new file mode 100644 index 0000000..15b87d7 --- /dev/null +++ b/SOURCES/0001-temporally-replace-g3-with-default-g.patch @@ -0,0 +1,64 @@ +From 1def43055d3563ecfeddaa8881f3d910e7fd55a5 Mon Sep 17 00:00:00 2001 +From: Honggang Li +Date: Mon, 24 Sep 2018 17:04:16 +0800 +Subject: [PATCH] temporally replace '-g3' with default '-g' + +rpm debugedit might corrupt the debug file strings when source files +have been build with gcc -g3 which generates a .debug_macro section +which shares strings with the .debuginfo section. + +https://bugzilla.redhat.com/show_bug.cgi?id=1630926 + +When bz1630926 got fixed, we no longer need this workaround. + +Signed-off-by: Honggang Li +--- + buildflags.mak | 6 +++--- + compat/buildflags.mak | 4 ++-- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/buildflags.mak b/buildflags.mak +index f59958c..633a010 100644 +--- a/buildflags.mak ++++ b/buildflags.mak +@@ -147,9 +147,9 @@ ifneq (,${HFI_BRAKE_DEBUG}) + BASECFLAGS += -DHFI_BRAKE_DEBUG + endif + ifneq (,${PSM_DEBUG}) +- BASECFLAGS += -O -g3 -DPSM_DEBUG -D_HFI_DEBUGGING -funit-at-a-time -Wp,-D_FORTIFY_SOURCE=2 ++ BASECFLAGS += -O -g -DPSM_DEBUG -D_HFI_DEBUGGING -funit-at-a-time -Wp,-D_FORTIFY_SOURCE=2 + else +- BASECFLAGS += -O3 -g3 ++ BASECFLAGS += -O3 -g + endif + ifneq (,${PSM_COVERAGE}) # This check must come after PSM_DEBUG to override optimization setting + BASECFLAGS += -O -fprofile-arcs -ftest-coverage +@@ -185,7 +185,7 @@ else + BASECFLAGS += -DNVALGRIND + endif + +-ASFLAGS += -g3 -fpic ++ASFLAGS += -g -fpic + + BASECFLAGS += ${OPA_CFLAGS} + +diff --git a/compat/buildflags.mak b/compat/buildflags.mak +index b448e4e..ab501d5 100644 +--- a/compat/buildflags.mak ++++ b/compat/buildflags.mak +@@ -84,10 +84,10 @@ BASECFLAGS +=-Wall $(WERROR) + + BASECFLAGS += -fpic -fPIC + +-ASFLAGS += -g3 -fpic ++ASFLAGS += -g -fpic + + ifeq (${CCARCH},icc) +- BASECFLAGS += -O3 -g3 ++ BASECFLAGS += -O3 -g + LDFLAGS += -static-intel + else + ifeq (${CCARCH},gcc) +-- +2.14.4 + diff --git a/SOURCES/extend-fdesc-array.patch b/SOURCES/extend-fdesc-array.patch new file mode 100644 index 0000000..4729057 --- /dev/null +++ b/SOURCES/extend-fdesc-array.patch @@ -0,0 +1,11 @@ +--- psm_utils.c.orig 2018-03-14 21:12:33.678607767 -0400 ++++ psm_utils.c 2018-03-14 21:11:04.696909162 -0400 +@@ -951,7 +951,7 @@ struct psmi_faultinj_spec *psmi_faultinj + union psmi_envvar_val env_fi; + char fvals_str[128]; + char fname[128]; +- char fdesc[256]; ++ char fdesc[512]; + + snprintf(fvals_str, sizeof(fvals_str) - 1, "%d:%d:1", num, + denom); diff --git a/SPECS/libpsm2.spec b/SPECS/libpsm2.spec new file mode 100644 index 0000000..7e90d49 --- /dev/null +++ b/SPECS/libpsm2.spec @@ -0,0 +1,198 @@ +# +# 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: 10.3.58 +Release: 2%{?dist} +License: BSD or GPLv2 +URL: https://github.com/01org/opa-psm2/ + +# The tarball can be created by: +# git clone https://github.com/01org/opa-psm2 +# cd opa-psm2 +# git checkout 0f9213e7af8d32c291d4657ff4a3279918de1e60 +# make dist +Source0: %{name}-%{version}.tar.gz +Patch1: extend-fdesc-array.patch +Patch2: 0001-temporally-replace-g3-with-default-g.patch + +# The OPA product is supported on x86 64 only: +ExclusiveArch: x86_64 +BuildRequires: libuuid-devel +BuildRequires: numactl-devel +BuildRequires: systemd +BuildRequires: gcc +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 +%patch1 -p0 +%patch2 -p1 + +%build +%{set_build_flags} +make %{?_smp_mflags} + +%install +%make_install +rm -f %{buildroot}%{_libdir}/*.a + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%license COPYING +%{_libdir}/libpsm2.so.2.1 +%{_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 Sep 24 2018 Honggang Li - 10.3.58-2 +- Fix corrupted libpsm2 debuginfo file +- Resolves: bz1630766 + +* Fri Jun 22 2018 Honggang Li - 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 - 10.3.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 4 2018 Honggang Li - 10.3.8-3 +- Filter PSM1 library as private library +- Resolves: bz1530979 + +* Fri Dec 15 2017 Honggang Li - 10.3.8-2 +- Minor enhancement +- Resolves: bz1526261 + +* Tue Dec 12 2017 Honggang Li - 10.3.8-1 +- Rebase to latest upstream release +- Resolves: bz1524846 + +* Thu Aug 03 2017 Fedora Release Engineering - 10.2.103_1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 10.2.103_1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Apr 13 2017 Honggang Li - 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 - 10.2.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jun 13 2016 Michal Schmidt - 10.2.2-2 +- Remove redundant %%setup -n argument. +- Packaging Guidelines: Never use "(R)" in description. + +* Tue Jun 07 2016 Paul Reger - 10.2.2-1 +- Fix build failures only. + +* Tue Apr 05 2016 Paul Reger - 10.2.1-1 +- Upstream PSM2 source code for Fedora.