+<!--
+SPDX-FileCopyrightText: 2023 EfficiOS Inc.
+
+SPDX-License-Identifier: CC-BY-4.0
+-->
+
Userspace RCU Implementation
============================
(more testing needed before claiming support for these OS).
-Linux ARM depends on running a Linux kernel 2.6.15 or better, GCC 4.4 or
-better.
-The C compiler used needs to support at least C99. The C++ compiler used
-needs to support at least C++11.
+Toolchain support
+-----------------
-The GCC compiler versions 3.3, 3.4, 4.0, 4.1, 4.2, 4.3, 4.4 and 4.5 are
-supported, with the following exceptions:
+The C compiler used needs to support at least C99. The C++ compiler used needs
+to support at least C++11. The oldest GCC version officialy supported and
+tested is 4.8.
+
+Older GCC versions might still work with the following exceptions:
- GCC 3.3 and 3.4 have a bug that prevents them from generating volatile
accesses to offsets in a TLS structure on 32-bit x86. These versions are
Glibc >= 2.4 should work but the older version we test against is
currently 2.17.
+
+Build system
+------------
+
For developers using the Git tree:
This source tree is based on the autotools suite from GNU to simplify
1. `#include <urcu/urcu-signal.h>`
2. Link the application with `-lurcu-signal`
-Version of the library that requires a signal, typically `SIGUSR1`. Can
-be overridden with `-DSIGRCU` by modifying `Makefile.build.inc`.
-
+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`
This option alters the rculfhash ABI. Make sure to compile both library
and application with matching configuration.
+### Usage of `--enable-compiler-atomic-builtins`
+
+Building liburcu with `--enable-compiler-atomic-builtins` implements the uatomic
+API with the compiler atomic builtins if supported.
Make targets
------------