diff --git a/infinipath-psm.spec b/infinipath-psm.spec index 55a1b1f..1608831 100644 --- a/infinipath-psm.spec +++ b/infinipath-psm.spec @@ -1,6 +1,6 @@ Name: infinipath-psm Version: 3.3 -Release: 11 +Release: 12 License: GPLv2 or BSD Summary: Libraries for Intel Performance Scaled Messaging URL: https://github.com/01org/psm @@ -27,6 +27,8 @@ Patch0005: 0001-Extend-buffer-for-uvalue-and-pvalue.patch Patch0006: extend-fdesc-array.patch # Fix stringop-truncation build error Patch0007: fix-stringop-truncation-build-error.patch +# Fix multiple definitions build error +Patch0008: psm-multiple-definition.patch %description PSM API is Intel's low-level user-level communications interface for the True Scale family of products. @@ -78,6 +80,9 @@ install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/udev/rules.d/60-ipath.rule %{_includedir}/{psm.h,psm_mq.h} %changelog +* Mon Aug 02 2021 wangyong - 3.3-12 +- Fix build error caused by GCC upgrade to GCC-10 + * Mon May 31 2021 huanghaitao - 3.3-11 - Completing build dependencies diff --git a/psm-multiple-definition.patch b/psm-multiple-definition.patch new file mode 100644 index 0000000..423292b --- /dev/null +++ b/psm-multiple-definition.patch @@ -0,0 +1,94 @@ +diff --git a/psm_error.h b/psm_error.h +index 21f5745..886da89 100644 +--- a/psm_error.h ++++ b/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 a/psm_user.h b/psm_user.h +index c9aadcc..f9a115e 100644 +--- a/psm_user.h ++++ b/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,7 +109,7 @@ 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; ++ extern pthread_mutex_t psmi_progress_lock; + pthread_t psmi_progress_lock_owner; + #define PSMI_PLOCK_NO_OWNER ((pthread_t)(-1)) + +@@ -156,7 +156,7 @@ psm_error_t psmi_mq_wait_internal(psm_mq_req_t *ireq); + + #define PSMI_PLOCK_DISABLED 0 + #elif defined (PSMI_PLOCK_IS_MUTEXLOCK) +- pthread_mutex_t psmi_progress_lock; ++ extern pthread_mutex_t psmi_progress_lock; + #define PSMI_PLOCK_INIT() /* static initialization */ + #define PSMI_PLOCK_TRY() pthread_mutex_trylock(&psmi_progress_lock) + #define PSMI_PLOCK() pthread_mutex_lock(&psmi_progress_lock) +diff --git a/psm_utils.h b/psm_utils.h +index e6420e0..6c2c5c3 100644 +--- a/psm_utils.h ++++ b/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 a/ptl_am/ptl_fwd.h b/ptl_am/ptl_fwd.h +index 3be8f5b..bfb2715 100644 +--- a/ptl_am/ptl_fwd.h ++++ b/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 a/ptl_ips/ptl_fwd.h b/ptl_ips/ptl_fwd.h +index 08d4c53..5e9cd47 100644 +--- a/ptl_ips/ptl_fwd.h ++++ b/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 a/ptl_self/ptl_fwd.h b/ptl_self/ptl_fwd.h +index ff79c7e..32f9041 100644 +--- a/ptl_self/ptl_fwd.h ++++ b/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 +