Home | History | Annotate | Line # | Download | only in dist
      1 # SPDX-FileCopyrightText: 2011-2024 Mathieu Desnoyers <mathieu.desnoyers (a] efficios.com>
      2 #
      3 # SPDX-License-Identifier: CC-BY-4.0
      4 
      5 2024-12-20 Userspace RCU 0.15.0
      6 	* Fix compilation errors
      7 	* Document cmm_cast_volatile
      8 	* Honor URCU_DEREFERENCE_USE_VOLATILE
      9 	* arm: Use atomic builtins for xchg if supported
     10 	* Introduce _CMM_TOOLCHAIN_SUPPORT_C11_MM
     11 	* Seperate uatomic and uatomic_mo
     12 	* uatomic: Fix header guard comment
     13 	* Fix: missing typename in URCU_FORCE_CAST
     14 	* Allow building with GCC >= 13.3 on RISC-V
     15 	* pointer.h: Fix the rcu_cmpxchg_pointer documentation
     16 	* rculfhash: make cds_lfht_iter_get_node argument const
     17 	* lfstack: make cds_lfs_empty argument const
     18 	* wfcqueue: make cds_wfcq_empty arguments const
     19 	* wfstack: make cds_wfs_empty argument const
     20 	* cds_list: make cds_list_replace @old argument const
     21 	* cds_list: make cds_list_empty const
     22 	* Adjust shell script to allow Bash in other locations
     23 	* futex.h: Indent preprocessor directives
     24 	* futex.h: Use urcu_posix_assert to validate unused values
     25 	* Use futex on OpenBSD
     26 	* fix: handle EINTR correctly in get_cpu_mask_from_sysfs
     27 	* Relicense src/compat-smp.h to MIT
     28 	* uatomic/x86: Remove redundant memory barriers
     29 	* cleanup: move rand_r compat code to tests
     30 	* ppc: Document cache line size choice
     31 	* Fix: change order of _cds_lfht_new_with_alloc parameters
     32 	* Add support for custom memory allocators for rculfhash
     33 	* ppc.h: use mftb on ppc
     34 	* rcutorture: Check histogram of ages
     35 	* docs: Add links to project resources
     36 	* Fix: allow clang to build liburcu on RISC-V
     37 	* Fix -Walloc-size
     38 	* cleanup: use an enum for the error states of nr_cpus_mask
     39 	* fix: add missing SPDX licensing tags
     40 	* urcu/uatomic/riscv: Mark RISC-V as broken
     41 	* Fix: urcu-bp: misaligned reader accesses
     42 	* rculfhash: Only pass integral types to atomic builtins
     43 	* LoongArch: Document that byte and short atomics are implemented with LL/SC
     44 	* Add LoongArch support
     45 	* Tests: Add test for byte/short atomics on addresses which are not word-aligned
     46 	* Complete removal of urcu-signal flavor
     47 	* doc/examples: Remove urcu-signal example
     48 	* tests/common: Remove urcu-signal common test files
     49 	* tests/benchmark: Remove urcu-signal benchmark tests
     50 	* tests/regression: Remove urcu-signal regression tests
     51 	* tests/unit: Remove urcu-signal unit tests
     52 	* Fix: Add missing cmm_smp_mb() in deprecated urcu-signal
     53 	* urcu/uatomic.h: Improve verbosity of static assert error messages
     54 	* urcu/compiler: Add urcu_static_assert
     55 	* Phase 1 of deprecating liburcu-signal
     56 	* uatomic/generic: Fix redundant declaration warning
     57 	* tests: Add tests for checking race conditions
     58 	* Add cmm_emit_legacy_smp_mb()
     59 	* urcu/annotate: Add CMM annotation
     60 	* tests/unit/test_build: Quiet unused return value
     61 	* benchmark: Use uatomic for accessing global states
     62 	* tests: Use uatomic for accessing global states
     63 	* urcu-wait: Fix wait state load/store
     64 	* Add CMM memory model
     65 	* urcu/arch/generic: Use atomic builtins if configured
     66 	* urcu/compiler: Use atomic builtins if configured
     67 	* configure: Add --enable-compiler-atomic-builtins option
     68 	* Fix: tests/rcutorture: Put thread offline on busy-wait
     69 	* tests/regression/rcutorture: Use urcu-wait
     70 	* tests/rcutorture: Factor out thread registration
     71 	* tests/regression/rcutorture: Add wait state
     72 	* urcu-wait: Initialize node in URCU_WAIT_NODE_INIT
     73 	* Complete REUSE support
     74 	* extras/abi: license data files under CC-1.0
     75 	* examples: use SPDX identifiers
     76 	* tests: use SPDX identifiers
     77 	* src: use SPDX identifiers
     78 	* Public headers: use SPDX identifiers
     79 	* Build system: use SPDX identifiers
     80 	* Fix: urcu-wait: add missing futex.h include
     81 	* doc: update GCC baseline to 4.8
     82 	* doc: update FreeBSD tested version
     83 	* doc: Remove Solaris from tested platforms
     84 	* Revert "compiler.h: Introduce caa_unqual_scalar_typeof"
     85 	* rculfhash: Use caa_container_of_check_null in cds_lfht_entry
     86 	* compiler.h: Introduce caa_container_of_check_null
     87 	* compiler.h: Introduce caa_unqual_scalar_typeof
     88 	* Avoid calling caa_container_of on NULL pointer in cds_lfht macros
     89 	* Fix: revise urcu_read_lock_update() comment
     90 	* Fix: uatomic powerpc comment about lwsync
     91 	* fix: aarch64: allow RHEL7 gcc 4.8.5-11
     92 	* aarch64: Implement caa_cpu_relax as yield instruction
     93 	* fix: warning 'noreturn' function does return on ppc
     94 	* Fix: use __noreturn__ for C11-compatibility
     95 	* Adjust shell scripts to allow Bash in other locations
     96 	* Add support for OpenBSD
     97 	* Bump version to 0.15.0-pre
     98 
     99 2023-02-14 Userspace RCU 0.14.0
    100 	* Fix: urcu-bp: only teardown call-rcu worker in destructor
    101 	* Fix: rculfhash: urcu_die() takes positive error value
    102 	* Fix: call_rcu: teardown default call_rcu worker on application exit
    103 	* Fix: join worker thread in call_rcu_data_free
    104 	* Docs: clarify grace period polling API
    105 	* Document grace period polling in rcu-api.md
    106 	* Implement poll rcu stress test in rcutorture
    107 	* urcu-memb,mb,signal: Implement grace period polling
    108 	* Fix: auto-resize hash table destroy deadlock
    109 	* Fix building on MSYS2
    110 	* rculfhash: Include rculfhash-internal.h from local directory
    111 	* Remove "Darwin" from "should also work on list"
    112 	* Merge branch 'adah1972-improve-md'
    113 	* Add semicolons at the end of function prototypes
    114 	* Wrap a file name in backticks
    115 	* Wrap command-line options in backticks
    116 	* Fix a wrong format
    117 	* Wrap URLs in angle brackets
    118 	* Fix Markdown issues
    119 	* Fix: Always check pthread_create for failures
    120 	* Disable signals in URCU background threads
    121 	* Fix: futex.h: include headers outside extern C
    122 	* Fix: add missing unused attribute to _rcu_dereference
    123 	* Fix: change method used by _rcu_dereference to strip type constness
    124 	* Fix: remove type constness in URCU_FORCE_CAST's C++ version
    125 	* Move extern "C" down in include/urcu/urcu-bp.h
    126 	* fix: ifdef linux specific cpu count compat
    127 	* Add unit tests for possible_cpus_array_len
    128 	* fix: sysconf(_SC_NPROCESSORS_CONF) can be less than max cpu id
    129 	* Fix: revise obsolete command in README.md
    130 	* Fix: workqueue: remove unused variable "ret"
    131 	* Fix: urcu-qsbr: futex wait: handle spurious futex wakeups
    132 	* Fix: urcu: futex wait: handle spurious futex wakeups
    133 	* Fix: urcu-wait: futex wait: handle spurious futex wakeups
    134 	* Fix: defer_rcu: futex wait: handle spurious futex wakeups
    135 	* Fix: call_rcu: futex wait: handle spurious futex wakeups
    136 	* Fix: workqueue: futex wait: handle spurious futex wakeups
    137 	* Fix: Use %lu rather than %ld to print count
    138 	* Update ABI definition files
    139 	* Bump version current and age
    140 	* alpha: allocate membarrier system call number
    141 	* Bump version to 0.14.0-pre
    142 	* Improved test framework
    143 	* rculfhash: introduce cds_lfht_node_init_deleted
    144 	* Fix: changelog: v0.13.0 was released in 2021
    145 	* cleanup: i386 arch detection
    146 	* fix: properly detect 'cmpxchg' on x86-32
    147 	* fix: use urcu-tls compat with c++ compiler
    148 	* Fix typo
    149 	* fix: remove autoconf features default value in help message
    150 	* fix: add missing pkgconfig file for memb flavour lib
    151 	* Cleanup: Tests: Remove useless pre-C99 compatibility code from tap.h
    152 	* Document C99 and C++11 requirement in README.md
    153 	* Always use '__thread' for Thread local storage except on MSVC
    154 	* Fix: powerpc32: transparent unions alter calling convention
    155 	* fix: don't use C++ thread_local on MacOs
    156 	* wfcqueue API: implement overloaded wrappers with templates
    157 	* wfcqueue: combine C++ API cds_wfcq_head_cast with overloading
    158 	* wfstack C++ API: implement overloaded wrappers with templates
    159 	* lfstack C++ API: implement overloaded wrappers with templates
    160 	* wfstack: combine C++ API cds_wfs_stack_cast with overloading
    161 	* lfstack: combine C++ API cds_lfs_stack_cast with overloading
    162 	* fix: test_build tap plan
    163 	* Test C++ build of list head init
    164 	* Fix order of initializers in CDS_LIST_HEAD_INIT
    165 	* unit tests: test wfcqueue, wfstack, lfstack empty check functions in C++
    166 	* wfcqueue: implement C++ API based on function overloading
    167 	* wfstack: implement C++ API based on function overloading
    168 	* lfstack: implement C++ API based on function overloading
    169 	* Fix tap.h: remove extra semicolon in pass/fail macros
    170 	* Add C++ build tests
    171 	* Build and run regression and unit tests as C++ programs
    172 	* Add --enable-Werror configure switch
    173 	* Add `urcu_posix_assert()` as `assert()` replacement
    174 	* Rename `urcu_assert()` to `urcu_assert_debug()`
    175 	* cleanup: spelling fixes in comments
    176 	* Make temporary variable in _rcu_dereference non-const
    177 	* (tls-ie2) Fix: x86 and s390: uatomic __hp() macro C++ support
    178 	* Fix: x86 and s390: uatomic __hp() macro clang support
    179 	* Fix: x86 and s390 uatomic: __hp() macro warning with gcc 11
    180 
    181 2021-06-03 Userspace RCU 0.13.0
    182 	* Document known ABI issue in README.md
    183 	* Add serialized ABI definition files
    184 	* bump SONAME major to 8
    185 	* Remove all SONAME(6) ABI aliases
    186 	* .gitignore: list ignored Makefiles
    187 	* tests: Add a simple compile test for caa_get_cycles
    188 	* fix: clock_gettime on macOs
    189 	* Fix: rculist header: use parenthesis around macro parameters
    190 	* Fix: rcuhlist header: use parenthesis around macro parameters
    191 	* Fix: hlist header: use parenthesis around macro parameters
    192 	* Fix: list.h: use parenthesis around macro parameters, caa_container_of()
    193 	* Fix: hlist iteration relies on undefined behavior
    194 	* Fix: use __atomic_load() rather than atomic load explicit
    195 	* Fix: use atomic load memory_order_consume for rcu_dereference on C11/C++11
    196 	* fix: we used weak symbols not weak aliases
    197 	* fix: include 'sys/endian.h' on FreeBSD
    198 	* fix: warnings on non-Linux platforms
    199 	* fix: HAVE_SCHED_SETAFFINITY is not defined
    200 	* configure: enable extended compiler warnings
    201 	* cleanup: explicitly mark unused parameters (-Wunused-parameter)
    202 	* fix: shadowed local variable (-Wshadow)
    203 	* cleanup: all functions have declarations (-Wmissing-prototypes)
    204 	* Import libtap from babeltrace
    205 	* cleanup: add 'noreturn' attribute to '_uatomic_link_error'
    206 	* fix: add missing 'S' to AC_CHECK_PROGS
    207 	* README.md: Document supported Glibc version
    208 	* README: cleanup stale MacOS information
    209 	* Bump version to 0.13.0-pre
    210 	* configure: standardise include path
    211 	* Remove glibc < 2.4 compat code for sched_setaffinity
    212 	* configure: regroup automake conditionals
    213 	* Introduce AE_FEATURE to manage configure features
    214 	* configure: regroup library checks
    215 	* configure: regroup and expand C header and program checks
    216 	* configure: regroup and expand C compiler checks
    217 	* configure: host specific config
    218 	* tests: Move tap-driver.sh out of the autotools aux directory
    219 	* configure: Set autotools baseline
    220 	* configure: centralize version information
    221 	* fix: exclude clang from GCC version blacklists
    222 	* aarch64: blacklist gcc prior to 5.1
    223 	* Fix: configure: support Autoconf 2.70
    224 	* Don't force a target and optimization level on ARMv7
    225 	* Use DMB only on ARMv7
    226 	* Blacklist GCC 4.4.0, 4.4.1 and 4.4.2 on ARM
    227 	* Cleanup: Move ARM specific code to urcu/arch/arm.h
    228 	* fix: bump tests thread limit to 4096
    229 	* fix: reorder x86 arch detection
    230 	* fix: typo in futex syscall define check
    231 	* Compile time futex syscall detection
    232 	* Static arch and uatomic headers
    233 	* Add git-review config
    234 	* cleanup: Improve wording of CONFIG_RCU_DEBUG description
    235 	* fix: explicitly include urcu/config.h in files using CONFIG_RCU_ defines
    236 	* Fix typo in README.md
    237 	* fix: add -lurcu-common to pkg-config libs for each flavor
    238 	* call_rcu: Fix race between rcu_barrier() and call_rcu_data_free()
    239 	* Cleanup: tls-compat.h: add parentheses around expression (coding style)
    240 	* Fix: tls-compat.h exposes compiler-dependent public configuration
    241 	* Fix: tap array subscript has type char warning
    242 
    243 2020-04-09 Userspace RCU 0.12.0
    244 	* tls-compat.h: introduce DEFINE_URCU_TLS_INIT
    245 	* Use _umtx_op for futex on FreeBSD
    246 	* Add FreeBSD, DragonFly to syscall-compat.h
    247 	* urcu-bp: perform thread registration on urcu_bp_register_thread
    248 	* Require automake >= 1.12
    249 	* cds_lfht_is_node_deleted parameter can be marked const
    250 	* Fix: provide errno as argument to urcu_die()
    251 	* Fix: rculfhash worker needs to unblock to SIGRCU
    252 	* Cleanup: test_perthreadlock_timing: handle pthread mutex errors
    253 	* Fix: SONAME bump to 6.1.0
    254 	* Cleanup: remove unused variable from configure.ac check
    255 	* Fix: urcu/futex.h: users of struct timespec should include time.h
    256 
    257 2019-05-06 Userspace RCU 0.11.0
    258 	* Bump library version to 6:0:1
    259 	* Cleanup: update code layout to fix old gcc warning
    260 	* Fix: typo CPPLAGS in examples Makefile
    261 	* Harmonize pprint macro across projects
    262 	* Check for TLS support after CC detection
    263 	* Update macros from the autotools archive
    264 	* tap-driver.sh: flush stdout after each test result
    265 	* Update dead link in lgpl-relicensing.txt
    266 	* Add multiflavor compat identifiers
    267 	* Cleanup: missing sign compare fixes
    268 	* Cleanup: enable signed/unsigned compare compiler warning
    269 	* Cleanup: compiler warning on 32-bit architectures
    270 	* config.h.in: rename CONFIG_RCU_MULTIFLAVOR to CONFIG_RCU_HAVE_MULTIFLAVOR
    271 	* rculfhash: implement iterator debugging config option
    272 	* Fix: examples silent rules on Solaris
    273 	* Add missing fall through annotations
    274 	* Fix: symbol aliases with TLS compat
    275 	* Port: no symbols aliases on MacOS
    276 	* Add -Wextra to CFLAGS
    277 	* Add silent mode to examples Makefiles
    278 	* doc: update examples to API changes
    279 	* test multiflavor single compile unit
    280 	* Update README following API changes
    281 	* Use new header locations for includes from urcu code
    282 	* Update call-rcu.h and defer.h comments and include guards
    283 	* rculfqueue.h: do not include urcu-call-rcu.h
    284 	* rculfhash: support use with multiple flavors per compile unit
    285 	* rculfhash: do not include urcu-call-rcu.h from public API
    286 	* Refactor liburcu to support many flavors per compile unit
    287 	* Fix: only wait if work queue is empty in real-time mode
    288 	* Fix: don't wait after completion of a work queue job batch
    289 	* Fix: don't wait after completion of job batch if work queue is empty
    290 	* Fix: workqueue: struct urcu_work vs rcu_head mixup
    291 	* Cleanup: workqueue: update comments referring to call-rcu
    292 	* Fix: mixup between URCU_WORKQUEUE_RT and URCU_CALL_RCU_RT
    293 	* test_rwlock: Add per-thread count to verbose output
    294 	* Add *.exe to gitignore for Cygwin
    295 	* Fix: pthread_rwlock initialization on Cygwin
    296 	* Fix: compat_futex_noasync on Cygwin
    297 	* wfcqueue: allow defining CDS_WFCQ_WAIT_SLEEP to override `poll'
    298 	* Update documentation for call_rcu before/after fork
    299 	* Add support for the RISC-V architecture
    300 	* Tests: Add tap-driver.sh for automake < 1.12
    301 	* Tests: Replace prove by autotools tap runner
    302 	* liburcu-bp: Use membarrier private expedited when available
    303 	* liburcu: Use membarrier private expedited when available
    304 	* rculfhash: improve error handling of mmap backend
    305 	* Fix: don't use overlapping mmap mappings on Cygwin
    306 	* Tests fix: errors in shell scripts
    307 	* Revert "Use initial-exec tls model"
    308 	* Use initial-exec tls model
    309 	* Fix: don't use membarrier SHARED syscall command in liburcu-bp
    310 	* Tests fix: add missing Cygwin thread id
    311 	* Fix: assignment from incompatible pointer type warnings
    312 	* Tests fix: unused variable warnings
    313 	* Fix: add missing m68k headers to dist
    314 	* Bump version to 0.11-pre
    315 
    316 2017-06-12 Userspace RCU 0.10.0
    317 	* Bump library soname due to urcu flavor structure change
    318 	* Cleanup: use mutex_lock() wrapper in rculfhash
    319 	* Use workqueue in rculfhash
    320 	* Implement urcu workqueues internal API
    321 	* Add support for m68k architecture
    322 	* Set -Wall globally in AM_CFLAGS
    323 	* Fix: remove double use of PTHREAD_CFLAGS
    324 	* Re-add PTHREAD_CFLAGS to global CFLAGS
    325 	* Fix: Don't override user variables within the build system
    326 	* Add report at the end of configure
    327 	* uatomic-api docs: use the third-person singular
    328 	* Add --enable-rcu-debug to configure
    329 	* ARM32: use dmb ish (inner shareable domain) for smp barriers
    330 	* Cleanup: remove cmm_wmb() from rcu_xchg_pointer and rcu_cmpxchg_pointer
    331 	* Fix: uatomic arm32: add missing release barrier before uatomic_xchg
    332 	* Tests: Add verbose support to test script
    333 	* Fix: add missing CONFIG_RCU_FORCE_SYS_MEMBARRIER to urcu/config.h.in
    334 	* Allow forcing the use of sys membarrier
    335 	* Fix: rcutorture: work-around signal issue on mac os x
    336 	* Fix: rcutorture should register thread using call_rcu
    337 	* Fix: add missing backslash in Makefile.am
    338 	* Fix: Do not use wildcards in include/Makefile.am
    339 	* Bump version to 0.10-pre
    340 	* Fix: check for rand_r() in compat-rand.h
    341 	* Fix: Move rand-compat to private src dir
    342 	* Fix: remove AC_FUNC_MALLOC from configure.ac
    343 	* Cleanup: Re-organise source dir
    344 	* Cleanup: remove leftover manual pthread detection
    345 	* Fix: update ax_pthread macro to handle newer clang
    346 	* Update library current version due to adding destroy API
    347 	* Fix: Use pthread_self to get threadid on OSX
    348 	* Fix: examples: use destroy API for queues/stacks
    349 	* Update library age due to new stack/queue destroy API
    350 	* Fix: tests: invoke destroy APIs for queues/stacks
    351 	* Fix: add missing destroy functions to queues/stack APIs
    352 	* Fix: add missing __cds_wfcq_init for LGPL API
    353 	* Fix: memory leak on hash table destroy
    354 	* Fix: Add failover for platforms without nproc
    355 	* Fix: use clock_get_time for caa_get_cycles fallback on MacOSX
    356 	* Fix: syscall-compat.h MacOSX support
    357 	* Fix: Add solaris-build.md to dist
    358 	* rculfhash: Documentation: clarify need for grace period before "re-using"
    359 	* Port: build shared libraries in Cygwin
    360 	* Port: fix compatibility header for Cygwin
    361 	* Add GNU Hurd support to syscall-compat.h
    362 	* Add support for aarch64_be
    363 	* Fix: urcu-bp: re-initialize list head on library exit
    364 	* bootstrap: Standardize on autoreconf -vi
    365 	* Harmonize bootstrap script across projects
    366 	* Fix: examples make distcheck failure
    367 	* wfcqueue: add C++ compatibility API
    368 	* Fix: CDS_WFCQ_WOULDBLOCK typing for c++
    369 	* Fix: configure.ac: check for possibly required libs for clock_gettime
    370 	* Support for NIOS2 architecture
    371 	* urcu_ref_get_safe: introduce new API
    372 	* Fix: handle reference count overflow
    373 	* Fix: compat_futex should work-around futex signal-restart kernel bug
    374 	* Support for Xeon-Phi with newer MPSS
    375 	* sparc64: allocate membarrier system call number
    376 	* hppa: allocate membarrier system call number
    377 	* Fix build on non-Linux Debian ports
    378 	* Fix: urcu-signal: smp_mb_master() needs registry lock
    379 	* Fix: rculfhash only needs to include urcu-pointers.h
    380 	* Fix: out-of-tree benchmark/regtest
    381 	* Fix: add missing regtest and benchmark files to dist tarball
    382 	* Fix: add missing run.sh to benchmark makefile
    383 
    384 2015-10-16 Userspace RCU 0.9.0
    385 	* Bump soname major to 4
    386 	* Cleanup: remove trailing tab
    387 	* Fix: Use proper macro to detect stdbool.h
    388 	* Configure: Add missing checks
    389 	* Port: Add Solaris build instructions
    390 	* Fix: regtest outputs valid TAP protocol
    391 	* Port: Detect nproc bin name in benchmark scripts
    392 	* Port: Add Solaris getcpu support
    393 	* Port: Fixes to build system for portability
    394 	* Port: Add Solaris support to tests/common/thread-id.h
    395 	* Port: Add Solaris support to urcu/syscall-compat.h
    396 	* Port: replace bzero() by memset()
    397 	* Port: make bootstrap script work on most shell
    398 	* tests: rcutorture: use parameters rather than random
    399 	* Fix: only define membarrier system call on Linux
    400 	* Refactor tests
    401 	* Fix: cast caa_cycles_t to unsigned long long
    402 	* caa_get_cycles: caa_ prefix for type, use CLOCK_MONOTONIC
    403 	* Cleanup: remove trailing whitespaces at EOL
    404 	* Cleanup: move generic caa_get_cycles to arch/generic.h
    405 	* tile: allocate membarrier system call number
    406 	* ia64: allocate membarrier system call number
    407 	* aarch64: allocate membarrier system call number
    408 	* powerpc64le: use "ppc" architecture
    409 	* arm: allocate membarrier system call number
    410 	* s390: allocate membarrier system call number
    411 	* ppc: allocate membarrier system call number
    412 	* lfstack: relax constraints on node re-use
    413 	* Fix: format string signedness
    414 	* Cleanup: tests: Branch condition evaluates to a garbage value
    415 	* Fix: test: unchecked return value
    416 	* Fix: test: side-effect in assertion
    417 	* x86: allocate membarrier system call number
    418 	* urcu-bp: use sys_membarrier when available
    419 	* Cleanup: urcu: remove unused membarrier "group" parameter
    420 	* urcu/ref.h: implement urcu_ref_get_unless_zero()
    421 	* Fix: compat_futex: uninitialized ret variable
    422 	* Fix: compat_futex_noasync: don't override return value
    423 	* Fix: dynamic fallback to compat futex on sys_futex ENOSYS
    424 	* Detect RCU read-side overflows
    425 	* Detect RCU read-side underflows
    426 	* Introduce urcu_assert and registration check
    427 	* Fix: volatile in assert()
    428 	* Update following changes to sys_membarrier ABI
    429 	* uatomic: Specify complete types for atomic function calls
    430 	* Cleanup: remove unused return value warning from tests
    431 	* Fix: handle sys_futex() FUTEX_WAIT interrupted by signal
    432 	* Fix: compat_futex.c: *uaddr should be read as volatile
    433 	* Cleanup: cast poll delay return value to void
    434 	* tests: Convert unit tests to TAP
    435 	* Fix: make benchmark test run in oot build
    436 	* Fix: call_rcu_thread() affinity failure
    437 	* Cleanup: cast poll delay return value to void
    438 	* Cleanup: cast poll delay return value to void
    439 	* Cleanup: cast poll delay return value to void
    440 	* Cleanup: cast poll delay return value to void
    441 	* Cleanup: cast poll() return value to void for delays
    442 	* urcu: fix deprecation warning with new glibc
    443 	* urcu: add cds_list_for_each_entry_safe_from macro
    444 	* Fix: deadlock when thread join is issued in read-side C.S.
    445 	* Fix: rename RCU_DEBUG to DEBUG_RCU in urcu-qsbr.h
    446 	* Cleanup some c99 pedantic warnings
    447 	* Mark braced-groups within expressions with __extension__
    448 	* Fix: compat_futex_noasync race condition
    449 	* tests: Use stderr redirection for time output
    450 	* Fix: use space after rpath for OS X ld
    451 	* Fix: move transparent union attribute after union declaration for clang
    452 	* Configure: add check for used type
    453 	* Configure: add missing check of headers
    454 	* Configure: add missing check for funcs: memset, strerror
    455 	* Fix: documentation: urcu-pointer.h: s/rcu_dereference_pointer/rcu_dereference/
    456 	* urcu-bp/urcu-qsbr: remove unneeded DEBUG_YIELD code
    457 	* Fix: call rcu should call internal RCU API
    458 	* Fix: silence gcc -Wextra warning
    459 	* compiler: use __GNUC__ instead of the undefined __GNUC_MAJOR__
    460 	* Fix: lfstack reversed empty/non-empty return value
    461 	* lfstack: fix: add missing __cds_lfs_init
    462 	* wfstack: add missing union parameters
    463 	* Fix: preserve example files' timestamps when copying
    464 	* wfstack: implement mutex-free wfstack with transparent union
    465 	* wfcqueue: Implement mutex-free wfcqueue head with transparent union
    466 	* lfstack: Implement mutex-free stack head with transparent union (v2)
    467 	* rculfhash: remove duplicated code
    468 	* rculfhash: handle pthread_create failures
    469 	* rculfhash: fall back to single-threaded resize on calloc failure
    470 	* x86: drop extra semi-colon in caa_cpu_relax
    471 	* Cleanup: tests: cast console write return value as void
    472 	* Modernize doc using Markdown
    473 	* Fix: update automake following README to README.md change
    474 	* Modernize README using Markdown
    475 	* Fix: incorrect parenthesis in cds_hlist_for_each_entry_safe_2
    476 	* Fix: Use after free in rcu_barrier()
    477 	* Fix: rcu_barrier(): uninitialized futex field
    478 	* call_rcu threads should clear their PAUSED flag when they unpause
    479 	* test_urcu_fork: test many fork, with 3 children deep
    480 	* Update list of supported architectures in README
    481 	* Add support for hppa/PA-RISC architecture
    482 	* Use autoconf AM_MAINTAINER_MODE
    483 	* Use gcc atomics on aarch64/powerpc64le
    484 	* Fix: move wait loop increment before first conditional block
    485 	* Fix: high cpu usage in synchronize_rcu with long RCU read-side C.S.
    486 	* Fix: out of tree build: doc/examples
    487 	* Fix: out of tree build tests/common
    488 	* tests/unit: use lib rather than source
    489 	* automake: Rename INCLUDES to AM_CPPFLAGS (new name)
    490 	* tests regressions: use lib rather than recompile from source
    491 	* tests: use common lib rather than recompile compat sources
    492 	* urcu tests: use lib rather than compile from source
    493 	* urcu mb tests: use lib rather than recompile from source
    494 	* urcu signal tests: use library rather than recompile source
    495 	* tests: move yield debug to common test library
    496 	* tests urcu bp: use lib rather than recompile source
    497 	* test_urcu_defer: link on urcu lib rather than recompile source
    498 	* tests/benchmark: use urcu qsbr lib rather than recompile from source
    499 	* Pass the CC variable to the example Makefiles
    500 	* Fix: urcu-bp interaction with threads vs constructors/destructors
    501 	* x86 barrier for Xeon Phi: use rsp on x86-64
    502 	* Set RCU_HAVE_FENCE to false on Intel Xeon Phi
    503 	* Fix undefined NULL pointer arithmetic in hlist
    504 	* Cleanup: Check for pthread in Libc
    505 	* Cleanup: Android: Do not redefine gettid
    506 	* Fix undefined NULL pointer arithmetic
    507 	* Android: implement rand_r()
    508 	* Android: do not redefine gettid on Android
    509 	* Android: add a compat layer for 'syscall.h'
    510 	* Android: do not link pthread on Android
    511 	* Android: configure.ac Android check
    512 	* Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2
    513 	* rculfhash: document max_nr_buckets = 0
    514 	* Library major version number (soname) increment to 3
    515 	* Fix: tls-compat multi-lib conflict
    516 	* Use cross compiler for doc examples
    517 	* Add lttng-dev mailing list to readme
    518 	* wfcqueue: remove misleading comment
    519 	* gcc warning fixes: -Wsign-compare and -Wextra
    520 	* Fix: urcu-qsbr: reversed logic on RCU_DEBUG
    521 	* Fix: urcu-bp segfault in glibc pthread_kill()
    522 	* Fix urcu-bp: don't move registry
    523 	* Fix: compat futex duplicated lock and completion
    524 	* Fix: i386 compat code duplicated mutex instances
    525 	* Fix: urcu-bp: Bulletproof RCU arena resize bug
    526 	* Fix: test_mutex.c uninitialized mutex
    527 
    528 2013-09-06 Userspace RCU 0.8.0
    529 	* Fix: hash table growth (for small tables) should be limited
    530 	* Fix: doc/examples cross-build
    531 	* Introduce URCU_INLINE_SMALL_FUNCTIONS
    532 	* Add missing tests/common/Makefile.am
    533 	* README: document make check/regtest/bench
    534 	* tests: split in check, regtest and bench targets
    535 	* Cleanup: doc/examples makefile
    536 	* Fix: doc/examples VPATH build
    537 	* doc/examples: Move the LIBS after the OBJECTS in the Makefile
    538 	* Document build work-around on MacOS X
    539 	* Fix tests: use of uninitialized variables
    540 	* test_urcu_hash*: initialize TLS seeds
    541 	* doc/examples: cds_lfht_for_each_entry_duplicate
    542 	* doc/examples: cds_lfht_lookup
    543 	* doc/examples: cds_lfht_destroy
    544 	* doc/examples: cds_lfht_add_replace
    545 	* doc/examples: cds_lfht_add_unique
    546 	* doc/examples: cds_lfht_add/cds_lfht_del
    547 	* doc/examples: add rculfqueue example
    548 	* doc/examples: add synchronize_rcu()
    549 	* doc/examples: add bp flavor
    550 	* doc/examples: add dist toplevel makefile
    551 	* doc/examples: add membarrier flavor
    552 	* doc/examples: document call_rcu()
    553 	* doc/examples: update qsbr example
    554 	* urcu signal: remove assertion on exit
    555 	* doc/examples: signal flavor
    556 	* doc/examples: add mb flavor
    557 	* doc/examples: update qsbr
    558 	* doc/examples: introduce urcu-flavors examples directory
    559 	* doc/examples: enhance rcu-flavor-qsbr example
    560 	* doc/examples: rename qsbr-minimal to rcu-flavor-qsbr
    561 	* doc/examples: automake stop on error
    562 	* doc/examples: hlist
    563 	* hlist/rcuhlist update
    564 	* doc/examples: fix typo in list example
    565 	* rcuhlist: make pointer stores atomic
    566 	* hlist, rcuhlist: cleanup coding style
    567 	* doc/examples: lfstack
    568 	* doc/examples: update cds_wfs_pop_all_blocking
    569 	* doc/examples: cds_wfs_pop_all_blocking
    570 	* doc/examples: cds_wfs_pop
    571 	* doc/examples: add missing Makefile
    572 	* doc/examples: cds_wfs_push
    573 	* doc/wfcqueue: cds_wfcq_splice
    574 	* doc/examples: add cds_wfcq_dequeue
    575 	* doc/examples: wfcq needs to link against urcu-common
    576 	* doc/examples: update queue comment
    577 	* doc/examples: fix make clean
    578 	* gitignore: add qsbr-minimal
    579 	* doc/examples: cds_wfcq_enqueue
    580 	* doc/examples: Move LIBS to each makefile
    581 	* doc/examples: cds_list_for_each_rcu
    582 	* doc/examples: cds_list_for_each_entry_rcu
    583 	* doc/examples: cds_list_replace_rcu
    584 	* doc/examples: cds_list_add_tail_rcu
    585 	* doc/examples: cds_list_del_rcu
    586 	* doc/examples: cds_list_add_rcu
    587 	* rculist: ensure atomic updates of next pointers
    588 	* rculist: implement cds_list_add_tail_rcu
    589 	* rculist.h and list.h style cleanup
    590 	* example makefile: add missing cd ..
    591 	* Update gitignore
    592 	* Fix: examples Makefile on FreeBSD
    593 	* hash table test: don't redefine CACHE_LINE_SIZE
    594 	* tests: use thread-id.h wrapper
    595 	* Implement thread-id.h wrapper
    596 	* tests: add missing unsigned long casts to pthread_self()
    597 	* Fix: don't build examples in static builds
    598 	* Add QSBR minimal example
    599 	* compiler.h: implement CAA_ARRAY_SIZE()
    600 	* document rcu barrier
    601 	* rcu barrier: handle OOM die urcu_die
    602 	* Implement rcu_barrier()
    603 	* rculfhash: document destroy context limitations
    604 	* Add MIPS to README
    605 	* Update README
    606 	* Update README testing info about FreeBSD
    607 	* test: fix api.h missing if brackets
    608 	* tests: fix incorrect counter
    609 	* Fix: membarrier fallback symbol conflict
    610 	* Fix: Use a filled signal mask to disable all signals
    611 	* urcu-bp: introduce struct urcu_gp
    612 	* Fix: struct urcu_gp broke multiflavor
    613 	* Cleanup test usage printout
    614 	* wfstack tests: use pop "last" state info
    615 	* wfstack: return whether pop is popping the last element
    616 	* wfcqueue tests: use dequeue empty state
    617 	* wfcqueue: return whether dequeue is dequeuing last element
    618 	* urcu: avoid false sharing for rcu_gp_ctr
    619 	* urcu: make the code of urcu-qsbr as normal urcu
    620 	* rculfhash: detect if resize/destroy are called within RCU read-side C.S.
    621 	* Documentation: rculfhash: cds_lfht_resize not within read-side C.S.
    622 	* fix: rculfhash don't change qsbr online state
    623 	* Add rcu_read_ongoing() API to each urcu flavor
    624 	* Add "sparc" host cpu to configure.ac
    625 	* futex: include syscall.h instead of sys/syscall.h
    626 	* Add tab to output in order to allow easy nesting of tables.
    627 	* Remove urcu-api-list.sh from dist tarball
    628 	* Add urcu-api-list.sh script
    629 	* list: implement cds_list_for_each_safe()
    630 	* Fix: tests/api.h use cpuset.h
    631 	* Fix hurd-i386: move cpuset tests outside of sched_setaffinity conditional
    632 	* Fix tests: finer-grained use of CPU_SET, CPU_ZERO and cpu_set_t
    633 	* Test for CPU_SET
    634 	* Fix build on architectures with HAVE_SCHED_GETCPU but without HAVE_SYSCONF
    635 	* README: document that Clang 3.0 (based on LLVM 3.0) is supported
    636 	* clang: silence "unused expression result" warning
    637 	* rculfhash: add assertions on node alignment
    638 	* Spelling cleanups within comments and documentation
    639 	* Fix configure checks for Tile
    640 	* uatomic: style fix
    641 	* doc/cds-api.txt: expand documentation
    642 	* README: document each API file
    643 	* README: reorganize
    644 	* Add compilation support for the TileGX architecture
    645 	* wfstack: add nonblocking to _LGPL_SOURCE API
    646 	* Discourage use of pthread_atfork() for call_rcu handlers
    647 	* Fix call_rcu fork handling
    648 	* test: fork handling
    649 	* rculfhash: add cds_lfht_replace to the write operations in the comments
    650 	* urcu: fix comments for cds_list_for_each_prev()
    651 	* documentation: fix rcu-api.txt duplicates
    652 	* test wfcq: remove unneeded urcu.h include
    653 	* test wfs: remove unneeded urcu.h include
    654 	* urcu: declare test_urcu_multiflavor functions
    655 	* urcu: remove the wrong comma
    656 	* wfstack: implement nonblocking pop and next
    657 	* wfcqueue: document first/next return values
    658 	* wfstack: update comments about cds_wfs_empty/first being wait-free
    659 	* wfstack API: rename cds_wfs_first_blocking to cds_wfs_first
    660 	* wfstack test: test if number of push to empty vs pop_all match
    661 	* wfstack: document first/next return values
    662 	* test wfstack: enforce external mutex if needed by default
    663 	* test wfcqueue: enforce external mutex if needed by default
    664 	* urcu-mb/signal/membarrier: batch concurrent synchronize_rcu()
    665 	* urcu-wait: move queue management code into urcu-wait.h
    666 	* urcu-wait: move wait code into separate file
    667 	* urcu-qsbr: batch concurrent synchronize_rcu()
    668 	* tests: use standard malloc/free for synchronize_rcu()
    669 	* urcu-bp: move quiescent threads to separate list
    670 	* urcu-mb/signal/membarrier: move quiescent threads to separate list
    671 	* urcu-qsbr: move offline threads to separate list
    672 	* urcu-bp: improve 2-phase wait scheme
    673 	* urcu-mb/signal/membarrier: improve 2-phase wait scheme
    674 	* urcu-qsbr: improve 2-phase wait scheme
    675 	* wfcqueue: implement mutex-free splice
    676 	* wfcqueue: document empty criterion
    677 	* urcu-call-rcu: use wait-free splice return value
    678 	* test wfcqueue: add tests for queue state return value
    679 	* wfcqueue: enqueue and splice return queue state
    680 	* Fix: wfcqueue nonblocking dequeue
    681 	* wfcqueue: Fix lock and unlock functions
    682 	* runtests: Make path of time binary configurable
    683 	* urcu-qsbr: skip Q.S. reporting if already reported
    684 	* Fix TLS detection: test with linker, add --disable-compiler-tls
    685 	* Cleanup: cast pthread_self() return value to unsigned long
    686 	* Fallback mechanism not working on platform where TLS is unsupported
    687 	* Revert "Fix: cross-build: configure.ac should use --target, not --host"
    688 	* Fix: cross-build: configure.ac should use --target, not --host
    689 	* test_urcu_wfcq: add splice and nosync tests
    690 	* test_urcu_wfs: cleanup
    691 	* test_urcu_lfs: cleanup
    692 	* Fix static linking: add missing static for _defer_rcu
    693 	* tests: report error value for make check
    694 	* Add multiflavor test program
    695 	* Fix static linking: fix symbol name namespaces
    696 	* Fix static linking: add missing static to thr_defer
    697 	* Fix static linking: add missing static
    698 	* deprecation: fix build with gcc < 4.5
    699 	* wfstack.c: update copyright notice
    700 	* Update wfstack copyright notice
    701 	* Comment fix: update associated LGPL header name
    702 	* Update cds-api.txt following API deprecations
    703 	* Deprecate wfqueue
    704 	* Deprecate rculfstack
    705 	* wfcqueue: introduce nonblocking API
    706 	* lfstack: test pop_all and pop
    707 	* lfstack: implement empty, pop_all and iterators, document API
    708 	* lfstack: implement test
    709 	* lfstack: implement lock-free stack
    710 	* wfstack: implement pop_all and iteration tests
    711 	* wfstack: implement cds_wfs_pop_all and iterators, document API
    712 	* rculfhash test: fix trivial memleak and return node leak and errors
    713 	* rculfhash: add missing extern
    714 	* Cleanup: fix cppcheck errors
    715 	* wfcqueue: remove ancient comment
    716 	* test_urcu_lfq: remove rcu_defer_register_thread() from test_urcu_lfq
    717 	* test_urcu_lfq: test for the proper pointer
    718 	* test_urcu_lfs: remove rcu_defer_register_thread() from test_urcu_lfs
    719 	* test_urcu_lfs: test for the proper pointer
    720 	* wfcqueue: clarify locking usage
    721 	* Document APIs in README
    722 	* Test cleanup: replace "l" parameter by "loops"
    723 	* Add wfcqueue header to cds.h
    724 	* Fix: urcu-bp, urcu, urcu-qsbr should include wfcqueue
    725 	* Fix: call_rcu list corruption on teardown (documentation)
    726 	* call_rcu: remove head field alignement, explain wfcqueue motivation
    727 	* wfcqueue: update credits in patch documentation
    728 	* wfcqueue documentation: hint at for_each iterators
    729 	* Fix urcu-call-rcu-impl.h: false-sharing
    730 	* call_rcu: use wfcqueue, eliminate false-sharing
    731 	* wfcqueue test
    732 	* wfcqueue: implement concurrency-efficient queue
    733 	* Ensure that read-side functions meet 10-line LGPL criterion
    734 	* tls-compat.h: document sigaltstack(2) limitation
    735 	* urcu: add notice to URCU_TLS() for it is not strictly async-signal-safe
    736 	* Document sigaltstack(2) limitation
    737 	* Documentation: update LICENSE file
    738 
    739 2012-08-27 Userspace RCU 0.7.4
    740 	* rculfhash API documentation: document destroy RCU read-lock constraint
    741 	* Fix: rculfhash should be offline while waiting for resize to complete
    742 	* Add missing entry to gitignore
    743 	* urcu: move busy-wait code and name it ___cds_wfq_node_sync_next()
    744 	* urcu: fix compat_futex_noasync()
    745 	* urcu: add hint to DEFINE_URCU_TLS() for compound types
    746 	* Fix: CAA_BUILD_BUG_ON should refer to CAA_BUILD_BUG_ON_ZERO
    747 	* Add MIPS support
    748 	* Compatibility: remove bash-ismsm from test scripts
    749 	* Fix inappropriate lib behavior: don't call exit()
    750 	* Fix: re-enable compatibility with autoconf < 2.64
    751 	* Fix c99 compatibility: use __asm__ and __volatile__ in public headers
    752 	* Fix c99 compatibility: use __typeof__ instead of typeof in public headers
    753 	* warning fix: tests urcutorture for NetBSD 5
    754 
    755 2012-06-01 Userspace RCU 0.7.3
    756 	* Fix tests: make dist lib dependency
    757 	* Update README for OS supported, tests dependency
    758 	* Add CodingStyle to tarball
    759 	* Add coding style document
    760 	* Test fix: test_perthreadlock uninitialized mutex
    761 	* tests: support FreeBSD short "time" args
    762 	* freebsd 8.2 fix: define MAP_ANONYMOUS for compatibility
    763 
    764 2012-05-24 Userspace RCU 0.7.2
    765 	* Fix library compatibility
    766 
    767 2012-05-24 Userspace RCU 0.7.1
    768 	* fix: uatomic_set return value compile fix for non-x86 arch.
    769 
    770 2012-05-21 Userspace RCU 0.7.0
    771 	* Cleanup: header comments coding style
    772 	* Document uatomic operations
    773 	* Update return value of "set" operations
    774 	* Fix mremap wrapper for NetBSD 5
    775 	* Use urcu/tls-compat.h
    776 	* Implement urcu/tls-compat.h
    777 	* Add TLS detection m4 macro
    778 	* document concurrent data structures
    779 	* documentation: refer to rcu-api.txt
    780 	* Move API.txt to doc/rcu-api.txt, install in system doc/
    781 	* rculfhash: document implied memory barriers
    782 	* rculfhash: Ensure future-proof memory barrier semantic consistency
    783 	* API cleanup: use "uatomic_*" in cmm_smp_mb__ API
    784 	* uatomic: add memory barrier API for and/or/add/sub/inc/sub
    785 	* rculfhash: add runhash.sh test script
    786 	* rculfhash tests: add missing check
    787 	* rculfhash: fix: race between replace and del operations
    788 	* rculfhash: replace unneeded rcu_dereference by CMM_LOAD_SHARED
    789 	* rculfhash: use do {} while (0) for dbg_printf()
    790 	* rculfhash: cleanup typo
    791 	* rculfhash: update API comments
    792 	* rculfhash: update comments in implementation
    793 	* rculfhash tests: add long hash chains tests
    794 	* rculfhash tests: add uniqueness test
    795 	* rculfhash test: print test name
    796 	* rculfhash: stress requirement in documentation
    797 	* rculfhash: fix typo
    798 	* rculfhash tests: use array of callbacks to modularize
    799 	* rculfhash tests: modularize tests
    800 	* rculfhash: document ordering guarantees
    801 	* rculfhash: document linearizability guarantees
    802 	* rculfhash: update removal comment
    803 	* Add missing files to .gitignore
    804 	* Fix out-of-tree build
    805 	* rculfhash: check malloc NULL pointer
    806 	* Fix uatomic sign cast
    807 	* Remove unused jhash.h file
    808 	* Fix: use known license text, fix incorrect FSF address
    809 	* Fix: add missing sched.h include in rculfhash.c
    810 	* Allow tests to run on architectures without per-cpu call_rcu support
    811 	* Hash table test: FreeBSD compatibility fix
    812 	* tests: define _GNU_SOURCE instead of __USE_GNU
    813 	* RCU lock-free hash table: implement cds_lfht_is_node_deleted()
    814 	* Define _GNU_SOURCE to access CPU_ZERO() macro in uClibc
    815 	* Install ChangeLog and README into system's doc
    816 	* Fix AC_LANG_SOURCE usage: only takes one parameter
    817 	* Fix autoconf futex check
    818 	* configure.ac: Use AC_LANG_SOURCE for if else macros
    819 	* Refresh autoconf files
    820 	* Update gitignore
    821 	* rculfhash: add comment about hash seed randomness within test program
    822 	* readme: state correct GCC dependency for ARM
    823 	* rculfhash: remove an invocation of bit_reverse_ulong() when adding
    824 	* rculfhash: remove unneeded conversion
    825 	* rculfhash: remove unneeded clear_flag()
    826 	* cds_lfht_replace: add checks for old/new node hash/value match
    827 	* rculfhash: use node instead of iter argument for deletion
    828 	* rculfhash: number of logically removed nodes should not appear in API
    829 	* Document that flags could be represented on 2 bits
    830 	* Add missing REMOVAL_OWNER_FLAG comment to cds_lfht_node comment
    831 	* _cds_lfht_del is not used for buckets anymore, remove parameter
    832 	* rculfhash: Relax atomicity guarantees required by removal operation
    833 	* remove unneeded "return;"
    834 	* simplify the deletion for bucket node
    835 	* Remove unneeded code
    836 	* Cleanup DEFINE_RCU_FLAVOR()
    837 	* Add cds_lfht_ prefix to fls_ulong, get_count_order_ulong, get_count_order_u32
    838 	* Merge RCU Lock-Free Resizable Hash Table
    839 
    840 2011-12-12 Userspace RCU 0.6.7
    841 	* Add compat file for test urcu wfs
    842 	* Add missing compat file for wfq test
    843 	* hlist.h: Add missing stddef.h include for NULL
    844 	* call_rcu: Add missing call_rcu_before_fork and
    845 	  call_rcu_after_fork_parent declarations
    846 	* Describe autotools/libtool/automake version dependency
    847 	* Remove m4_ifdef for AC_PROG_LIBTOOL (deprecated)
    848 	* Support older autotools
    849 	* Apply autoupdate to configure.ac
    850 	* Fix build for amd64 environment (for FreeBSD 8.2)
    851 	* Add missing rcu_dereference_sym_bp
    852 	* Install test scripts in the dist tarball
    853 
    854 2011-11-03 Userspace RCU 0.6.6
    855 	* qsbr vs call_rcu : remove exit assertion
    856 	* Rename likely/unlikely to caa_likely/caa_unlikely
    857 	* Reinsert missing test_urcu_*.c files (missing in rename)
    858 	* rename test_qsbr to test_urcu_qsbr
    859 	* urcu-pointer: fix rcu_set_pointer unset return value
    860 	* Enhance API.txt documentation, add to Makefile as EXTRA_DIST
    861 
    862 2011-09-29 Userspace RCU 0.6.5
    863 	* call_rcu: Document call_rcu requirements
    864 	* call_rcu: fix error handling of malloc error
    865 	* urcu call_rcu: Use RCU read-side protection for per-cpu call_rcu data
    866 	* urcu,call_rcu: Cleanup call_rcu_data pointers before use in child
    867 	* urcu,call_rcu: avoid create call_rcu_data for child when unneed
    868 	* urcu,defer_rcu: Make defer_rcu encoding more compact for marker
    869 	* urcu_defer: Use cancellation flag instead of pthread_cancel()
    870 	* urcu,call_rcu: protects call_rcu_data_list when remove node
    871 	* Create default call rcu data upon per-cpu call-rcu teardown
    872 	* powerpc: use __NO_LWSYNC__ check to use appropriate lwsync/sync opcode
    873 	* cmm: provide lightweight smp_rmb/smp_wmb on PPC
    874 	* atomic: provide seq_cst semantics on powerpc
    875 	* avoid leaking crdp for failed path
    876 	* Return -EEXIST when the old cpu call_rcu_data has not been removed
    877 	* protect writing to per_cpu_call_rcu_data[*]
    878 	* wake up default call_rcu thread after we move the leftover callbacks
    879 	* avoid memory leak in call_rcu_data_free()
    880 	* urcu call_rcu: fix use after free()
    881 	* use get_cpu_call_rcu_data() for get_call_rcu_data()
    882 	* init maxcpus before use
    883 	* call_rcu implementation: add missing static
    884 	* Document QSBR interaction with mutexes
    885 	* urcu-pointer: implement URCU_FORCE_CAST for C++ compatibility of urcu-pointer.h
    886 	* urcu-qsbr: use rcu_thread_offline/rcu_thread_online instead of inlining them
    887 	* Pair all_cpu call_rcu create with free
    888 	* QSBR: add missing wakeups in synchronize_rcu code
    889 	* cmm: do not generate code for smp_rmb/smp_wmb on x86_64
    890 	* cmm: let per-arch files provide cmm_smp_* barriers
    891 	* Optimize caa_get_cycles() for PowerPC64
    892 	* lfq/lfs tests: use call_rcu
    893 	* list: Add cds_list_first_entry
    894 	* rculfstack/queue: define _LGPL_SOURCE around static header include
    895 	* Add __rcu annotation (unimplemented)
    896 	* Fix incorrect fsf address in header files
    897 	* wfstack: push returns prior stack emptiness state
    898 	* Make lf stack push return if the stack was empty
    899 	* Document caa_container_of
    900 	* urcu-bp: do not call munmap for NULL registry at exit
    901 	* urcu libraries can directly use the _LGPL_SOURCE wfqueue
    902 	* rculfstack: document "push"
    903 	* Add runall.sh to tarball
    904 	* Fix build order of liburcu-cds-common
    905 	* Fix missing check for SYS_membarrier in map header
    906 	* urcu-qsbr: avoid useless futex wakeups and burning CPU for long grace periods
    907 	* api: reimplement BUILD_BUG_ON in compiler.h
    908 	* test api cleanup: remove unused primitives
    909 	* put thread offline while waiting for the init flag
    910 	* urcu: move private definitions to .c file
    911 	* urcu-bp: move private definitions to .c file
    912 	* urcu-qsbr: move private definitions to .c file
    913 	* rcutorture: fix rcutorture-qsbr
    914 	* wfqueue: fix type-incorrect assignment
    915 	* Fix tests Makefile EXTRA_DIST to use api.h
    916 	* Fix choice of default flavour in urcu/map/urcu.h
    917 	* api: remove list/hlist
    918 	* api: remove arch-specific files
    919 	* api: make api_gcc.h a superset of the other headers
    920 	* tests api: remove atomics
    921 	* put thread offline while waiting for the init flag
    922 	* urcu: move private definitions to .c file
    923 	* urcu-bp: move private definitions to .c file
    924 	* urcu-qsbr: move private definitions to .c file
    925 	* rcutorture: fix rcutorture-qsbr
    926 	* wfqueue: fix type-incorrect assignment
    927 	* Use caa_ prefix for min() and max()
    928 
    929 2011-07-21 Userspace RCU 0.6.4
    930 	* uatomic: Fix ARM build errors in uatomic.
    931 	* urcu tests: hold mutex across use of custom allocator.
    932 	* Portability fixes to support FreeBSD 8.2.
    933 
    934 2011-06-27 Userspace RCU 0.6.3
    935 	* uatomic: Fix i386 compatibility build errors in uatomic.
    936 
    937 2011-06-13 Userspace RCU 0.6.2
    938 	* Fix build on powerpc.
    939 
    940 2011-06-13 Userspace RCU 0.6.1
    941 	* Add missing headers into release tarball:
    942 	    urcu-call-rcu-impl.h and urcu-defer-impl.h
    943 
    944 2011-06-10 Userspace RCU 0.6.0
    945 	* Added call_rcu() support, graciously contributed by Paul E. McKenney.
    946 	* Added urcu/cds.h and merged all "Concurrent Data Containers" (CDS)
    947 	  into a single .so: liburcu-cds.so to have a single header/shared
    948 	  object holding all concurrency-aware data containers. It provides
    949 	  support for RCU lists, queues and stacks at the moment.
    950 	* liburcu 0.6.0 now allows linking a single application with multiple
    951 	  flavors of RCU. This required a library API change which is
    952 	  incompatible with older 0.5.x liburcu. The .so version number
    953 	  is therefore bumped from 0 to 1 (e.g. liburcu.so.1).
    954 	* Added "atfork" handling API, documented in README. Only useful for
    955 	  processes using fork() without following exec().
    956 	* Renaming the following files, keeping the old files (producing a
    957 	  compiler warning):
    958 	    urcu/uatomic_arch.h -> urcu/uatomic.h
    959 	    urcu/urcu-futex.h -> urcu/futex.h
    960 	    urcu/urcu_ref.h -> urcu/ref.h
    961 
    962 2011-03-04 Userspace RCU 0.5.4
    963 	 *  urcu-bp: Update fork() handling
    964 
    965 	    Introduce
    966 
    967 	    extern void rcu_bp_before_fork(void);
    968 	    extern void rcu_bp_after_fork_parent(void);
    969 	    extern void rcu_bp_after_fork_child(void);
    970 
    971 	    to handle fork gracefully. These disable signals and hold
    972 	    the registry mutex across forks. (this flavor of the liburcu
    973 	    library ("bp" for "bulletproof") is mainly used by UST, the
    974 	    user-space tracer).
    975 
    976 2011-03-03 Userspace RCU 0.5.3
    977 	* Add support for older ARM single-CPU architecturess (pre-ARMv7)
    978 	  (thanks to Jason Wessel from WindRiver).
    979 	* Fix ARMv7 cmm_rmb/cmm_wmb primitives (use a dmb barrier).
    980 	* Remove leftover list_t type from urcu/list.h (namespace cleanup).
    981 	* urcu_defer: handle malloc error value.
    982 	* Update README file to describe urcu interaction with fork() when not
    983 	* followed
    984 	  by an exec() system call.
    985 
    986 2010-11-18 Userspace RCU 0.5.2
    987 	* Fix renaming error introduced in 0.5.0.
    988 
    989 2010-11-18 Userspace RCU 0.5.1
    990 	* Fix renaming error introduced in 0.5.0. (incomplete fix)
    991 
    992 2010-11-18 Userspace RCU 0.5.0
    993 	* Version 0.5.0 changes the API presented by memory model,
    994 	  architecture abstraction and data structure primitives in
    995 	  headers. The prefixes are, respectively:
    996 	    - cmm_ : Concurrent Memory Model
    997 	    - caa_ : Concurrent Architecture Abstraction
    998 	    - cds_ : Concurrent Data Structures
    999 
   1000 2010-03-04 Userspace RCU 0.4.2
   1001 	* Add generic uatomic ops support.
   1002 	* Bugfix in urcu-bp. (rare garbage collection bug occurring in
   1003 	  multithreaded environment). Only affects urcu-bp users (UST).
   1004 
   1005 2010-02-12 Userspace RCU 0.4.1
   1006 	* s390: compilation fix.
   1007 
   1008 2010-01-30 Userspace RCU 0.4.0
   1009 	* API change: SIGURCU -> SIGRCU
   1010 	* API changes: standardize on rcu_ prefix.
   1011 	* API change: urcu_init -> rcu_init.
   1012 	* urcu/config.h options renamed to CONFIG_RCU_HAVE_FENCE,
   1013 	  CONFIG_RCU_HAVE_FUTEX, CONFIG_RCU_SMP, CONFIG_RCU_COMPAT_ARCH.
   1014 	  ((moving from URCU -> RCU).
   1015 	* library names changes: liburcu becomes the "default" version, using
   1016 	  sys_membarrier() when available, and using liburcu-mb as a
   1017 	  fallback.
   1018 	* The signal-based liburcu is renamed from liburcu to
   1019 	  liburcu-signal. People previously using the signal-based
   1020 	  "liburcu" will automatically be moved to the "default" liburcu
   1021 	  version.
   1022 
   1023 2009-11-16 Userspace RCU 0.3.1
   1024 	* Add support for sparcv9 32-bit build.
   1025 	* Update build system to use --host instead of --target.
   1026 
   1027 2009-11-03 Userspace RCU 0.3.0
   1028 	* API change for the "deferred work" interface.
   1029 
   1030 2009-10-14 Userspace RCU 0.2.3
   1031 	* Move to autotools.
   1032 	* Automated architecture detection, with i386 fallback.
   1033 	* Detect if NR_futex is on the system, fallback on portable
   1034 	  alternatives.
   1035 	* Add configure mode for UP-only systems.
   1036 
   1037 2009-10-02 Userspace RCU 0.2.2
   1038 	* Phases out rcu_publish_content() api.
   1039 	* Adds type checking to urcu-pointer.h pointer exchange primitives.
   1040 
   1041 2009-10-02 Userspace RCU 0.2.1
   1042 	* small header dependency fix for rculist.h.
   1043 	* new "liburcu-bp.so" : "Bulletproof RCU", made especially for
   1044 	  the UST userspace tracer. It's a library that sacrifices a bit
   1045 	  of read-side performance for automatically monitoring thread
   1046 	  creation/removal. See README for details.
   1047 
   1048 2009-10-01 Userspace RCU 0.2
   1049 	* Clarify usage of rcu_cmpxchg_pointer, rcu_xchg_pointer,
   1050 	  rcu_set_pointer.
   1051 
   1052 2009-09-29 Userspace RCU 0.1
   1053 	* Initial release.
   1054