Import liburcu, needed for the upcoming net/knot port.

Feedback from landry@ and sthen@, ok sthen@
This commit is contained in:
jca 2015-04-12 15:02:32 +00:00
parent 6f4a6d3c46
commit 254e1947e5
6 changed files with 258 additions and 0 deletions

47
devel/liburcu/Makefile Normal file
View File

@ -0,0 +1,47 @@
# $OpenBSD: Makefile,v 1.1.1.1 2015/04/12 15:02:32 jca Exp $
COMMENT = user-level RCU implementation
GH_ACCOUNT = urcu
GH_PROJECT = userspace-rcu
GH_TAGNAME = v0.8.6
DISTNAME = liburcu-${GH_TAGNAME:S/^v//}
SHARED_LIBS += urcu-bp 0.0 # 2.0
SHARED_LIBS += urcu-cds 0.0 # 2.0
SHARED_LIBS += urcu-common 0.0 # 2.0
SHARED_LIBS += urcu-mb 0.0 # 2.0
SHARED_LIBS += urcu-qsbr 0.0 # 2.0
SHARED_LIBS += urcu-signal 0.0 # 2.0
SHARED_LIBS += urcu 0.0 # 2.0
CATEGORIES = devel
HOMEPAGE = http://urcu.so/
MAINTAINER = Jeremie Courreges-Anglas <jca@wxcvbn.org>
# LGPLv2.1
PERMIT_PACKAGE_CDROM = Yes
WANTLIB = pthread
BUILD_DEPENDS = ${MODGNU_AUTOCONF_DEPENDS} \
${MODGNU_AUTOMAKE_DEPENDS} \
devel/libtool,-main
USE_GMAKE = Yes
CONFIGURE_STYLE = gnu
CONFIGURE_ARGS += ${CONFIGURE_SHARED}
AUTOCONF_VERSION = 2.69
AUTOMAKE_VERSION = 1.11
pre-configure:
cd ${WRKSRC} && env ${MAKE_ENV} \
AUTOCONF_VERSION=${AUTOCONF_VERSION} \
AUTOMAKE_VERSION=${AUTOMAKE_VERSION} \
autoreconf -vif
.include <bsd.port.mk>

2
devel/liburcu/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (liburcu-0.8.6.tar.gz) = eCOhmX7mOzSryZ3L17vwqQ65uzFLxOjQKLznVk6u3ik=
SIZE (liburcu-0.8.6.tar.gz) = 178314

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-tests_benchmark_common_sh,v 1.1.1.1 2015/04/12 15:02:32 jca Exp $
Our time(1) doesn't support -a and -o options.
--- tests/benchmark/common.sh.orig Tue Nov 4 16:04:53 2014
+++ tests/benchmark/common.sh Fri Apr 3 02:13:56 2015
@@ -4,8 +4,6 @@
if [ -x "$URCU_TEST_TIME_BIN" ]; then
test_time_bin="$URCU_TEST_TIME_BIN"
-elif [ -x "/usr/bin/time" ]; then
- test_time_bin="/usr/bin/time"
else
test_time_bin=""
fi

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-tests_common_thread-id_h,v 1.1.1.1 2015/04/12 15:02:32 jca Exp $
XXX not portable, but used by tests only.
--- tests/common/thread-id.h.orig Tue Nov 4 16:04:53 2014
+++ tests/common/thread-id.h Fri Apr 3 00:47:51 2015
@@ -43,6 +43,14 @@ unsigned long urcu_get_thread_id(void)
{
return (unsigned long) pthread_getthreadid_np();
}
+#elif defined(__OpenBSD__)
+# include <unistd.h>
+
+static inline
+unsigned long urcu_get_thread_id(void)
+{
+ return (unsigned long) getthrid();
+}
#else
# warning "use pid as thread ID"
static inline

3
devel/liburcu/pkg/DESCR Normal file
View File

@ -0,0 +1,3 @@
liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
data synchronization library provides read-side access which scales
linearly with the number of cores.

170
devel/liburcu/pkg/PLIST Normal file
View File

@ -0,0 +1,170 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2015/04/12 15:02:32 jca Exp $
include/urcu/
include/urcu-bp.h
include/urcu-call-rcu.h
include/urcu-defer.h
include/urcu-flavor.h
include/urcu-pointer.h
include/urcu-qsbr.h
include/urcu.h
include/urcu/arch/
include/urcu/arch.h
include/urcu/arch/generic.h
include/urcu/cds.h
include/urcu/compiler.h
include/urcu/config.h
include/urcu/futex.h
include/urcu/hlist.h
include/urcu/lfstack.h
include/urcu/list.h
include/urcu/map/
include/urcu/map/urcu-bp.h
include/urcu/map/urcu-qsbr.h
include/urcu/map/urcu.h
include/urcu/rcuhlist.h
include/urcu/rculfhash.h
include/urcu/rculfqueue.h
include/urcu/rculfstack.h
include/urcu/rculist.h
include/urcu/ref.h
include/urcu/static/
include/urcu/static/lfstack.h
include/urcu/static/rculfqueue.h
include/urcu/static/rculfstack.h
include/urcu/static/urcu-bp.h
include/urcu/static/urcu-pointer.h
include/urcu/static/urcu-qsbr.h
include/urcu/static/urcu.h
include/urcu/static/wfcqueue.h
include/urcu/static/wfqueue.h
include/urcu/static/wfstack.h
include/urcu/system.h
include/urcu/tls-compat.h
include/urcu/uatomic/
include/urcu/uatomic.h
include/urcu/uatomic/generic.h
include/urcu/uatomic_arch.h
include/urcu/urcu-futex.h
include/urcu/urcu_ref.h
include/urcu/wfcqueue.h
include/urcu/wfqueue.h
include/urcu/wfstack.h
lib/liburcu-bp.a
lib/liburcu-bp.la
@lib lib/liburcu-bp.so.${LIBurcu-bp_VERSION}
lib/liburcu-cds.a
lib/liburcu-cds.la
@lib lib/liburcu-cds.so.${LIBurcu-cds_VERSION}
lib/liburcu-common.a
lib/liburcu-common.la
@lib lib/liburcu-common.so.${LIBurcu-common_VERSION}
lib/liburcu-mb.a
lib/liburcu-mb.la
@lib lib/liburcu-mb.so.${LIBurcu-mb_VERSION}
lib/liburcu-qsbr.a
lib/liburcu-qsbr.la
@lib lib/liburcu-qsbr.so.${LIBurcu-qsbr_VERSION}
lib/liburcu-signal.a
lib/liburcu-signal.la
@lib lib/liburcu-signal.so.${LIBurcu-signal_VERSION}
lib/liburcu.a
lib/liburcu.la
@lib lib/liburcu.so.${LIBurcu_VERSION}
lib/pkgconfig/liburcu-bp.pc
lib/pkgconfig/liburcu-cds.pc
lib/pkgconfig/liburcu-mb.pc
lib/pkgconfig/liburcu-qsbr.pc
lib/pkgconfig/liburcu-signal.pc
lib/pkgconfig/liburcu.pc
share/doc/userspace-rcu/
share/doc/userspace-rcu/ChangeLog
share/doc/userspace-rcu/README
share/doc/userspace-rcu/cds-api.txt
share/doc/userspace-rcu/examples/
share/doc/userspace-rcu/examples/Makefile
share/doc/userspace-rcu/examples/Makefile.examples.template
share/doc/userspace-rcu/examples/hlist/
share/doc/userspace-rcu/examples/hlist/Makefile
share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_add_head_rcu
share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_del_rcu
share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_for_each_entry_rcu
share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_for_each_rcu
share/doc/userspace-rcu/examples/hlist/cds_hlist_add_head_rcu.c
share/doc/userspace-rcu/examples/hlist/cds_hlist_del_rcu.c
share/doc/userspace-rcu/examples/hlist/cds_hlist_for_each_entry_rcu.c
share/doc/userspace-rcu/examples/hlist/cds_hlist_for_each_rcu.c
share/doc/userspace-rcu/examples/lfstack/
share/doc/userspace-rcu/examples/lfstack/Makefile
share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_pop_all_blocking
share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_pop_blocking
share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_push
share/doc/userspace-rcu/examples/lfstack/cds_lfs_pop_all_blocking.c
share/doc/userspace-rcu/examples/lfstack/cds_lfs_pop_blocking.c
share/doc/userspace-rcu/examples/lfstack/cds_lfs_push.c
share/doc/userspace-rcu/examples/list/
share/doc/userspace-rcu/examples/list/Makefile
share/doc/userspace-rcu/examples/list/Makefile.cds_list_add_rcu
share/doc/userspace-rcu/examples/list/Makefile.cds_list_add_tail_rcu
share/doc/userspace-rcu/examples/list/Makefile.cds_list_del_rcu
share/doc/userspace-rcu/examples/list/Makefile.cds_list_for_each_entry_rcu
share/doc/userspace-rcu/examples/list/Makefile.cds_list_for_each_rcu
share/doc/userspace-rcu/examples/list/Makefile.cds_list_replace_rcu
share/doc/userspace-rcu/examples/list/cds_list_add_rcu.c
share/doc/userspace-rcu/examples/list/cds_list_add_tail_rcu.c
share/doc/userspace-rcu/examples/list/cds_list_del_rcu.c
share/doc/userspace-rcu/examples/list/cds_list_for_each_entry_rcu.c
share/doc/userspace-rcu/examples/list/cds_list_for_each_rcu.c
share/doc/userspace-rcu/examples/list/cds_list_replace_rcu.c
share/doc/userspace-rcu/examples/rculfhash/
share/doc/userspace-rcu/examples/rculfhash/Makefile
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add_replace
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add_unique
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_del
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_destroy
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_for_each_entry_duplicate
share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_lookup
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add.c
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add_replace.c
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add_unique.c
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_del.c
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_destroy.c
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_for_each_entry_duplicate.c
share/doc/userspace-rcu/examples/rculfhash/cds_lfht_lookup.c
share/doc/userspace-rcu/examples/rculfhash/jhash.h
share/doc/userspace-rcu/examples/rculfqueue/
share/doc/userspace-rcu/examples/rculfqueue/Makefile
share/doc/userspace-rcu/examples/rculfqueue/Makefile.cds_lfq_dequeue
share/doc/userspace-rcu/examples/rculfqueue/Makefile.cds_lfq_enqueue
share/doc/userspace-rcu/examples/rculfqueue/cds_lfq_dequeue.c
share/doc/userspace-rcu/examples/rculfqueue/cds_lfq_enqueue.c
share/doc/userspace-rcu/examples/urcu-flavors/
share/doc/userspace-rcu/examples/urcu-flavors/Makefile
share/doc/userspace-rcu/examples/urcu-flavors/Makefile.bp
share/doc/userspace-rcu/examples/urcu-flavors/Makefile.mb
share/doc/userspace-rcu/examples/urcu-flavors/Makefile.membarrier
share/doc/userspace-rcu/examples/urcu-flavors/Makefile.qsbr
share/doc/userspace-rcu/examples/urcu-flavors/Makefile.signal
share/doc/userspace-rcu/examples/urcu-flavors/bp.c
share/doc/userspace-rcu/examples/urcu-flavors/mb.c
share/doc/userspace-rcu/examples/urcu-flavors/membarrier.c
share/doc/userspace-rcu/examples/urcu-flavors/qsbr.c
share/doc/userspace-rcu/examples/urcu-flavors/signal.c
share/doc/userspace-rcu/examples/wfcqueue/
share/doc/userspace-rcu/examples/wfcqueue/Makefile
share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_dequeue
share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_enqueue
share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_splice
share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_dequeue.c
share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_enqueue.c
share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_splice.c
share/doc/userspace-rcu/examples/wfstack/
share/doc/userspace-rcu/examples/wfstack/Makefile
share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_pop
share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_pop_all_blocking
share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_push
share/doc/userspace-rcu/examples/wfstack/cds_wfs_pop.c
share/doc/userspace-rcu/examples/wfstack/cds_wfs_pop_all_blocking.c
share/doc/userspace-rcu/examples/wfstack/cds_wfs_push.c
share/doc/userspace-rcu/rcu-api.txt
share/doc/userspace-rcu/uatomic-api.txt