config BR2_PACKAGE_LTRACE_ARCH_SUPPORTS
	bool
	default y if BR2_aarch64
	default y if BR2_arm
	default y if BR2_i386
	default y if BR2_mips
	default y if BR2_mipsel
	default y if BR2_powerpc
	default y if BR2_sparc
	default y if BR2_x86_64
	default y if BR2_xtensa

config BR2_PACKAGE_LTRACE
	bool "ltrace"
	depends on BR2_USE_WCHAR # elfutils
	depends on !BR2_STATIC_LIBS # elfutils
	depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils
	depends on BR2_PACKAGE_LTRACE_ARCH_SUPPORTS
	select BR2_PACKAGE_ELFUTILS
	help
	  Debugging program which runs a specified command until it
	  exits. While the command is executing, ltrace intercepts and
	  records the dynamic library calls which are called by the
	  executed process and the signals received by that process.

	  http://ltrace.org

comment "ltrace needs a uClibc or glibc toolchain w/ wchar, dynamic library"
	depends on BR2_PACKAGE_LTRACE_ARCH_SUPPORTS
	depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS \
		|| !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
