- Alpha, ia64 and ARM architectures depend on GCC 4.x with atomic builtins
support. For ARM this was introduced with GCC 4.4:
http://gcc.gnu.org/gcc-4.4/changes.html.
+ - Linux aarch64 depends on GCC 5.1 or better because prior versions
+ perform unsafe access to deallocated stack.
Clang version 3.0 (based on LLVM 3.0) is supported.
portability. Here are some things you should have on your system in order to
compile the git repository tree :
- - GNU autotools (automake >=1.10, autoconf >=2.50, autoheader >=2.50)
+ - GNU autotools (automake >=1.12, autoconf >=2.69)
(make sure your system wide `automake` points to a recent version!)
- GNU Libtool >=2.2
(for more information, go to http://www.gnu.org/software/autoconf/)
The BP library flavor stands for "bulletproof". It is specifically
designed to help tracing library to hook on applications without
-requiring to modify these applications. `urcu_bp_init()`,
-`urcu_bp_register_thread()` and `urcu_bp_unregister_thread()` all become
-nops. The state is dealt with by the library internally at the expense
-of read-side and write-side performance.
+requiring to modify these applications. `urcu_bp_init()`, and
+`urcu_bp_unregister_thread()` all become nops, whereas calling
+`urcu_bp_register_thread()` becomes optional. The state is dealt with by
+the library internally at the expense of read-side and write-side
+performance.
### Initialization
./configure --enable-rcu-debug
For fine grained enabling of debugging self-checks, build
-urserspace-rcu with DEBUG_RCU defined and compile dependent
+userspace-rcu with DEBUG_RCU defined and compile dependent
applications with DEBUG_RCU defined when necessary.
Warning: Enabling this feature result in a performance penalty.
theoretically yielding slightly better performance.
+### Usage of `--enable-cds-lfht-iter-debug`
+
+By default the library is configured with extra debugging checks for
+lock-free hash table iterator traversal disabled.
+
+Building liburcu with --enable-cds-lfht-iter-debug and rebuilding
+application to match the ABI change allows finding cases where the hash
+table iterator is re-purposed to be used on a different hash table while
+still being used to iterate on a hash table.
+
+This option alters the rculfhash ABI. Make sure to compile both library
+and application with matching configuration.
+
+
Make targets
------------