| # 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_ARM_CPU_HAS_ARM || BR2_aarch64 || BR2_x86_64) |
| |
| config BR2_PACKAGE_LIBUNWIND |
| bool "libunwind" |
| depends on BR2_TOOLCHAIN_HAS_THREADS |
| depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS |
| # forcefully links against libgcc_s, only available in dynamic |
| # linking configurations |
| depends on !BR2_STATIC_LIBS |
| 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" |
| depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS |
| depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS |