config BR2_PACKAGE_LIBUNWIND_MUSL_CONTEXT_REQUIRED
	bool
	default y
	depends on !BR2_ARM_CPU_HAS_ARM
	depends on !BR2_aarch64
	depends on !BR2_aarch64_be
	depends on !BR2_mips
	depends on !BR2_mipsel
	depends on !BR2_mips64
	depends on !BR2_mips64el
	depends on !BR2_riscv
	depends on !BR2_x86_64
	depends on BR2_TOOLCHAIN_USES_MUSL

# libunwind is only available for a certain subset of the
# architectures (as visible in the list of architectures supported
# with the glibc C library below).
#
# In addition to this, on some architectures libunwind requires the
# *context() function from the C library, which are only available on
# certain architectures in uClibc, and not available at all on
# musl. But on some other architectures, libunwind works without using
# the *context() functions, which allows it to be built with musl.
config BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS
	bool
	default y if BR2_TOOLCHAIN_USES_GLIBC && \
		(BR2_ARM_CPU_HAS_ARM || BR2_aarch64 || BR2_mips || BR2_mipsel || \
		 BR2_mips64 || BR2_mips64el || BR2_powerpc || BR2_sh || \
		 BR2_i386 || BR2_x86_64)
	default y if BR2_TOOLCHAIN_USES_UCLIBC && \
		(BR2_ARM_CPU_HAS_ARM || BR2_mips || BR2_mipsel || \
		 BR2_mips64 || BR2_mips64el || BR2_x86_64)
	default y if BR2_TOOLCHAIN_USES_MUSL && \
		(!BR2_PACKAGE_LIBUNWIND_MUSL_CONTEXT_REQUIRED || \
		 BR2_PACKAGE_LIBUCONTEXT_ARCH_SUPPORTS)

config BR2_PACKAGE_LIBUNWIND
	bool "libunwind"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C11 atomics
	# forcefully links against libgcc_s, only available in dynamic
	# linking configurations
	depends on !BR2_STATIC_LIBS
	select BR2_PACKAGE_LIBUCONTEXT if BR2_TOOLCHAIN_USES_MUSL && \
		BR2_PACKAGE_LIBUNWIND_MUSL_CONTEXT_REQUIRED
	help
	  C API to determine the call-chain of a program.

	  http://www.nongnu.org/libunwind/index.html

comment "libunwind needs a toolchain w/ threads, dynamic library, gcc >= 4.9"
	depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
