From 0622fb03989ea87d3a45d868072f008723c7e362e557e522f39e525771e5d6a7 Mon Sep 17 00:00:00 2001 From: Nicolas Morey-Chaisemartin Date: Fri, 3 Apr 2020 08:37:39 +0000 Subject: [PATCH] - Add Add-missing-extern-keywords.patch to fix compilation with GCC10 (bsc#1160270) OBS-URL: https://build.opensuse.org/package/show/science:HPC/infinipath-psm?expand=0&rev=27 --- Add-missing-extern-keywords.patch | 101 ++++++++++++++++++++++++++++++ infinipath-psm.changes | 5 ++ infinipath-psm.spec | 7 ++- 3 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 Add-missing-extern-keywords.patch diff --git a/Add-missing-extern-keywords.patch b/Add-missing-extern-keywords.patch new file mode 100644 index 0000000..3c86558 --- /dev/null +++ b/Add-missing-extern-keywords.patch @@ -0,0 +1,101 @@ +commit 352e1547fde216e4e2302e4e6d4f62a678a1858c +Author: Nicolas Morey-Chaisemartin +Date: Wed Jan 8 08:28:43 2020 +0100 + + Add missing extern keywords + + Starting from the upcoming GCC release 10, the default of -fcommon option will change to -fno-common: + In C, global variables with multiple tentative definitions will result in linker errors. + Global variable accesses are also more efficient on various targets. + + This fixes compilations errors with -fno-common enabled + + Signed-off-by: Nicolas Morey-Chaisemartin + +diff --git psm_error.h psm_error.h +index 21f5745c2d1f..886da8944161 100644 +--- psm_error.h ++++ psm_error.h +@@ -42,7 +42,7 @@ + #define PSMI_EP_NORETURN ((psm_ep_t) -2) + #define PSMI_EP_LOGEVENT ((psm_ep_t) -3) + +-psm_ep_errhandler_t psmi_errhandler_global; ++extern psm_ep_errhandler_t psmi_errhandler_global; + + psm_error_t psmi_handle_error(psm_ep_t ep, psm_error_t error, + const char *buf, ...) +diff --git psm_user.h psm_user.h +index c9aadcc42516..75e5c16addb7 100644 +--- psm_user.h ++++ psm_user.h +@@ -100,7 +100,7 @@ psm_error_t psmi_mq_wait_internal(psm_mq_req_t *ireq); + #endif + + #ifdef PSMI_PLOCK_IS_SPINLOCK +- psmi_spinlock_t psmi_progress_lock; ++ extern psmi_spinlock_t psmi_progress_lock; + #define PSMI_PLOCK_INIT() psmi_spin_init(&psmi_progress_lock) + #define PSMI_PLOCK_TRY() psmi_spin_trylock(&psmi_progress_lock) + #define PSMI_PLOCK() psmi_spin_lock(&psmi_progress_lock) +@@ -109,8 +109,8 @@ psm_error_t psmi_mq_wait_internal(psm_mq_req_t *ireq); + #define PSMI_PUNLOCK_ASSERT() + #define PSMI_PLOCK_DISABLED 0 + #elif defined(PSMI_PLOCK_IS_MUTEXLOCK_DEBUG) +- pthread_mutex_t psmi_progress_lock; +- pthread_t psmi_progress_lock_owner; ++ extern pthread_mutex_t psmi_progress_lock; ++ extern pthread_t psmi_progress_lock_owner; + #define PSMI_PLOCK_NO_OWNER ((pthread_t)(-1)) + + PSMI_ALWAYS_INLINE( +diff --git psm_utils.h psm_utils.h +index e6420e01ea62..6c2c5c3e054e 100644 +--- psm_utils.h ++++ psm_utils.h +@@ -254,7 +254,7 @@ int psmi_diags(void); + * Fault injection + */ + struct psmi_faultinj_spec; +-int psmi_faultinj_enabled; /* use macro to test */ ++extern int psmi_faultinj_enabled; /* use macro to test */ + #if 1 /* possible to disable at compile time */ + #define PSMI_FAULTINJ_ENABLED() (!!psmi_faultinj_enabled) + #else +diff --git ptl_am/ptl_fwd.h ptl_am/ptl_fwd.h +index 3be8f5b37d80..bfb2715ff051 100644 +--- ptl_am/ptl_fwd.h ++++ ptl_am/ptl_fwd.h +@@ -47,7 +47,7 @@ + #endif + + /* Symbol in am ptl */ +-struct ptl_ctl_init psmi_ptl_amsh; ++extern struct ptl_ctl_init psmi_ptl_amsh; + + /* Special non-ptl function exposed to pre-attach to shm segment */ + psm_error_t psmi_shm_attach(psm_ep_t ep, int *shmidx_o); +diff --git ptl_ips/ptl_fwd.h ptl_ips/ptl_fwd.h +index 08d4c53e1b12..5e9cd47a30d7 100644 +--- ptl_ips/ptl_fwd.h ++++ ptl_ips/ptl_fwd.h +@@ -38,5 +38,5 @@ + typedef struct ptl_epaddr ips_epaddr_t; + + /* Symbol in ips ptl */ +-struct ptl_ctl_init psmi_ptl_ips; ++extern struct ptl_ctl_init psmi_ptl_ips; + #endif /* _PTL_FWD_IPS_H */ +diff --git ptl_self/ptl_fwd.h ptl_self/ptl_fwd.h +index ff79c7e66779..32f9041b1f00 100644 +--- ptl_self/ptl_fwd.h ++++ ptl_self/ptl_fwd.h +@@ -35,7 +35,7 @@ + #define _PTL_FWD_SELF_H + + /* Symbol in am ptl */ +-struct ptl_ctl_init psmi_ptl_self; ++extern struct ptl_ctl_init psmi_ptl_self; + + #endif + diff --git a/infinipath-psm.changes b/infinipath-psm.changes index e6c918b..4f19cc4 100644 --- a/infinipath-psm.changes +++ b/infinipath-psm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Apr 3 08:37:16 UTC 2020 - Nicolas Morey-Chaisemartin + +- Add Add-missing-extern-keywords.patch to fix compilation with GCC10 (bsc#1160270) + ------------------------------------------------------------------- Wed Apr 24 09:44:50 UTC 2019 - Martin Liška diff --git a/infinipath-psm.spec b/infinipath-psm.spec index fca542f..8406062 100644 --- a/infinipath-psm.spec +++ b/infinipath-psm.spec @@ -1,7 +1,7 @@ # # spec file for package infinipath-psm # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ Release: 0 Summary: QLogic PSM Libraries License: BSD-2-Clause OR GPL-2.0-only Group: Productivity/Networking/System -Url: http://www.qlogic.com/ +URL: http://www.qlogic.com/ Source0: %{name}-%{version}%{git_ver}.tar.gz Source1: baselibs.conf # PATCH-FIX-UPSTREAM infinipath-psm-cflags.patch pth@suse.de @@ -37,6 +37,8 @@ Patch3: infinipath-psm-executable_headers.patch Patch4: reproducible.patch # PATCH-FIX-UPSTREAM Include for minor Patch5: sysmacros.patch +# PATCH-FIX-UPSTREAM FIx GCC10 support +Patch6: Add-missing-extern-keywords.patch BuildRequires: libuuid-devel Conflicts: infinipath-libs ExclusiveArch: %ix86 x86_64 @@ -103,6 +105,7 @@ interfaces in parallel environments. %patch3 %patch4 -p1 %patch5 -p1 +%patch6 %build %define _lto_cflags %{nil}