From ac25b27e9eb3eb776af36f1cc3baf3b238815bb8 Mon Sep 17 00:00:00 2001 From: Joshua Hursey Date: Tue, 28 Feb 2017 10:10:19 -0600 Subject: [PATCH 1/3] configury: add -lpthread to LIBS when pthread locks are used Signed-off-by: Gilles Gouaillardet (cherry picked from commit on PMIx v1.2 branch https://github.com/pmix/master/commit/a2d431cbec162b01e15920cc75df1af9ad244f06) Signed-off-by: Joshua Hursey --- opal/mca/pmix/pmix112/pmix/config/pmix_check_lock.m4 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opal/mca/pmix/pmix112/pmix/config/pmix_check_lock.m4 b/opal/mca/pmix/pmix112/pmix/config/pmix_check_lock.m4 index 2d5c1ba8646..7655b12979c 100644 --- a/opal/mca/pmix/pmix112/pmix/config/pmix_check_lock.m4 +++ b/opal/mca/pmix/pmix112/pmix/config/pmix_check_lock.m4 @@ -3,6 +3,8 @@ dnl dnl Copyright (c) 2017 Mellanox Technologies, Inc. dnl All rights reserved. dnl Copyright (c) 2017 IBM Corporation. All rights reserved. +dnl Copyright (c) 2017 Research Organization for Information Science +dnl and Technology (RIST). All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow @@ -52,7 +54,7 @@ AC_DEFUN([PMIX_CHECK_DSTOR_LOCK],[ if test "$_x_ac_fcntl_lock_found" == "0"; then AC_MSG_ERROR([dstore: no available locking mechanisms was found. Can not continue. Try disabling dstore]) fi + LIBS="$orig_libs" fi - LIBS="$orig_libs" ]) From 3b31ce4efc780e09ad9f8adec8bc3ac2c2f623f9 Mon Sep 17 00:00:00 2001 From: Joshua Hursey Date: Tue, 28 Feb 2017 10:13:27 -0600 Subject: [PATCH 2/3] dstore/esh: make Oracle compilers happy panda again ! revamp the _ESH_{WR,RD,UN}LOCK macros to work around a bug in the Oracle compilers that resulted in a crash at compilation time Signed-off-by: Gilles Gouaillardet (cherry picked from commit on PMIx v1.2 branch https://github.com/pmix/master/commit/8587f278a17301633ccf6f0d7cb086e3be8f4793) Signed-off-by: Joshua Hursey --- .../pmix/pmix112/pmix/src/dstore/pmix_esh.c | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/opal/mca/pmix/pmix112/pmix/src/dstore/pmix_esh.c b/opal/mca/pmix/pmix112/pmix/src/dstore/pmix_esh.c index bff054bf160..d8822a86b26 100644 --- a/opal/mca/pmix/pmix112/pmix/src/dstore/pmix_esh.c +++ b/opal/mca/pmix/pmix112/pmix/src/dstore/pmix_esh.c @@ -136,23 +136,11 @@ __extension__ ({ \ }) #ifdef ESH_PTHREAD_LOCK -#define _ESH_LOCK(rwlock, operation) \ +#define _ESH_LOCK(rwlock, func) \ __extension__ ({ \ pmix_status_t ret = PMIX_SUCCESS; \ int rc; \ - switch (operation) { \ - case F_WRLCK: \ - rc = pthread_rwlock_wrlock(rwlock); \ - break; \ - case F_RDLCK: \ - rc = pthread_rwlock_rdlock(rwlock); \ - break; \ - case F_UNLCK: \ - rc = pthread_rwlock_unlock(rwlock); \ - break; \ - default: \ - rc = PMIX_ERR_BAD_PARAM; \ - } \ + rc = pthread_rwlock_##func(rwlock); \ if (0 != rc) { \ switch (errno) { \ case EINVAL: \ @@ -169,6 +157,10 @@ __extension__ ({ \ } \ ret; \ }) + +#define _ESH_WRLOCK(rwlock) _ESH_LOCK(rwlock, wrlock) +#define _ESH_RDLOCK(rwlock) _ESH_LOCK(rwlock, rdlock) +#define _ESH_UNLOCK(rwlock) _ESH_LOCK(rwlock, unlock) #endif #ifdef ESH_FCNTL_LOCK @@ -209,11 +201,11 @@ __extension__ ({ \ } \ ret; \ }) -#endif #define _ESH_WRLOCK(lock) _ESH_LOCK(lock, F_WRLCK) #define _ESH_RDLOCK(lock) _ESH_LOCK(lock, F_RDLCK) #define _ESH_UNLOCK(lock) _ESH_LOCK(lock, F_UNLCK) +#endif #define ESH_INIT_SESSION_TBL_SIZE 2 #define ESH_INIT_NS_MAP_TBL_SIZE 2 From 03b250a1ebad669cc13c136e87e5f838629efb1a Mon Sep 17 00:00:00 2001 From: Joshua Hursey Date: Tue, 28 Feb 2017 10:21:01 -0600 Subject: [PATCH 3/3] pmix/pmix112: Add README about v1.2.1 cherry-picks Signed-off-by: Joshua Hursey --- opal/mca/pmix/pmix112/README | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 opal/mca/pmix/pmix112/README diff --git a/opal/mca/pmix/pmix112/README b/opal/mca/pmix/pmix112/README new file mode 100644 index 00000000000..bb31e4b33b5 --- /dev/null +++ b/opal/mca/pmix/pmix112/README @@ -0,0 +1,14 @@ +Copyright (c) 2017 IBM Corporation. All rights reserved. +$COPYRIGHT$ + +Additional copyrights may follow + +$HEADER$ + +=========================================================================== +This internal component includes PMIx v1.2.1 plus these two commits +cherry-picked from the PMIx v1.2 branch (which will be included in the +eventual PMIx v1.2.2 release). + + * https://github.com/pmix/master/commit/a2d431cbec162b01e15920cc75df1af9ad244f06 + * https://github.com/pmix/master/commit/8587f278a17301633ccf6f0d7cb086e3be8f4793