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.