config BR2_PACKAGE_OPROFILE
	bool "oprofile"
	depends on BR2_USE_MMU # fork()
	select BR2_PACKAGE_POPT
	select BR2_PACKAGE_BINUTILS
	select BR2_PACKAGE_LIBPFM4 if BR2_powerpc
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_aarch64 && !BR2_nios2 # binutils
	depends on BR2_USE_WCHAR # binutils
	depends on !BR2_xtensa
	# libpfm4 is needed on PowerPC, and requires thread support
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_powerpc
	help
	  OProfile is a system-wide profiler for Linux systems,
	  capable of profiling all running code at low overhead.
	  OProfile is released under the GNU GPL.

	  It consists of a kernel driver and a daemon for collecting
	  sample data, and several post-profiling tools for turning
	  data into information.

	  OProfile leverages the hardware performance counters of the
	  CPU to enable profiling of a wide variety of interesting
	  statistics, which can also be used for basic time-spent
	  profiling. All code is profiled: hardware and software
	  interrupt handlers, kernel modules, the kernel, shared
	  libraries, and applications.

comment "oprofile needs a toolchain w/ C++, wchar"
	depends on BR2_USE_MMU
	depends on !BR2_aarch64 && !BR2_nios2 && !BR2_xtensa
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR

comment "oprofile needs a toolchain w/ NPTL on PPC"
	depends on BR2_USE_MMU && BR2_powerpc
	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
