This project is compliant with the REUSE
specification, each file contains SPDX tags,
the full licenses can be found in the LICENSES/
directory.
The library part is distributed under LGPL-2.1-or-later
. See
LICENSES/LGPL-2.1-or-later.txt
for license details. Refer to the individual
file headers for details.
LGPL-compatible source code can statically use the library header using :
#define _LGPL_SOURCE
#include <urcu.h>
Dynamic-only linking with the LGPL library is used if _LGPL_SOURCE
is not
defined. It permits relinking with newer versions of the library, which is
required by the LGPL license.
See lgpl-relicensing.md
for details.
Most headers are also distributed under LGPL-2.1-or-later
, some include code
from atomic_ops
and are distributed under Boehm-GC
and some others are
distributed under MIT
. Refer to the individual file headers for details.
xchg() primitive has been rewritten from scratch starting from atomic_ops 1.2
which has a MIT-style license that is intended to allow use in both free and
proprietary software:
http://www.hpl.hp.com/research/linux/atomic_ops/LICENSING.txt
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/
Library test code is distributed under the GPL-2.0-only
license. See
LICENSES/GPL-2.0-only.txt
for license details. See headers of individual
files under tests/
for details.
The documentation is distributed under the CC-BY-4.0
license.
Build system related files are mostly distributed under the MIT
license. See
headers of individual files for details.
Generated data files are distributed under the CC-1.0
license.