Userspace RCU library licensing
Mathieu Desnoyers
May 10, 2009


* LGPLv2.1

The library part is distributed under LGPLv2.1 or later. See lgpl-2.1.txt for
details. This applies to :

urcu.h
urcu.c
urcu-static.h
arch_x86.h
arch_ppc.h

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 license applies to :

arch_atomic_x86.h
arch_atomic_ppc.h
arch_atomic_s390.h
arch_s390.h
compiler.h


* GPLv2

Library test code is distributed under the GPLv2 license. See gpl-2.0.txt for
details. This applies to :

urcutorture.h
urcutorture.c
api_x86.h
api_ppc.h
api_gcc.h
test_urcu.c
test_urcu_yield.c
test_rwlock_timing.c
urcu-asm.c
