From aad674a9a583e09e854145f18c5d8854269dce8c Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Mon, 21 Aug 2023 11:52:48 -0400 Subject: [PATCH] Complete removal of urcu-signal flavor This commit completes removal of the urcu-signal flavor. Users can migrate to liburcu-memb with a kernel implementing the membarrier(2) system call to have similar read-side performance without requiring use of a reserved signal, and with improved grace period performance. Signed-off-by: Mathieu Desnoyers Change-Id: I75b9171e705b9b2ef4c8eeabe6164e5587816fb4 --- README.md | 22 +---- configure.ac | 1 - include/Makefile.am | 4 - include/urcu/map/urcu-signal.h | 130 ------------------------- include/urcu/map/urcu.h | 2 - include/urcu/static/urcu-signal-nr.h | 28 ------ include/urcu/static/urcu-signal.h | 140 --------------------------- include/urcu/static/urcu.h | 6 +- include/urcu/urcu-signal.h | 125 ------------------------ include/urcu/urcu.h | 4 +- src/Makefile.am | 8 +- src/liburcu-signal.pc.in | 15 --- src/rculfhash.c | 1 - src/urcu.c | 4 +- 14 files changed, 8 insertions(+), 482 deletions(-) delete mode 100644 include/urcu/map/urcu-signal.h delete mode 100644 include/urcu/static/urcu-signal-nr.h delete mode 100644 include/urcu/static/urcu-signal.h delete mode 100644 include/urcu/urcu-signal.h delete mode 100644 src/liburcu-signal.pc.in diff --git a/README.md b/README.md index 58db299..1f7aaaf 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,6 @@ There are multiple flavors of liburcu available: - `memb`, - `qsbr`, - `mb`, - - `signal`, - `bp`. The API members start with the prefix `urcu__`, where @@ -215,16 +214,6 @@ and reader sides. This results in faster grace-period detection, but results in slower reads. -### Usage of `liburcu-signal` - - 1. `#include ` - 2. Link the application with `-lurcu-signal` - -NOTE: The `liburcu-signal` flavor is *deprecated* and will be removed in the -future. It is now identical to `liburcu-mb` at the exception of the symbols and -public header files. It is therefore slower than previous versions. Users are -encouraged to migrate to the `liburcu-memb` flavor. - ### Usage of `liburcu-bp` 1. `#include ` @@ -274,7 +263,7 @@ the grace period has completed, false otherwise. ### Usage of `liburcu-defer` - Follow instructions for either `liburcu-memb`, `liburcu-qsbr`, - `liburcu-mb`, `liburcu-signal`, or `liburcu-bp` above. + `liburcu-mb`, or `liburcu-bp` above. The `liburcu-defer` functionality is pulled into each of those library modules. - Provides `urcu__defer_rcu()` primitive to enqueue delayed @@ -293,7 +282,7 @@ Its API is currently experimental. It may change in future library releases. ### Usage of `urcu-call-rcu` - Follow instructions for either `liburcu-memb`, `liburcu-qsbr`, - `liburcu-mb`, `liburcu-signal`, or `liburcu-bp` above. + `liburcu-mb`, or `liburcu-bp` above. The `urcu-call-rcu` functionality is pulled into each of those library modules. - Provides the `urcu__call_rcu()` primitive to enqueue delayed @@ -311,13 +300,6 @@ Its API is currently experimental. It may change in future library releases. ### Being careful with signals -The `liburcu-signal` library uses signals internally. The signal handler is -registered with the `SA_RESTART` flag. However, these signals may cause -some non-restartable system calls to fail with `errno = EINTR`. Care -should be taken to restart system calls manually if they fail with this -error. A list of non-restartable system calls may be found in -`signal(7)`. - Read-side critical sections are allowed in a signal handler, except those setup with `sigaltstack(2)`, with `liburcu-memb` and `liburcu-mb`. Be careful, however, to disable these signals diff --git a/configure.ac b/configure.ac index 15055d6..2807932 100644 --- a/configure.ac +++ b/configure.ac @@ -345,7 +345,6 @@ AC_CONFIG_FILES([ src/liburcu-qsbr.pc src/liburcu-mb.pc src/liburcu-memb.pc - src/liburcu-signal.pc ]) AC_CONFIG_FILES([tests/utils/env.sh],[chmod +x tests/utils/env.sh]) diff --git a/include/Makefile.am b/include/Makefile.am index b715bad..c1adfd1 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -38,7 +38,6 @@ nobase_include_HEADERS = \ urcu/map/urcu-mb.h \ urcu/map/urcu-memb.h \ urcu/map/urcu-qsbr.h \ - urcu/map/urcu-signal.h \ urcu/pointer.h \ urcu/rcuhlist.h \ urcu/rculfhash.h \ @@ -56,8 +55,6 @@ nobase_include_HEADERS = \ urcu/static/urcu-mb.h \ urcu/static/urcu-memb.h \ urcu/static/urcu-qsbr.h \ - urcu/static/urcu-signal.h \ - urcu/static/urcu-signal-nr.h \ urcu/static/wfcqueue.h \ urcu/static/wfqueue.h \ urcu/static/wfstack.h \ @@ -91,7 +88,6 @@ nobase_include_HEADERS = \ urcu/urcu-memb.h \ urcu/urcu-qsbr.h \ urcu/urcu_ref.h \ - urcu/urcu-signal.h \ urcu/wfcqueue.h \ urcu/wfqueue.h \ urcu/wfstack.h \ diff --git a/include/urcu/map/urcu-signal.h b/include/urcu/map/urcu-signal.h deleted file mode 100644 index ac6e0cc..0000000 --- a/include/urcu/map/urcu-signal.h +++ /dev/null @@ -1,130 +0,0 @@ -// SPDX-FileCopyrightText: 2009 Paul E. McKenney, IBM Corporation. -// SPDX-FileCopyrightText: 2009 Mathieu Desnoyers -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -/* - * Userspace RCU header -- name mapping to allow multiple flavors to be - * used in the same executable. - * - * LGPL-compatible code should include this header with : - * - * #define _LGPL_SOURCE - * #include - * - * IBM's contributions to this file may be relicensed under LGPLv2 or later. - */ - -#define rcu_read_lock urcu_signal_read_lock -#define _rcu_read_lock _urcu_signal_read_lock -#define rcu_read_unlock urcu_signal_read_unlock -#define _rcu_read_unlock _urcu_signal_read_unlock -#define rcu_read_ongoing urcu_signal_read_ongoing -#define _rcu_read_ongoing _urcu_signal_read_ongoing -#define rcu_quiescent_state urcu_signal_quiescent_state -#define _rcu_quiescent_state _urcu_signal_quiescent_state -#define rcu_thread_offline urcu_signal_thread_offline -#define rcu_thread_online urcu_signal_thread_online -#define rcu_register_thread urcu_signal_register_thread -#define rcu_unregister_thread urcu_signal_unregister_thread -#define rcu_init urcu_signal_init -#define rcu_exit urcu_signal_exit -#define synchronize_rcu urcu_signal_synchronize_rcu -#define rcu_reader urcu_signal_reader -#define rcu_gp urcu_signal_gp - -#define get_cpu_call_rcu_data urcu_signal_get_cpu_call_rcu_data -#define get_call_rcu_thread urcu_signal_get_call_rcu_thread -#define create_call_rcu_data urcu_signal_create_call_rcu_data -#define set_cpu_call_rcu_data urcu_signal_set_cpu_call_rcu_data -#define get_default_call_rcu_data urcu_signal_get_default_call_rcu_data -#define get_call_rcu_data urcu_signal_get_call_rcu_data -#define get_thread_call_rcu_data urcu_signal_get_thread_call_rcu_data -#define set_thread_call_rcu_data urcu_signal_set_thread_call_rcu_data -#define create_all_cpu_call_rcu_data urcu_signal_create_all_cpu_call_rcu_data -#define free_all_cpu_call_rcu_data urcu_signal_free_all_cpu_call_rcu_data -#define call_rcu urcu_signal_call_rcu -#define call_rcu_data_free urcu_signal_call_rcu_data_free -#define call_rcu_before_fork urcu_signal_call_rcu_before_fork -#define call_rcu_after_fork_parent urcu_signal_call_rcu_after_fork_parent -#define call_rcu_after_fork_child urcu_signal_call_rcu_after_fork_child -#define rcu_barrier urcu_signal_barrier - -#define defer_rcu urcu_signal_defer_rcu -#define rcu_defer_register_thread urcu_signal_defer_register_thread -#define rcu_defer_unregister_thread urcu_signal_defer_unregister_thread -#define rcu_defer_barrier urcu_signal_defer_barrier -#define rcu_defer_barrier_thread urcu_signal_defer_barrier_thread -#define rcu_defer_exit urcu_signal_defer_exit - -#define rcu_flavor urcu_signal_flavor - -#define urcu_register_rculfhash_atfork \ - urcu_signal_register_rculfhash_atfork -#define urcu_unregister_rculfhash_atfork \ - urcu_signal_unregister_rculfhash_atfork - -#define start_poll_synchronize_rcu urcu_signal_start_poll_synchronize_rcu -#define poll_state_synchronize_rcu urcu_signal_poll_state_synchronize_rcu - - -/* Compat identifiers for prior undocumented multiflavor usage */ -#ifndef URCU_NO_COMPAT_IDENTIFIERS - -#define rcu_dereference_sig urcu_signal_dereference -#define rcu_cmpxchg_pointer_sig urcu_signal_cmpxchg_pointer -#define rcu_xchg_pointer_sig urcu_signal_xchg_pointer -#define rcu_set_pointer_sig urcu_signal_set_pointer - -#define rcu_sig_before_fork urcu_signal_before_fork -#define rcu_sig_after_fork_parent urcu_signal_after_fork_parent -#define rcu_sig_after_fork_child urcu_signal_after_fork_child - -#define rcu_read_lock_sig urcu_signal_read_lock -#define _rcu_read_lock_sig _urcu_signal_read_lock -#define rcu_read_unlock_sig urcu_signal_read_unlock -#define _rcu_read_unlock_sig _urcu_signal_read_unlock -#define rcu_read_ongoing_sig urcu_signal_read_ongoing -#define _rcu_read_ongoing_sig _urcu_signal_read_ongoing -#define rcu_register_thread_sig urcu_signal_register_thread -#define rcu_unregister_thread_sig urcu_signal_unregister_thread -#define rcu_init_sig urcu_signal_init -#define rcu_exit_sig urcu_signal_exit -#define synchronize_rcu_sig urcu_signal_synchronize_rcu -#define rcu_reader_sig urcu_signal_reader -#define rcu_gp_sig urcu_signal_gp - -#define get_cpu_call_rcu_data_sig urcu_signal_get_cpu_call_rcu_data -#define get_call_rcu_thread_sig urcu_signal_get_call_rcu_thread -#define create_call_rcu_data_sig urcu_signal_create_call_rcu_data -#define set_cpu_call_rcu_data_sig urcu_signal_set_cpu_call_rcu_data -#define get_default_call_rcu_data_sig urcu_signal_get_default_call_rcu_data -#define get_call_rcu_data_sig urcu_signal_get_call_rcu_data -#define get_thread_call_rcu_data_sig urcu_signal_get_thread_call_rcu_data -#define set_thread_call_rcu_data_sig urcu_signal_set_thread_call_rcu_data -#define create_all_cpu_call_rcu_data_sig \ - urcu_signal_create_all_cpu_call_rcu_data -#define free_all_cpu_call_rcu_data_sig urcu_signal_free_all_cpu_call_rcu_data -#define call_rcu_sig urcu_signal_call_rcu -#define call_rcu_data_free_sig urcu_signal_call_rcu_data_free -#define call_rcu_before_fork_sig \ - urcu_signal_call_rcu_before_fork -#define call_rcu_after_fork_parent_sig urcu_signal_call_rcu_after_fork_parent -#define call_rcu_after_fork_child_sig urcu_signal_call_rcu_after_fork_child -#define rcu_barrier_sig urcu_signal_barrier - -#define defer_rcu_sig urcu_signal_defer_rcu -#define rcu_defer_register_thread_sig urcu_signal_defer_register_thread -#define rcu_defer_unregister_thread_sig urcu_signal_defer_unregister_thread -#define rcu_defer_barrier_sig urcu_signal_defer_barrier -#define rcu_defer_barrier_thread_sig urcu_signal_defer_barrier_thread -#define rcu_defer_exit_sig urcu_signal_defer_exit - -#define rcu_flavor_sig urcu_signal_flavor - -#define urcu_register_rculfhash_atfork_sig \ - urcu_signal_register_rculfhash_atfork -#define urcu_unregister_rculfhash_atfork_sig \ - urcu_signal_unregister_rculfhash_atfork - -#endif /* URCU_NO_COMPAT_IDENTIFIERS */ diff --git a/include/urcu/map/urcu.h b/include/urcu/map/urcu.h index 62fd5f6..96c5347 100644 --- a/include/urcu/map/urcu.h +++ b/include/urcu/map/urcu.h @@ -17,8 +17,6 @@ #ifdef RCU_MEMBARRIER #include -#elif defined(RCU_SIGNAL) -#include #elif defined(RCU_MB) #include #else diff --git a/include/urcu/static/urcu-signal-nr.h b/include/urcu/static/urcu-signal-nr.h deleted file mode 100644 index de3128e..0000000 --- a/include/urcu/static/urcu-signal-nr.h +++ /dev/null @@ -1,28 +0,0 @@ -// SPDX-FileCopyrightText: 2009 Mathieu Desnoyers -// SPDX-FileCopyrightText: 2009 Paul E. McKenney, IBM Corporation. -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#ifndef _STATIC_URCU_SIGNAL_NR_H -#define _STATIC_URCU_SIGNAL_NR_H - -/* - * Userspace RCU header. - * - * IBM's contributions to this file may be relicensed under LGPLv2 or later. - */ - -/* - * The signal number used by the RCU library can be overridden with - * -DSIGRCU= when compiling the library. - * Provide backward compatibility for liburcu 0.3.x SIGURCU. - */ -#ifdef SIGURCU -#define SIGRCU SIGURCU -#endif - -#ifndef SIGRCU -#define SIGRCU SIGUSR1 -#endif - -#endif /* _STATIC_URCU_SIGNAL_NR_H */ diff --git a/include/urcu/static/urcu-signal.h b/include/urcu/static/urcu-signal.h deleted file mode 100644 index 07768b3..0000000 --- a/include/urcu/static/urcu-signal.h +++ /dev/null @@ -1,140 +0,0 @@ -// SPDX-FileCopyrightText: 2009 Mathieu Desnoyers -// SPDX-FileCopyrightText: 2009 Paul E. McKenney, IBM Corporation. -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#ifndef _URCU_SIGNAL_STATIC_H -#define _URCU_SIGNAL_STATIC_H - -/* - * Userspace RCU header. - * - * TO BE INCLUDED ONLY IN CODE THAT IS TO BE RECOMPILED ON EACH LIBURCU - * RELEASE. See urcu.h for linking dynamically with the userspace rcu library. - * - * IBM's contributions to this file may be relicensed under LGPLv2 or later. - */ - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This code section can only be included in LGPL 2.1 compatible source code. - * See below for the function call wrappers which can be used in code meant to - * be only linked with the Userspace RCU library. This comes with a small - * performance degradation on the read-side due to the added function calls. - * This is required to permit relinking with newer versions of the library. - */ - -extern struct urcu_gp urcu_signal_gp; - -extern DECLARE_URCU_TLS(struct urcu_reader, urcu_signal_reader); - -/* - * Helper for _rcu_read_lock(). The format of urcu_signal_gp.ctr (as well as - * the per-thread rcu_reader.ctr) has the lower-order bits containing a count of - * _rcu_read_lock() nesting, and a single high-order URCU_BP_GP_CTR_PHASE bit - * that contains either zero or one. The cmm_barrier() ensures that the accesses in - * _rcu_read_lock() happen before the subsequent read-side critical section. - */ -static inline void _urcu_signal_read_lock_update(unsigned long tmp) -{ - if (caa_likely(!(tmp & URCU_GP_CTR_NEST_MASK))) { - _CMM_STORE_SHARED(URCU_TLS(urcu_signal_reader).ctr, _CMM_LOAD_SHARED(urcu_signal_gp.ctr)); - cmm_smp_mb(); - } else - _CMM_STORE_SHARED(URCU_TLS(urcu_signal_reader).ctr, tmp + URCU_GP_COUNT); -} - -/* - * Enter an RCU read-side critical section. - * - * The first cmm_barrier() call ensures that the compiler does not reorder - * the body of _rcu_read_lock() with a mutex. - * - * This function and its helper are both less than 10 lines long. The - * intent is that this function meets the 10-line criterion in LGPL, - * allowing this function to be invoked directly from non-LGPL code. - */ -static inline void _urcu_signal_read_lock(void) -{ - unsigned long tmp; - - urcu_assert_debug(URCU_TLS(urcu_signal_reader).registered); - cmm_barrier(); - tmp = URCU_TLS(urcu_signal_reader).ctr; - urcu_assert_debug((tmp & URCU_GP_CTR_NEST_MASK) != URCU_GP_CTR_NEST_MASK); - _urcu_signal_read_lock_update(tmp); -} - -/* - * This is a helper function for _rcu_read_unlock(). - * - * The first cmm_barrier() call ensures that the critical section is - * seen to precede the store to rcu_reader.ctr. - * The second cmm_barrier() call ensures that we write to rcu_reader.ctr - * before reading the update-side futex. - */ -static inline void _urcu_signal_read_unlock_update_and_wakeup(unsigned long tmp) -{ - unsigned long *ctr = &URCU_TLS(urcu_signal_reader).ctr; - - if (caa_likely((tmp & URCU_GP_CTR_NEST_MASK) == URCU_GP_COUNT)) { - uatomic_store(ctr, tmp - URCU_GP_COUNT, CMM_SEQ_CST); - urcu_common_wake_up_gp(&urcu_signal_gp); - } else { - uatomic_store(ctr, tmp - URCU_GP_COUNT, CMM_RELAXED); - } -} - -/* - * Exit an RCU read-side critical section. Both this function and its - * helper are smaller than 10 lines of code, and are intended to be - * usable by non-LGPL code, as called out in LGPL. - */ -static inline void _urcu_signal_read_unlock(void) -{ - unsigned long tmp; - - urcu_assert_debug(URCU_TLS(urcu_signal_reader).registered); - tmp = URCU_TLS(urcu_signal_reader).ctr; - urcu_assert_debug(tmp & URCU_GP_CTR_NEST_MASK); - _urcu_signal_read_unlock_update_and_wakeup(tmp); - cmm_barrier(); /* Ensure the compiler does not reorder us with mutex */ -} - -/* - * Returns whether within a RCU read-side critical section. - * - * This function is less than 10 lines long. The intent is that this - * function meets the 10-line criterion for LGPL, allowing this function - * to be invoked directly from non-LGPL code. - */ -static inline int _urcu_signal_read_ongoing(void) -{ - return URCU_TLS(urcu_signal_reader).ctr & URCU_GP_CTR_NEST_MASK; -} - -#ifdef __cplusplus -} -#endif - -#endif /* _URCU_SIGNAL_STATIC_H */ diff --git a/include/urcu/static/urcu.h b/include/urcu/static/urcu.h index 3351b5e..c164ae3 100644 --- a/include/urcu/static/urcu.h +++ b/include/urcu/static/urcu.h @@ -16,7 +16,7 @@ */ /* Default is RCU_MEMBARRIER */ -#if !defined(RCU_MEMBARRIER) && !defined(RCU_MB) && !defined(RCU_SIGNAL) +#if !defined(RCU_MEMBARRIER) && !defined(RCU_MB) #define RCU_MEMBARRIER #endif @@ -28,8 +28,4 @@ #include #endif -#ifdef RCU_SIGNAL -#include -#endif - #endif /* _URCU_STATIC_H */ diff --git a/include/urcu/urcu-signal.h b/include/urcu/urcu-signal.h deleted file mode 100644 index fb30e00..0000000 --- a/include/urcu/urcu-signal.h +++ /dev/null @@ -1,125 +0,0 @@ -// SPDX-FileCopyrightText: 2009 Mathieu Desnoyers -// SPDX-FileCopyrightText: 2009 Paul E. McKenney, IBM Corporation. -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#ifndef _URCU_SIGNAL_H -#define _URCU_SIGNAL_H - -/* - * Userspace RCU header - * - * LGPL-compatible code should include this header with : - * - * #define _LGPL_SOURCE - * #include - * - * IBM's contributions to this file may be relicensed under LGPLv2 or later. - */ - -#include -#include -#include - -/* - * See urcu/pointer.h and urcu/static/pointer.h for pointer - * publication headers. - */ -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * Important ! - * - * Each thread containing read-side critical sections must be registered - * with rcu_register_thread_mb() before calling rcu_read_lock_mb(). - * rcu_unregister_thread_mb() should be called before the thread exits. - */ - -#ifdef _LGPL_SOURCE - -#include - -/* - * Mappings for static use of the userspace RCU library. - * Should only be used in LGPL-compatible code. - */ - -/* - * rcu_read_lock() - * rcu_read_unlock() - * - * Mark the beginning and end of a read-side critical section. - * DON'T FORGET TO USE RCU_REGISTER/UNREGISTER_THREAD() FOR EACH THREAD WITH - * READ-SIDE CRITICAL SECTION. - */ -#define urcu_signal_read_lock _urcu_signal_read_lock -#define urcu_signal_read_unlock _urcu_signal_read_unlock -#define urcu_signal_read_ongoing _urcu_signal_read_ongoing - -#else /* !_LGPL_SOURCE */ - -/* - * library wrappers to be used by non-LGPL compatible source code. - * See LGPL-only urcu/static/pointer.h for documentation. - */ - -extern void urcu_signal_read_lock(void); -extern void urcu_signal_read_unlock(void); -extern int urcu_signal_read_ongoing(void); - -#endif /* !_LGPL_SOURCE */ - -extern void urcu_signal_synchronize_rcu(void); - -/* - * RCU grace period polling API. - */ -extern struct urcu_gp_poll_state urcu_signal_start_poll_synchronize_rcu(void); -extern bool urcu_signal_poll_state_synchronize_rcu(struct urcu_gp_poll_state state); - -/* - * Reader thread registration. - */ -extern void urcu_signal_register_thread(void); -extern void urcu_signal_unregister_thread(void); - -/* - * Explicit rcu initialization, for "early" use within library constructors. - */ -extern void urcu_signal_init(void); - -/* - * Q.S. reporting are no-ops for these URCU flavors. - */ -static inline void urcu_signal_quiescent_state(void) -{ -} - -static inline void urcu_signal_thread_offline(void) -{ -} - -static inline void urcu_signal_thread_online(void) -{ -} - -#ifdef __cplusplus -} -#endif - -#include -#include -#include - -#ifndef URCU_API_MAP -#include -#endif - -#endif /* _URCU_SIGNAL_H */ diff --git a/include/urcu/urcu.h b/include/urcu/urcu.h index 8f87678..4df48e4 100644 --- a/include/urcu/urcu.h +++ b/include/urcu/urcu.h @@ -17,14 +17,12 @@ * IBM's contributions to this file may be relicensed under LGPLv2 or later. */ -#if !defined(RCU_MEMBARRIER) && !defined(RCU_SIGNAL) && !defined(RCU_MB) +#if !defined(RCU_MEMBARRIER) && !defined(RCU_MB) #define RCU_MEMBARRIER #endif #ifdef RCU_MEMBARRIER #include -#elif defined(RCU_SIGNAL) -#include #elif defined(RCU_MB) #include #else diff --git a/src/Makefile.am b/src/Makefile.am index 6bdd4a5..ede2669 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,7 +18,7 @@ RCULFHASH = rculfhash.c rculfhash-mm-order.c rculfhash-mm-chunk.c \ lib_LTLIBRARIES = liburcu-common.la \ liburcu.la liburcu-qsbr.la \ - liburcu-mb.la liburcu-signal.la liburcu-bp.la \ + liburcu-mb.la liburcu-bp.la \ liburcu-memb.la liburcu-cds.la # @@ -43,10 +43,6 @@ liburcu_mb_la_SOURCES = urcu.c urcu-pointer.c $(COMPAT) liburcu_mb_la_CFLAGS = -DRCU_MB $(AM_CFLAGS) liburcu_mb_la_LIBADD = liburcu-common.la -liburcu_signal_la_SOURCES = urcu.c urcu-pointer.c $(COMPAT) -liburcu_signal_la_CFLAGS = -DRCU_SIGNAL $(AM_CFLAGS) -liburcu_signal_la_LIBADD = liburcu-common.la - liburcu_bp_la_SOURCES = urcu-bp.c urcu-pointer.c $(COMPAT) liburcu_bp_la_LIBADD = liburcu-common.la @@ -56,7 +52,7 @@ liburcu_cds_la_LIBADD = liburcu-common.la pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = liburcu-cds.pc liburcu.pc liburcu-bp.pc liburcu-qsbr.pc \ - liburcu-signal.pc liburcu-mb.pc liburcu-memb.pc + liburcu-mb.pc liburcu-memb.pc EXTRA_DIST = \ urcu-call-rcu-impl.h \ diff --git a/src/liburcu-signal.pc.in b/src/liburcu-signal.pc.in deleted file mode 100644 index fc797b7..0000000 --- a/src/liburcu-signal.pc.in +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-FileCopyrightText: 2023 EfficiOS Inc. -# -# SPDX-License-Identifier: MIT - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: Userspace RCU signal -Description: A userspace RCU (read-copy-update) library, signal version -Version: @PACKAGE_VERSION@ -Requires: -Libs: -L${libdir} -lurcu-common -lurcu-signal -Cflags: -I${includedir} diff --git a/src/rculfhash.c b/src/rculfhash.c index 307ba7d..09cd2b7 100644 --- a/src/rculfhash.c +++ b/src/rculfhash.c @@ -259,7 +259,6 @@ #include #include #include -#include #include #include #include diff --git a/src/urcu.c b/src/urcu.c index 984e929..5f4a7d7 100644 --- a/src/urcu.c +++ b/src/urcu.c @@ -86,7 +86,7 @@ int urcu_memb_has_sys_membarrier = 0; void __attribute__((constructor)) rcu_init(void); #endif -#if defined(RCU_MB) || defined(RCU_SIGNAL) +#if defined(RCU_MB) void rcu_init(void) { } @@ -171,7 +171,7 @@ static void smp_mb_master(void) } #endif -#if defined(RCU_MB) || defined(RCU_SIGNAL) +#if defined(RCU_MB) static void smp_mb_master(void) { cmm_smp_mb(); -- 2.34.1