config BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
	bool
	default y
	depends on BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be || \
		BR2_i386 || BR2_mips || BR2_mips64 || BR2_mipsel || \
		BR2_mips64el || BR2_powerpc || BR2_powerpc64 || \
		BR2_powerpc64le || BR2_riscv || BR2_sparc64 || BR2_s390x || BR2_x86_64
	depends on BR2_USE_MMU # fork() in test

config BR2_PACKAGE_LIBURCU
	bool "liburcu"
	depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_INSTALL_LIBSTDCPP
	help
	  Userspace implementation of the Read-Copy-Update (RCU)
	  synchronization mechanism. This library is mainly used by
	  the LTTng tracing infrastructure, but can be used for other
	  purposes as well.

	  On ARM, because of bug:
	    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
	  liburcu cannot be built using gcc 4.8.0, 4.8.1 or 4.8.2
	  without the following bug fix:
	    http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204665

	  http://lttng.org/urcu

comment "liburcu needs a toolchain w/ threads, C++"
	depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_INSTALL_LIBSTDCPP
