~lttng/urcu/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Userspace RCU library licensing

This project is compliant with the [REUSE](https://reuse.software/spec/)
specification, each file contains [SPDX](https://spdx.org/specifications) tags,
the full licenses can be found in the `LICENSES/` directory.


## Library code

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.


## Headers

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/
````


## Tests

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.


## Documentation

The documentation is distributed under the `CC-BY-4.0` license.


## Build system

Build system related files are mostly distributed under the `MIT` license. See
headers of individual files for details.


## Generated data files

Generated data files are distributed under the `CC-1.0` license.