From 3df481fc5b127be370ecd7d60137ecb841a10105 Mon Sep 17 00:00:00 2001 From: christos Date: Fri, 17 Jan 2025 16:07:27 +0000 Subject: [PATCH] Add build glue and NetBSD-specific changes. The changes have been fed upstream: https://github.com/urcu/userspace-rcu/pull/27 --- external/lgpl2/userspace-rcu/Makefile.inc | 11 + .../userspace-rcu/dist/include/urcu/futex.h | 41 ++ .../dist/include/urcu/syscall-compat.h | 2 + .../dist/tests/common/thread-id.h | 8 + .../lgpl2/userspace-rcu/include/urcu/config.h | 360 ++++++++++++++++++ external/lgpl2/userspace-rcu/lib/Makefile | 6 + external/lgpl2/userspace-rcu/lib/Makefile.inc | 2 + .../userspace-rcu/lib/liburcu-bp/Makefile | 11 + .../userspace-rcu/lib/liburcu-cds/Makefile | 13 + .../userspace-rcu/lib/liburcu-common/Makefile | 10 + .../userspace-rcu/lib/liburcu-mb/Makefile | 12 + .../userspace-rcu/lib/liburcu-memb/Makefile | 11 + .../userspace-rcu/lib/liburcu-qsbr/Makefile | 11 + .../userspace-rcu/lib/liburcu-signal/Makefile | 11 + .../lgpl2/userspace-rcu/lib/liburcu/Makefile | 11 + 15 files changed, 520 insertions(+) create mode 100644 external/lgpl2/userspace-rcu/Makefile.inc create mode 100644 external/lgpl2/userspace-rcu/include/urcu/config.h create mode 100644 external/lgpl2/userspace-rcu/lib/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/Makefile.inc create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-bp/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-cds/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-common/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-mb/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-memb/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-qsbr/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu-signal/Makefile create mode 100644 external/lgpl2/userspace-rcu/lib/liburcu/Makefile diff --git a/external/lgpl2/userspace-rcu/Makefile.inc b/external/lgpl2/userspace-rcu/Makefile.inc new file mode 100644 index 000000000000..477a943589cf --- /dev/null +++ b/external/lgpl2/userspace-rcu/Makefile.inc @@ -0,0 +1,11 @@ +# $Makefile$ + +URCU:= ${.PARSEDIR} +URCU_DIST= ${URCU}/dist + +.PATH.c: ${URCU_DIST}/src + +CPPFLAGS+= -DHAVE_CONFIG_H -include ${URCU}/include/urcu/config.h +CPPFLAGS+= -I${URCU}/include -I${URCU_DIST}/include +CFLAGS+= -pthread +LDFLAGS+= -pthread diff --git a/external/lgpl2/userspace-rcu/dist/include/urcu/futex.h b/external/lgpl2/userspace-rcu/dist/include/urcu/futex.h index f1181ee4a601..a24ae0a8ca33 100644 --- a/external/lgpl2/userspace-rcu/dist/include/urcu/futex.h +++ b/external/lgpl2/userspace-rcu/dist/include/urcu/futex.h @@ -37,6 +37,12 @@ # include # include +#elif defined(__NetBSD__) && defined(SYS___futex) + +# include +# include +# include + #endif #ifdef __cplusplus @@ -200,6 +206,41 @@ static inline int futex_async(int32_t *uaddr, int op, int32_t val, return ret; } +#elif defined(__NetBSD__) && defined(SYS___futex) + +static inline int futex(int32_t *uaddr, int op, int32_t val, + const struct timespec *timeout, int32_t *uaddr2, int32_t val3) +{ + return syscall(SYS___futex, uaddr, op, val, timeout, uaddr2, 0, val3); +} + +static inline int futex_noasync(int32_t *uaddr, int op, int32_t val, + const struct timespec *timeout, int32_t *uaddr2, int32_t val3) +{ + int ret; + + ret = futex(uaddr, op, val, timeout, uaddr2, val3); + if (caa_unlikely(ret < 0 && errno == ENOSYS)) { + return compat_futex_async(uaddr, op, val, timeout, + uaddr2, val3); + } + return ret; + +} + +static inline int futex_async(int32_t *uaddr, int op, int32_t val, + const struct timespec *timeout, int32_t *uaddr2, int32_t val3) +{ + int ret; + + ret = futex(uaddr, op, val, timeout, uaddr2, val3); + if (caa_unlikely(ret < 0 && errno == ENOSYS)) { + return compat_futex_async(uaddr, op, val, timeout, + uaddr2, val3); + } + return ret; +} + #elif defined(__CYGWIN__) /* diff --git a/external/lgpl2/userspace-rcu/dist/include/urcu/syscall-compat.h b/external/lgpl2/userspace-rcu/dist/include/urcu/syscall-compat.h index d49b9886b8d0..223ed7ad0cb8 100644 --- a/external/lgpl2/userspace-rcu/dist/include/urcu/syscall-compat.h +++ b/external/lgpl2/userspace-rcu/dist/include/urcu/syscall-compat.h @@ -13,6 +13,8 @@ #include #elif defined(__linux__) || defined(__GLIBC__) #include +#elif defined(__NetBSD__) +#include #elif defined(__CYGWIN__) || defined(__APPLE__) || \ defined(__FreeBSD__) || defined(__DragonFly__) || \ diff --git a/external/lgpl2/userspace-rcu/dist/tests/common/thread-id.h b/external/lgpl2/userspace-rcu/dist/tests/common/thread-id.h index 575acaf9f81c..2ee0fd4f50c8 100644 --- a/external/lgpl2/userspace-rcu/dist/tests/common/thread-id.h +++ b/external/lgpl2/userspace-rcu/dist/tests/common/thread-id.h @@ -67,6 +67,14 @@ unsigned long urcu_get_thread_id(void) { return (unsigned long) getthrid(); } +#elif defined(__NetBSD__) +#include + +static inline +unsigned long urcu_get_thread_id(void) +{ + return (unsigned long) _lwp_self(); +} #else # warning "use pid as thread ID" static inline diff --git a/external/lgpl2/userspace-rcu/include/urcu/config.h b/external/lgpl2/userspace-rcu/include/urcu/config.h new file mode 100644 index 000000000000..249223e92d95 --- /dev/null +++ b/external/lgpl2/userspace-rcu/include/urcu/config.h @@ -0,0 +1,360 @@ +/* include/config.h. Generated from config.h.in by configure. */ +/* include/config.h.in. Generated from configure.ac by autoheader. */ + +/* Enable extra debugging checks for lock-free hash table iterator traversal. + Alters the rculfhash ABI. Make sure to compile both library and application + with matching configuration. */ +/* #undef CONFIG_CDS_LFHT_ITER_DEBUG */ + +/* Enable internal debugging self-checks. Introduces a performance penalty. */ +/* #undef CONFIG_RCU_DEBUG */ + +/* Emit legacy memory barriers that were documented in the APIs. */ +#define CONFIG_RCU_EMIT_LEGACY_MB 1 + +/* Require the operating system to support the membarrier system call for + default and bulletproof flavors. */ +/* #undef CONFIG_RCU_FORCE_SYS_MEMBARRIER */ + +/* clock_gettime() is detected. */ +#define CONFIG_RCU_HAVE_CLOCK_GETTIME 1 + +/* Enable SMP support. With SMP support enabled, uniprocessors are also + supported. With SMP support disabled, UP systems work fine, but the + behavior of SMP systems is undefined. */ +#define CONFIG_RCU_SMP 1 + +/* Use compiler provided Thread Local Storage. */ +#define CONFIG_RCU_TLS 1 + +/* Use compiler atomic builtins. */ +/* #undef CONFIG_RCU_USE_ATOMIC_BUILTINS */ + +/* Define to 1 if you have the 'atexit' function. */ +#define HAVE_ATEXIT 1 + +/* define if the compiler supports basic C++11 syntax */ +#define HAVE_CXX11 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the 'fork' function. */ +#define HAVE_FORK 1 + +/* Define to 1 if you have the 'getcpuid' function. */ +/* #undef HAVE_GETCPUID */ + +/* Define to 1 if you have the 'getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the 'gettid' function. */ +/* #undef HAVE_GETTID */ + +/* Define to 1 if you have the 'gettimeofday' function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the 'memeset' function. */ +/* #undef HAVE_MEMESET */ + +/* Define to 1 if you have the 'memset' function. */ +#define HAVE_MEMSET 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MINIX_CONFIG_H */ + +/* Define to 1 if you have a working 'mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the 'munmap' function. */ +#define HAVE_MUNMAP 1 + +/* Define if you have POSIX threads libraries and header files. */ +#define HAVE_PTHREAD 1 + +/* Have PTHREAD_PRIO_INHERIT. */ +#define HAVE_PTHREAD_PRIO_INHERIT 1 + +/* Define to 1 if you have the 'rand_r' function. */ +#define HAVE_RAND_R 1 + +/* Define to 1 if you have the 'sched_getcpu' function. */ +/* #undef HAVE_SCHED_GETCPU */ + +/* Define to 1 if you have the 'sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if stdbool.h conforms to C99. */ +#define HAVE_STDBOOL_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDDEF_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the 'strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the 'strtoul' function. */ +#define HAVE_STRTOUL 1 + +/* Define to 1 if you have the 'sysconf' function. */ +#define HAVE_SYSCONF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if typeof works with your compiler. */ +#define HAVE_TYPEOF 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the 'vfork' function. */ +#define HAVE_VFORK 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if 'fork' works. */ +#define HAVE_WORKING_FORK 1 + +/* Define to 1 if 'vfork' works. */ +#define HAVE_WORKING_VFORK 1 + +/* Define to 1 if the system has the type '_Bool'. */ +#define HAVE__BOOL 1 + +/* define if your compiler has __attribute__ */ +#define HAVE___ATTRIBUTE__ 1 + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +#ifndef PACKAGE +/* Name of package */ +#define PACKAGE "userspace-rcu" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "mathieu dot desnoyers at efficios dot com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "userspace-rcu" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "userspace-rcu 0.15.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "userspace-rcu" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "http://liburcu.org/" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "0.15.0" +#endif + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +/* #undef PTHREAD_CREATE_JOINABLE */ + +/* Define to 1 if all of the C89 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#define STDC_HEADERS 1 + +/* Enable extensions on AIX, Interix, z/OS. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable general extensions on macOS. */ +#ifndef _DARWIN_C_SOURCE +# define _DARWIN_C_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# define _HPUX_ALT_XOPEN_SOCKET_API 1 +#endif +/* Identify the host operating system as Minix. + This macro does not affect the system headers' behavior. + A future release of Autoconf may stop defining this macro. */ +#ifndef _MINIX +/* # undef _MINIX */ +#endif +/* Enable general extensions on NetBSD. + Enable NetBSD compatibility extensions on Minix. */ +#ifndef _NETBSD_SOURCE +# define _NETBSD_SOURCE 1 +#endif +/* Enable OpenBSD compatibility extensions on NetBSD. + Oddly enough, this does nothing on OpenBSD. */ +#ifndef _OPENBSD_SOURCE +# define _OPENBSD_SOURCE 1 +#endif +/* Define to 1 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_SOURCE +/* # undef _POSIX_SOURCE */ +#endif +/* Define to 2 if needed for POSIX-compatible behavior. */ +#ifndef _POSIX_1_SOURCE +/* # undef _POSIX_1_SOURCE */ +#endif +/* Enable POSIX-compatible threading on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ +#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ +# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ +#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ +# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ +#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ +# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 +#endif +/* Enable extensions specified by C23 Annex F. */ +#ifndef __STDC_WANT_IEC_60559_EXT__ +# define __STDC_WANT_IEC_60559_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ +#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ +# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 +#endif +/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ +#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ +# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 +#endif +/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ +#ifndef __STDC_WANT_LIB_EXT2__ +# define __STDC_WANT_LIB_EXT2__ 1 +#endif +/* Enable extensions specified by ISO/IEC 24747:2009. */ +#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ +# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable X/Open extensions. Define to 500 only if necessary + to make mbstate_t available. */ +#ifndef _XOPEN_SOURCE +/* # undef _XOPEN_SOURCE */ +#endif + + +#ifndef VERSION +/* Version number of package */ +#define VERSION "0.15.0" +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define to 1 on platforms where this makes off_t a 64-bit type. */ +/* #undef _LARGE_FILES */ + +/* Number of bits in time_t, on hosts where this is settable. */ +/* #undef _TIME_BITS */ + +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT32_T */ + +/* Define for Solaris 2.5.1 so the uint64_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT64_T */ + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT8_T */ + +/* Define to 1 on platforms where this makes time_t a 64-bit type. */ +/* #undef __MINGW_USE_VC2005_COMPAT */ + +/* Define to '__inline__' or '__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +/* #undef inline */ +#endif + +/* Define to the type of a signed integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef int32_t */ + +/* Define as a signed integer type capable of holding a process identifier. */ +/* #undef pid_t */ + +/* Define as 'unsigned int' if doesn't define. */ +/* #undef size_t */ + +/* Define as 'int' if doesn't define. */ +/* #undef ssize_t */ + +/* Define to __typeof__ if your compiler spells it that way. */ +/* #undef typeof */ + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint16_t */ + +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint32_t */ + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint64_t */ + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint8_t */ + +/* Define as 'fork' if 'vfork' does not work. */ +/* #undef vfork */ diff --git a/external/lgpl2/userspace-rcu/lib/Makefile b/external/lgpl2/userspace-rcu/lib/Makefile new file mode 100644 index 000000000000..25b6675b9809 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/Makefile @@ -0,0 +1,6 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:26 christos Exp $ + +SUBDIR+= liburcu liburcu-bp liburcu-cds liburcu-common liburcu-mb +SUBDIR+= liburcu-memb liburcu-qsbr liburcu-signal + +.include "bsd.subdir.mk" diff --git a/external/lgpl2/userspace-rcu/lib/Makefile.inc b/external/lgpl2/userspace-rcu/lib/Makefile.inc new file mode 100644 index 000000000000..6af8876fa306 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/Makefile.inc @@ -0,0 +1,2 @@ +# $NetBSD: Makefile.inc,v 1.1 2025/01/17 16:07:26 christos Exp $ +.include "${.PARSEDIR}/../Makefile.inc" diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-bp/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-bp/Makefile new file mode 100644 index 000000000000..0d3b852e8493 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-bp/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu-bp + +SRCS+= urcu-bp.c urcu-pointer.c compat_arch.c compat_futex.c + + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-cds/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-cds/Makefile new file mode 100644 index 000000000000..5d2820091a40 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-cds/Makefile @@ -0,0 +1,13 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +NOLINT=yes # XXX +.include + +LIBISPRIVATE=yes +LIB=urcu-cds + +SRCS+= rculfqueue.c rculfstack.c lfstack.c workqueue.c rculfhash.c +SRCS+= rculfhash-mm-order.c rculfhash-mm-chunk.c rculfhash-mm-mmap.c +SRCS+= compat_arch.c compat_futex.c + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-common/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-common/Makefile new file mode 100644 index 000000000000..016e5d166089 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-common/Makefile @@ -0,0 +1,10 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu-common + +SRCS+=wfqueue.c wfcqueue.c wfstack.c compat_arch.c compat_futex.c + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-mb/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-mb/Makefile new file mode 100644 index 000000000000..ad6b3099e0d4 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-mb/Makefile @@ -0,0 +1,12 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu-mb +CPPFLAGS+=-DRCU_MB + +SRCS+= urcu.c urcu-pointer.c compat_arch.c compat_futex.c + + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-memb/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-memb/Makefile new file mode 100644 index 000000000000..ee55391598a8 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-memb/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu-memb +CPPFLAGS+=-DRCU_MEMBARRIER + +SRCS+= urcu.c urcu-pointer.c compat_arch.c compat_futex.c + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-qsbr/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-qsbr/Makefile new file mode 100644 index 000000000000..19fc645bbc8e --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-qsbr/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu-qsbr +CPPFLAGS+=-DRCU_QSBR + +SRCS+= urcu-qsbr.c urcu-pointer.c compat_arch.c compat_futex.c + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu-signal/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu-signal/Makefile new file mode 100644 index 000000000000..6746e464ca03 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu-signal/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:27 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu-mb +CPPFLAGS+=-DRCU_SIGNAL -DRCU_MEMBARRIER + +SRCS+= urcu.c urcu-pointer.c compat_arch.c compat_futex.c + +.include diff --git a/external/lgpl2/userspace-rcu/lib/liburcu/Makefile b/external/lgpl2/userspace-rcu/lib/liburcu/Makefile new file mode 100644 index 000000000000..027d633b4ca8 --- /dev/null +++ b/external/lgpl2/userspace-rcu/lib/liburcu/Makefile @@ -0,0 +1,11 @@ +# $NetBSD: Makefile,v 1.1 2025/01/17 16:07:26 christos Exp $ + +.include + +LIBISPRIVATE=yes +LIB=urcu +CPPFLAGS+=-DRCU_MEMBARRIER + +SRCS+= urcu.c urcu-pointer.c compat_arch.c compat_futex.c + +.include