config BR2_PACKAGE_MOARVM
	bool "moarvm"
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
	depends on !BR2_STATIC_LIBS # libuv
	depends on BR2_USE_MMU # libuv
	depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS # libatomic_ops
	# needs AO_fetch_compare_and_swap, not implemented for sparcv8/sparcv9
	depends on !BR2_sparc64 && !BR2_sparc
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv
	select BR2_PACKAGE_LIBUV
	select BR2_PACKAGE_LIBTOMMATH
	select BR2_PACKAGE_LIBATOMIC_OPS
	# dyncall does not work on MIPS; libffi needs to be used.
	# See: https://github.com/MoarVM/MoarVM/issues/222
	# dyncall does not work also on powerpc64 and powerpc64le
	select BR2_PACKAGE_LIBFFI if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_powerpc64 || BR2_powerpc64le
	select BR2_PACKAGE_ZSTD
	help
	  Short for "Metamodel On A Runtime", MoarVM is a virtual
	  machine built especially for Rakudo Perl 6 and the NQP
	  Compiler Toolchain.

	  http://moarvm.com

comment "moarvm needs a toolchain w/ NPTL, dynamic library"
	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
	depends on BR2_USE_MMU
	depends on BR2_PACKAGE_LIBATOMIC_OPS_ARCH_SUPPORTS
	depends on !BR2_sparc64 && !BR2_sparc
	depends on BR2_TOOLCHAIN_HAS_SYNC_4
