Update to OpenPA 1.0.4 Inter-process locking may be broken on NetBSD under some conditions. (This didn't get worse since previous package.) Field tests (benchmarks/skampi) don't reveal that the relevant code path is invoked. Major Changes in OpenPA v1.0.4 * native ARM (v7 and higher) support * numerous memory barrier placement improvements in queue and test code * x86 memory barrier improvements, including for Intel MIC * numerous build system improvements Major Changes in OpenPA v1.0.3 * Libtool shared library support for OPA, avoiding shared/static mixed linking problems on some platforms. * The build system should now work more portably with broken/exotic shells. * pkg-config support * Emulated atomics can now be detected by the presence of an OPA_EXPLICIT_EMULATION #define in opa_config.h. * PPC types are now correctly aligned to 8 bytes instead of 16 bytes. * many more tests for "make check", fixed missing memory barriers in one testdiff -r1.3 -r1.4 pkgsrc/parallel/openpa/Makefile
(asau)
@@ -1,14 +1,16 @@ | @@ -1,14 +1,16 @@ | |||
1 | # $NetBSD: Makefile,v 1.3 2012/09/11 20:36:18 asau Exp $ | 1 | # $NetBSD: Makefile,v 1.4 2013/03/17 14:43:48 asau Exp $ | |
2 | 2 | |||
3 | DISTNAME= openpa-1.0.2 | 3 | DISTNAME= openpa-1.0.4 | |
4 | CATEGORIES= parallel | 4 | CATEGORIES= parallel | |
5 | MASTER_SITES= http://trac.mcs.anl.gov/projects/openpa/raw-attachment/wiki/Downloads/ | 5 | MASTER_SITES= http://trac.mcs.anl.gov/projects/openpa/raw-attachment/wiki/Downloads/ | |
6 | 6 | |||
7 | MAINTAINER= asau@inbox.ru | 7 | MAINTAINER= asau@inbox.ru | |
8 | HOMEPAGE= http://trac.mcs.anl.gov/projects/openpa/ | 8 | HOMEPAGE= http://trac.mcs.anl.gov/projects/openpa/ | |
9 | COMMENT= Atomic primitives for high performance software | 9 | COMMENT= Atomic primitives for high performance software | |
10 | 10 | |||
11 | USE_TOOLS= pkg-config | |||
11 | GNU_CONFIGURE= yes | 12 | GNU_CONFIGURE= yes | |
13 | USE_LIBTOOL= yes | |||
12 | TEST_TARGET= check | 14 | TEST_TARGET= check | |
13 | 15 | |||
14 | .include "../../mk/bsd.pkg.mk" | 16 | .include "../../mk/bsd.pkg.mk" |
@@ -1,21 +1,21 @@ | @@ -1,21 +1,21 @@ | |||
1 | @comment $NetBSD: PLIST,v 1.2 2009/12/11 03:58:37 asau Exp $ | 1 | @comment $NetBSD: PLIST,v 1.3 2013/03/17 14:43:48 asau Exp $ | |
2 | include/opa_config.h | 2 | include/opa_config.h | |
3 | include/opa_primitives.h | 3 | include/opa_primitives.h | |
4 | include/opa_queue.h | 4 | include/opa_queue.h | |
5 | include/opa_util.h | 5 | include/opa_util.h | |
6 | include/primitives/opa_by_lock.h | 6 | include/primitives/opa_by_lock.h | |
7 | include/primitives/opa_emulated.h | 7 | include/primitives/opa_emulated.h | |
8 | include/primitives/opa_gcc_ia64.h | 8 | include/primitives/opa_gcc_ia64.h | |
9 | include/primitives/opa_gcc_intel_32_64.h | 9 | include/primitives/opa_gcc_intel_32_64.h | |
10 | include/primitives/opa_gcc_intel_32_64_barrier.h | 10 | include/primitives/opa_gcc_intel_32_64_barrier.h | |
11 | include/primitives/opa_gcc_intel_32_64_ops.h | 11 | include/primitives/opa_gcc_intel_32_64_ops.h | |
12 | include/primitives/opa_gcc_intel_32_64_p3.h | 12 | include/primitives/opa_gcc_intel_32_64_p3.h | |
13 | include/primitives/opa_gcc_intel_32_64_p3barrier.h | 13 | include/primitives/opa_gcc_intel_32_64_p3barrier.h | |
14 | include/primitives/opa_gcc_intrinsics.h | 14 | include/primitives/opa_gcc_intrinsics.h | |
15 | include/primitives/opa_gcc_ppc.h | 15 | include/primitives/opa_gcc_ppc.h | |
16 | include/primitives/opa_gcc_sicortex.h | 16 | include/primitives/opa_gcc_sicortex.h | |
17 | include/primitives/opa_nt_intrinsics.h | 17 | include/primitives/opa_nt_intrinsics.h | |
18 | include/primitives/opa_sun_atomic_ops.h | 18 | include/primitives/opa_sun_atomic_ops.h | |
19 | include/primitives/opa_unsafe.h | 19 | include/primitives/opa_unsafe.h | |
20 | lib/libopa.a | 20 | lib/libopa.la | |
21 | share/doc/openpa/README | 21 | lib/pkgconfig/openpa.pc |
@@ -1,5 +1,6 @@ | @@ -1,5 +1,6 @@ | |||
1 | $NetBSD: distinfo,v 1.2 2009/12/11 03:58:37 asau Exp $ | 1 | $NetBSD: distinfo,v 1.3 2013/03/17 14:43:48 asau Exp $ | |
2 | 2 | |||
3 | SHA1 (openpa-1.0.2.tar.gz) = bb632de1976a06baed3450b2306b1c1bb7695cb5 | 3 | SHA1 (openpa-1.0.4.tar.gz) = 0c714376245a7bf0d5c885d129fb301e5431a3af | |
4 | RMD160 (openpa-1.0.2.tar.gz) = 016564a02a0559d75edc09e8ca5ce3bdcdca1228 | 4 | RMD160 (openpa-1.0.4.tar.gz) = f0a34b769be9d91db3ebb18ebbb828757748f142 | |
5 | Size (openpa-1.0.2.tar.gz) = 126362 bytes | 5 | Size (openpa-1.0.4.tar.gz) = 378763 bytes | |
6 | SHA1 (patch-src_opa__primitives.c) = 7a33197519270ef4ba2a922376b50ccc1a5eedfd |
@@ -1,13 +1,12 @@ | @@ -1,13 +1,12 @@ | |||
1 | # $NetBSD: buildlink3.mk,v 1.1.1.1 2009/10/23 21:57:20 asau Exp $ | 1 | # $NetBSD: buildlink3.mk,v 1.2 2013/03/17 14:43:48 asau Exp $ | |
2 | 2 | |||
3 | BUILDLINK_TREE+= openpa | 3 | BUILDLINK_TREE+= openpa | |
4 | 4 | |||
5 | .if !defined(OPENPA_BUILDLINK3_MK) | 5 | .if !defined(OPENPA_BUILDLINK3_MK) | |
6 | OPENPA_BUILDLINK3_MK:= | 6 | OPENPA_BUILDLINK3_MK:= | |
7 | 7 | |||
8 | BUILDLINK_API_DEPENDS.openpa+= openpa>=1.0.1 | 8 | BUILDLINK_API_DEPENDS.openpa+= openpa>=1.0.1 | |
9 | BUILDLINK_PKGSRCDIR.openpa?= ../../parallel/openpa | 9 | BUILDLINK_PKGSRCDIR.openpa?= ../../parallel/openpa | |
10 | BUILDLINK_DEPMETHOD.openpa?= build | |||
11 | .endif # OPENPA_BUILDLINK3_MK | 10 | .endif # OPENPA_BUILDLINK3_MK | |
12 | 11 | |||
13 | BUILDLINK_TREE+= -openpa | 12 | BUILDLINK_TREE+= -openpa |
$NetBSD: patch-src_opa__primitives.c,v 1.1 2013/03/17 14:43:48 asau Exp $
--- src/opa_primitives.c.orig 2012-12-05 01:25:36.000000000 +0000
+++ src/opa_primitives.c
@@ -14,6 +14,8 @@
#include <pthread.h>
#include <opa_primitives.h>
+#include <unistd.h> /* for _POSIX_THREAD_PROCESS_SHARED */
+
pthread_mutex_t *OPA_emulation_lock = NULL;
int OPA_Interprocess_lock_init(OPA_emulation_ipl_t *shm_lock, int isLeader)
@@ -27,7 +29,9 @@ int OPA_Interprocess_lock_init(OPA_emula
* shared memory as well. This is required for some compilers
* (such as SUN Studio) that don't enable it by default. */
if (pthread_mutexattr_init(&attr) ||
+#ifdef _POSIX_THREAD_PROCESS_SHARED
pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED) ||
+#endif
pthread_mutex_init(OPA_emulation_lock, &attr))
mpi_errno = 16; /* MPI_ERR_INTERN */
}