Currently, the following architectures are supported:
- x86 (i386, i486, i586, i686)
- - amd64 / x86_64
+ - amd64 / x86\_64
- PowerPC 32/64
- S390, S390x
- ARM 32/64
therefore not compatible with `liburcu` on x86 32-bit
(i386, i486, i586, i686).
The problem has been reported to the GCC community:
- http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg281255.html
+ <http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg281255.html>
- GCC 3.3 cannot match the "xchg" instruction on 32-bit x86 build.
- See http://kerneltrap.org/node/7507
+ See <http://kerneltrap.org/node/7507>
- 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.
+ <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.
- 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/)
+ (for more information, go to <http://www.gnu.org/software/autoconf/>)
If you get the tree from the repository, you will need to use the `bootstrap`
script in the root of the tree. It calls all the GNU tools needed to prepare
- `signal`,
- `bp`.
-The API members start with the prefix "urcu_<flavor>_", where
-<flavor> is the chosen flavor name.
+The API members start with the prefix `urcu_<flavor>_`, where
+`<flavor>` is the chosen flavor name.
### Usage of `liburcu-memb`
./configure --enable-rcu-debug
For fine grained enabling of debugging self-checks, build
-userspace-rcu with DEBUG_RCU defined and compile dependent
-applications with DEBUG_RCU defined when necessary.
+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.
Userspace RCU 0.11 or 0.12 shared objects. The problem occurs as
follows:
- - An application executable is built with _LGPL_SOURCE defined, includes
+ - An application executable is built with `_LGPL_SOURCE` defined, includes
any of the Userspace RCU 0.10 urcu flavor headers, and is built
without the -fpic compiler option.