Userspace RCU library licensing
Mathieu Desnoyers
September 3, 2012


* LGPLv2.1

The library part is distributed under LGPLv2.1 or later. See lgpl-2.1.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.txt for details.


* MIT-style license :

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/

This MIT-style license (BSD like) apply to:

uatomic/gcc.h
uatomic/unknown.h
uatomic/generic.h
uatomic/sparc64.h
uatomic/arm.h
uatomic/ppc.h
uatomic/x86.h
uatomic.h

MIT/X11 (BSD like) license apply to:

compiler.h
arch/s390.h
uatomic/alpha.h
uatomic/mips.h
uatomic/nios2.h
uatomic/s390.h
system.h


* GPLv2

Library test code is distributed under the GPLv2 license. See gpl-2.0.txt for
license details. See headers of individual files under tests/ for details.


* GPLv3 (or later)

The following build-related macro is under GPLv3 (or later):

m4/ax_tls.m4
