1*4882a593Smuzhiyun# memory barrier function implemented only for some architectures 2*4882a593Smuzhiyunconfig BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS 3*4882a593Smuzhiyun bool 4*4882a593Smuzhiyun default y 5*4882a593Smuzhiyun depends on BR2_arceb || BR2_arcle || BR2_arm || BR2_armeb || \ 6*4882a593Smuzhiyun BR2_aarch64 || BR2_aarch64_be || BR2_i386 || BR2_mips || \ 7*4882a593Smuzhiyun BR2_mipsel || BR2_mips64 || BR2_mips64el || BR2_powerpc || \ 8*4882a593Smuzhiyun BR2_powerpc64 || BR2_powerpc64le || BR2_sh || \ 9*4882a593Smuzhiyun BR2_sparc || BR2_sparc64 || BR2_x86_64 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunconfig BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 12*4882a593Smuzhiyun bool 13*4882a593Smuzhiyun default y if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le 14*4882a593Smuzhiyun 15*4882a593Smuzhiyunconfig BR2_PACKAGE_OPROFILE 16*4882a593Smuzhiyun bool "oprofile" 17*4882a593Smuzhiyun depends on BR2_USE_MMU # fork() 18*4882a593Smuzhiyun depends on BR2_INSTALL_LIBSTDCPP 19*4882a593Smuzhiyun depends on BR2_USE_WCHAR # binutils 20*4882a593Smuzhiyun depends on BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS 21*4882a593Smuzhiyun # libpfm4 is needed on PowerPC, and requires thread support 22*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 23*4882a593Smuzhiyun select BR2_PACKAGE_POPT 24*4882a593Smuzhiyun select BR2_PACKAGE_BINUTILS 25*4882a593Smuzhiyun select BR2_PACKAGE_LIBPFM4 if BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 26*4882a593Smuzhiyun help 27*4882a593Smuzhiyun OProfile is a system-wide profiler for Linux systems, 28*4882a593Smuzhiyun capable of profiling all running code at low overhead. 29*4882a593Smuzhiyun OProfile is released under the GNU GPL. 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun It consists of a kernel driver and a daemon for collecting 32*4882a593Smuzhiyun sample data, and several post-profiling tools for turning 33*4882a593Smuzhiyun data into information. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun OProfile leverages the hardware performance counters of the 36*4882a593Smuzhiyun CPU to enable profiling of a wide variety of interesting 37*4882a593Smuzhiyun statistics, which can also be used for basic time-spent 38*4882a593Smuzhiyun profiling. All code is profiled: hardware and software 39*4882a593Smuzhiyun interrupt handlers, kernel modules, the kernel, shared 40*4882a593Smuzhiyun libraries, and applications. 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun https://sourceforge.net/projects/oprofile/ 43*4882a593Smuzhiyun 44*4882a593Smuzhiyuncomment "oprofile needs a toolchain w/ C++, wchar" 45*4882a593Smuzhiyun depends on BR2_USE_MMU 46*4882a593Smuzhiyun depends on BR2_PACKAGE_OPROFILE_ARCH_SUPPORTS 47*4882a593Smuzhiyun depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR 48*4882a593Smuzhiyun 49*4882a593Smuzhiyuncomment "oprofile needs a toolchain w/ NPTL on PowerPC(64)" 50*4882a593Smuzhiyun depends on BR2_USE_MMU && BR2_PACKAGE_OPROFILE_NEEDS_LIBPFM4 51*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL 52