Sun Mar 17 14:43:49 2013 UTC ()
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 test


(asau)
diff -r1.3 -r1.4 pkgsrc/parallel/openpa/Makefile
diff -r1.2 -r1.3 pkgsrc/parallel/openpa/PLIST
diff -r1.2 -r1.3 pkgsrc/parallel/openpa/distinfo
diff -r1.1.1.1 -r1.2 pkgsrc/parallel/openpa/buildlink3.mk
diff -r0 -r1.1 pkgsrc/parallel/openpa/patches/patch-src_opa__primitives.c

cvs diff -r1.3 -r1.4 pkgsrc/parallel/openpa/Makefile (expand / switch to unified diff)

--- pkgsrc/parallel/openpa/Makefile 2012/09/11 20:36:18 1.3
+++ pkgsrc/parallel/openpa/Makefile 2013/03/17 14:43:48 1.4
@@ -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
3DISTNAME= openpa-1.0.2 3DISTNAME= openpa-1.0.4
4CATEGORIES= parallel 4CATEGORIES= parallel
5MASTER_SITES= http://trac.mcs.anl.gov/projects/openpa/raw-attachment/wiki/Downloads/ 5MASTER_SITES= http://trac.mcs.anl.gov/projects/openpa/raw-attachment/wiki/Downloads/
6 6
7MAINTAINER= asau@inbox.ru 7MAINTAINER= asau@inbox.ru
8HOMEPAGE= http://trac.mcs.anl.gov/projects/openpa/ 8HOMEPAGE= http://trac.mcs.anl.gov/projects/openpa/
9COMMENT= Atomic primitives for high performance software 9COMMENT= Atomic primitives for high performance software
10 10
 11USE_TOOLS= pkg-config
11GNU_CONFIGURE= yes 12GNU_CONFIGURE= yes
 13USE_LIBTOOL= yes
12TEST_TARGET= check 14TEST_TARGET= check
13 15
14.include "../../mk/bsd.pkg.mk" 16.include "../../mk/bsd.pkg.mk"

cvs diff -r1.2 -r1.3 pkgsrc/parallel/openpa/PLIST (expand / switch to unified diff)

--- pkgsrc/parallel/openpa/PLIST 2009/12/11 03:58:37 1.2
+++ pkgsrc/parallel/openpa/PLIST 2013/03/17 14:43:48 1.3
@@ -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 $
2include/opa_config.h 2include/opa_config.h
3include/opa_primitives.h 3include/opa_primitives.h
4include/opa_queue.h 4include/opa_queue.h
5include/opa_util.h 5include/opa_util.h
6include/primitives/opa_by_lock.h 6include/primitives/opa_by_lock.h
7include/primitives/opa_emulated.h 7include/primitives/opa_emulated.h
8include/primitives/opa_gcc_ia64.h 8include/primitives/opa_gcc_ia64.h
9include/primitives/opa_gcc_intel_32_64.h 9include/primitives/opa_gcc_intel_32_64.h
10include/primitives/opa_gcc_intel_32_64_barrier.h 10include/primitives/opa_gcc_intel_32_64_barrier.h
11include/primitives/opa_gcc_intel_32_64_ops.h 11include/primitives/opa_gcc_intel_32_64_ops.h
12include/primitives/opa_gcc_intel_32_64_p3.h 12include/primitives/opa_gcc_intel_32_64_p3.h
13include/primitives/opa_gcc_intel_32_64_p3barrier.h 13include/primitives/opa_gcc_intel_32_64_p3barrier.h
14include/primitives/opa_gcc_intrinsics.h 14include/primitives/opa_gcc_intrinsics.h
15include/primitives/opa_gcc_ppc.h 15include/primitives/opa_gcc_ppc.h
16include/primitives/opa_gcc_sicortex.h 16include/primitives/opa_gcc_sicortex.h
17include/primitives/opa_nt_intrinsics.h 17include/primitives/opa_nt_intrinsics.h
18include/primitives/opa_sun_atomic_ops.h 18include/primitives/opa_sun_atomic_ops.h
19include/primitives/opa_unsafe.h 19include/primitives/opa_unsafe.h
20lib/libopa.a 20lib/libopa.la
21share/doc/openpa/README 21lib/pkgconfig/openpa.pc

cvs diff -r1.2 -r1.3 pkgsrc/parallel/openpa/distinfo (expand / switch to unified diff)

--- pkgsrc/parallel/openpa/distinfo 2009/12/11 03:58:37 1.2
+++ pkgsrc/parallel/openpa/distinfo 2013/03/17 14:43:48 1.3
@@ -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
3SHA1 (openpa-1.0.2.tar.gz) = bb632de1976a06baed3450b2306b1c1bb7695cb5 3SHA1 (openpa-1.0.4.tar.gz) = 0c714376245a7bf0d5c885d129fb301e5431a3af
4RMD160 (openpa-1.0.2.tar.gz) = 016564a02a0559d75edc09e8ca5ce3bdcdca1228 4RMD160 (openpa-1.0.4.tar.gz) = f0a34b769be9d91db3ebb18ebbb828757748f142
5Size (openpa-1.0.2.tar.gz) = 126362 bytes 5Size (openpa-1.0.4.tar.gz) = 378763 bytes
 6SHA1 (patch-src_opa__primitives.c) = 7a33197519270ef4ba2a922376b50ccc1a5eedfd

cvs diff -r1.1.1.1 -r1.2 pkgsrc/parallel/openpa/buildlink3.mk (expand / switch to unified diff)

--- pkgsrc/parallel/openpa/buildlink3.mk 2009/10/23 21:57:20 1.1.1.1
+++ pkgsrc/parallel/openpa/buildlink3.mk 2013/03/17 14:43:48 1.2
@@ -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
3BUILDLINK_TREE+= openpa 3BUILDLINK_TREE+= openpa
4 4
5.if !defined(OPENPA_BUILDLINK3_MK) 5.if !defined(OPENPA_BUILDLINK3_MK)
6OPENPA_BUILDLINK3_MK:= 6OPENPA_BUILDLINK3_MK:=
7 7
8BUILDLINK_API_DEPENDS.openpa+= openpa>=1.0.1 8BUILDLINK_API_DEPENDS.openpa+= openpa>=1.0.1
9BUILDLINK_PKGSRCDIR.openpa?= ../../parallel/openpa 9BUILDLINK_PKGSRCDIR.openpa?= ../../parallel/openpa
10BUILDLINK_DEPMETHOD.openpa?= build 
11.endif # OPENPA_BUILDLINK3_MK 10.endif # OPENPA_BUILDLINK3_MK
12 11
13BUILDLINK_TREE+= -openpa 12BUILDLINK_TREE+= -openpa

File Added: pkgsrc/parallel/openpa/patches/patch-src_opa__primitives.c
$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 */
     }