libunwind: fix C library dependency
The libunwind package currently dependency on glibc *or* uclibc
snapshot. However, we are going to remove the support for uclibc
snapshot, and uClibc-ng has equivalent functionality as uclibc
snapshot. Moreover, musl is also capable of building libunwind for
certain architectures.
Therefore, this commit reworks the architecture dependencies of
libunwind, to make it available on all architectures for which it is
supported, depending on the capabilities of the different C libraries,
and the implementation of libunwind on each architecture.
On some architectures, libunwind uses the C library *context()
functions, which are not provided by musl at all, and not provided by
uClibc on all architectures. But on some other architectures,
libunwind does not use the C library *context() functions, which
explains why it can be built with musl on such architectures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-01-27 22:25:23 +01:00
|
|
|
# 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 || BR2_armeb || BR2_mips || BR2_mipsel || BR2_mips64 || \
|
|
|
|
BR2_mips64el || BR2_powerpc || BR2_sh || BR2_sh64 || BR2_i386 || BR2_x86_64)
|
|
|
|
default y if BR2_TOOLCHAIN_USES_UCLIBC && \
|
|
|
|
(BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || BR2_mipsel || \
|
|
|
|
BR2_mips64 || BR2_mips64el || BR2_x86_64)
|
|
|
|
default y if BR2_TOOLCHAIN_USES_MUSL && \
|
|
|
|
(BR2_arm || BR2_armeb || BR2_i386 || BR2_x86_64)
|
|
|
|
|
2013-06-25 23:41:44 +02:00
|
|
|
config BR2_PACKAGE_LIBUNWIND
|
|
|
|
bool "libunwind"
|
2013-09-10 20:17:41 +02:00
|
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
libunwind: fix C library dependency
The libunwind package currently dependency on glibc *or* uclibc
snapshot. However, we are going to remove the support for uclibc
snapshot, and uClibc-ng has equivalent functionality as uclibc
snapshot. Moreover, musl is also capable of building libunwind for
certain architectures.
Therefore, this commit reworks the architecture dependencies of
libunwind, to make it available on all architectures for which it is
supported, depending on the capabilities of the different C libraries,
and the implementation of libunwind on each architecture.
On some architectures, libunwind uses the C library *context()
functions, which are not provided by musl at all, and not provided by
uClibc on all architectures. But on some other architectures,
libunwind does not use the C library *context() functions, which
explains why it can be built with musl on such architectures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-01-27 22:25:23 +01:00
|
|
|
depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS
|
2013-06-25 23:41:44 +02:00
|
|
|
help
|
|
|
|
C API to determine the call-chain of a program.
|
|
|
|
|
|
|
|
http://www.nongnu.org/libunwind/index.html
|
2013-09-10 20:17:41 +02:00
|
|
|
|
libunwind: fix C library dependency
The libunwind package currently dependency on glibc *or* uclibc
snapshot. However, we are going to remove the support for uclibc
snapshot, and uClibc-ng has equivalent functionality as uclibc
snapshot. Moreover, musl is also capable of building libunwind for
certain architectures.
Therefore, this commit reworks the architecture dependencies of
libunwind, to make it available on all architectures for which it is
supported, depending on the capabilities of the different C libraries,
and the implementation of libunwind on each architecture.
On some architectures, libunwind uses the C library *context()
functions, which are not provided by musl at all, and not provided by
uClibc on all architectures. But on some other architectures,
libunwind does not use the C library *context() functions, which
explains why it can be built with musl on such architectures.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2016-01-27 22:25:23 +01:00
|
|
|
comment "libunwind needs a toolchain w/ threads"
|
|
|
|
depends on BR2_PACKAGE_LIBUNWIND_ARCH_SUPPORTS
|
|
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS
|