oprofile: bump to version 0.9.9
Relese notes for 0.9.9 release are avaialble here: http://oprofile.sourceforge.net/release-notes/oprofile-0.9.9 This release adds support for ARC architecture. Also introduces new "ocount" program for collection of raw event counts. With release of 0.9.9 we may drop back-ported patches: oprofile-002-no-query-modules.patch - liblegacy was removed since 2.4 kernels are no longer supportedfcb818623b
/ oprofile-003-oprofile-ppc32-build-fix.patchfa889ea74b
/ oprofile-004-fix-ppc64-specific-libpfm-usage.patch79a183ed0d
/ oprofile-005-fix-up-configure-to-handle-architectures-that-do-not.patchca6d916a6f
/ But in 0.9.9 was introduced build breakage which was fixed later so adding another back-ported patch oprofile-002-Fix-compile-error-on-ppc-uClibc-platform-AT_BASE_PLA.patch08241f1b2c
/ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Cc: Peter Korsgaard <jacmet@sunsite.dk> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Simon Dawson <spdawson@gmail.com> Cc: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
2457a9484b
commit
8ad6acc029
@ -0,0 +1,78 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
From 08241f1b2c5a4d48020c82b509dc1076f51bf0bd Mon Sep 17 00:00:00 2001
|
||||
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||
Date: Wed, 14 Aug 2013 15:40:44 -0500
|
||||
Subject: [PATCH] Fix compile error on ppc/uClibc platform: 'AT_BASE_PLATFORM'
|
||||
undeclared'
|
||||
|
||||
This issue was reported via bug #245.
|
||||
|
||||
The method for obtaining cpu type on the ppc64 platform was recently
|
||||
modified to detect the case when we're running on a kernel that has
|
||||
not been updated to recognize the native processor type. The cpu
|
||||
type returned in the case where the native processor type is newer
|
||||
than POWER7 will be "CPU_PPC64_ARCH_V1" (architected CPU type).
|
||||
The method used for detecting when the kernel does not recognize the
|
||||
native processor type is to inspect the aux vector and compare
|
||||
AT_PLATFORM and AT_BASE_PLATFORM. The 'AT_BASE_PLATFORM' was defined
|
||||
in glibc's elf.h around 5 years ago, but was never added to uClibc,
|
||||
so the code that implements the above-described method fails to compile
|
||||
on systems using uClibc.
|
||||
|
||||
Since the above-described method of using the aux vector is only
|
||||
required for ppc64 systems, and ppc64-based platforms always use glibc
|
||||
(which has the AT_BASE_PLATFORM macro defined), we now wrap that code
|
||||
with '#if PPC64_ARCH' to prevent problems on other architectures.
|
||||
|
||||
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||
---
|
||||
libop/op_cpu_type.c | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/libop/op_cpu_type.c b/libop/op_cpu_type.c
|
||||
index 44d6809..89d5a92 100644
|
||||
--- a/libop/op_cpu_type.c
|
||||
+++ b/libop/op_cpu_type.c
|
||||
@@ -23,9 +23,16 @@
|
||||
#include <elf.h>
|
||||
#include <link.h>
|
||||
|
||||
+#include "config.h"
|
||||
#include "op_cpu_type.h"
|
||||
#include "op_hw_specific.h"
|
||||
|
||||
+/* A macro to be used for ppc64 architecture-specific code. The '__powerpc__' macro
|
||||
+ * is defined for both ppc64 and ppc32 architectures, so we must further qualify by
|
||||
+ * including the 'HAVE_LIBPFM' macro, since that macro will be defined only for ppc64.
|
||||
+ */
|
||||
+#define PPC64_ARCH (HAVE_LIBPFM) && ((defined(__powerpc__) || defined(__powerpc64__)))
|
||||
+
|
||||
struct cpu_descr {
|
||||
char const * pretty;
|
||||
char const * name;
|
||||
@@ -176,6 +183,7 @@ static char * _get_cpuinfo_cpu_type(char * buf, int len, const char * prefix)
|
||||
return _get_cpuinfo_cpu_type_line(buf, len, prefix, 1);
|
||||
}
|
||||
|
||||
+#if PPC64_ARCH
|
||||
// The aux vector stuff below is currently only used by ppc64 arch
|
||||
static ElfW(auxv_t) * auxv_buf = NULL;
|
||||
|
||||
@@ -312,6 +320,13 @@ static op_cpu _get_ppc64_cpu_type(void)
|
||||
cpu_type = op_get_cpu_number(cpu_type_str);
|
||||
return cpu_type;
|
||||
}
|
||||
+#else
|
||||
+static op_cpu _get_ppc64_cpu_type(void)
|
||||
+{
|
||||
+ return CPU_NO_GOOD;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
|
||||
static op_cpu _get_arm_cpu_type(void)
|
||||
{
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,21 +0,0 @@
|
||||
diff -urN oprofile-0.9.4-0rig//daemon/liblegacy/opd_kernel.c oprofile-0.9.4/daemon/liblegacy/opd_kernel.c
|
||||
--- oprofile-0.9.4-0rig//daemon/liblegacy/opd_kernel.c 2005-05-04 04:47:03.000000000 +0200
|
||||
+++ oprofile-0.9.4/daemon/liblegacy/opd_kernel.c 2009-01-21 07:40:20.000000000 +0100
|
||||
@@ -270,6 +270,9 @@
|
||||
*/
|
||||
static void opd_drop_module_sample(unsigned long eip)
|
||||
{
|
||||
+ verbprintf(vmodule, "query_module not available on linux-2.6: %s\n", strerror(EPERM));
|
||||
+
|
||||
+#if 0
|
||||
char * module_names;
|
||||
char * name;
|
||||
size_t size = 1024;
|
||||
@@ -307,6 +310,7 @@
|
||||
|
||||
if (module_names)
|
||||
free(module_names);
|
||||
+#endif
|
||||
}
|
||||
|
||||
|
@ -1,32 +0,0 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
From fa889ea74b6b931e241a8cd57e90edc23cd7ab03 Mon Sep 17 00:00:00 2001
|
||||
From: William Cohen <wcohen@redhat.com>
|
||||
Date: Mon, 15 Oct 2012 15:09:55 -0500
|
||||
Subject: [PATCH] OProfile doesn't build for 32-bit ppc; the operf_utils.cpp
|
||||
compile fails. Need to be able to build the 32-bit ppc
|
||||
version of oprofile to provide the 32-bit ppc java support
|
||||
libraries. The configure only handles the case of ppc64
|
||||
with perf support.
|
||||
|
||||
Signed-off-by: William Cohen <wcohen@redhat.com>
|
||||
---
|
||||
configure.ac | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b739133..7449854 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -104,7 +104,7 @@ AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HAVE_PERF_EVENTS, [Kernel support for perf
|
||||
if test "$HAVE_PERF_EVENTS" = "1"; then
|
||||
PFM_LIB=
|
||||
arch="`uname -m`"
|
||||
- if test "$arch" = "ppc64"; then
|
||||
+ if test "$arch" = "ppc64" || test "$arch" = "ppc"; then
|
||||
AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; usually provided in papi devel package])])
|
||||
AC_CHECK_LIB(pfm,pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1', [
|
||||
AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1',
|
||||
--
|
||||
1.7.9.7
|
||||
|
@ -1,105 +0,0 @@
|
||||
From 8e36ad01ceb1257d05773b684dbe9358aecd3f71 Mon Sep 17 00:00:00 2001
|
||||
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||
Date: Tue, 26 Feb 2013 13:41:27 -0600
|
||||
Subject: [PATCH] Fix PPC64-specific libpfm usage so it doesn't break ppc32
|
||||
architecture
|
||||
|
||||
The configure check to determine whether we should use libpfm or not
|
||||
is intended only for the ppc64 architecture, but was incorrectly
|
||||
hitting on the ppc32 architecture, too. Not only that, but it was using
|
||||
'uname' which is not a good idea in cross-compile situtations.
|
||||
|
||||
Then, aside from that, we had several instances in the source code
|
||||
of the following:
|
||||
#if (defined(__powerpc__) || defined(__powerpc64__))
|
||||
which incorrectly included ppc32 architecutre also, when it was intended
|
||||
for use as PPC64 architecture.
|
||||
|
||||
This patch fixes both errors.
|
||||
|
||||
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com
|
||||
---
|
||||
configure.ac | 5 ++---
|
||||
libperf_events/operf_utils.cpp | 4 ++--
|
||||
libperf_events/operf_utils.h | 6 ++++++
|
||||
pe_profiling/operf.cpp | 10 +++++-----
|
||||
4 files changed, 15 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -100,11 +100,10 @@ else
|
||||
HAVE_PERF_EVENTS='0'
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HAVE_PERF_EVENTS, [Kernel support for perf_events exists])
|
||||
-
|
||||
+AC_CANONICAL_HOST
|
||||
if test "$HAVE_PERF_EVENTS" = "1"; then
|
||||
PFM_LIB=
|
||||
- arch="`uname -m`"
|
||||
- if test "$arch" = "ppc64" || test "$arch" = "ppc"; then
|
||||
+ if test "$host_cpu" = "powerpc64"; then
|
||||
AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; usually provided in papi devel package])])
|
||||
AC_CHECK_LIB(pfm,pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1', [
|
||||
AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1',
|
||||
diff --git a/libperf_events/operf_utils.cpp b/libperf_events/operf_utils.cpp
|
||||
--- a/libperf_events/operf_utils.cpp
|
||||
+++ b/libperf_events/operf_utils.cpp
|
||||
@@ -82,7 +82,7 @@ static event_t comm_event;
|
||||
* the following method is to map the operf-record event value to a value that
|
||||
* opreport can understand.
|
||||
*/
|
||||
-#if (defined(__powerpc__) || defined(__powerpc64__))
|
||||
+#if PPC64_ARCH
|
||||
#define NIL_CODE ~0U
|
||||
|
||||
#if HAVE_LIBPFM3
|
||||
@@ -708,7 +708,7 @@ static void __handle_sample_event(event_
|
||||
} else if (event->header.misc == PERF_RECORD_MISC_USER) {
|
||||
in_kernel = false;
|
||||
}
|
||||
-#if (defined(__powerpc__) || defined(__powerpc64__))
|
||||
+#if PPC64_ARCH
|
||||
else if (event->header.misc == PERF_RECORD_MISC_HYPERVISOR) {
|
||||
#define MAX_HYPERVISOR_ADDRESS 0xfffffffULL
|
||||
if (data.ip > MAX_HYPERVISOR_ADDRESS) {
|
||||
diff --git a/libperf_events/operf_utils.h b/libperf_events/operf_utils.h
|
||||
--- a/libperf_events/operf_utils.h
|
||||
+++ b/libperf_events/operf_utils.h
|
||||
@@ -45,6 +45,12 @@ extern bool throttled;
|
||||
#define MMAP_WINDOW_SZ (32 * 1024 * 1024ULL)
|
||||
#endif
|
||||
|
||||
+/* A macro to be used for ppc64 architecture-specific code. The '__powerpc__' macro
|
||||
+ * is defined for both ppc64 and ppc32 architectures, so we must further qualify by
|
||||
+ * including the 'HAVE_LIBPFM' macro, since that macro will be defined only for ppc64.
|
||||
+ */
|
||||
+#define PPC64_ARCH (HAVE_LIBPFM) && ((defined(__powerpc__) || defined(__powerpc64__)))
|
||||
+
|
||||
extern unsigned int op_nr_counters;
|
||||
|
||||
static inline size_t align_64bit(u64 x)
|
||||
diff --git a/pe_profiling/operf.cpp b/pe_profiling/operf.cpp
|
||||
--- a/pe_profiling/operf.cpp
|
||||
+++ b/pe_profiling/operf.cpp
|
||||
@@ -1197,9 +1197,9 @@ static void _process_events_list(void)
|
||||
_get_event_code(&event);
|
||||
events.push_back(event);
|
||||
}
|
||||
-#if (defined(__powerpc__) || defined(__powerpc64__))
|
||||
+#if PPC64_ARCH
|
||||
{
|
||||
- /* This section of code is for architectures such as ppc[64] for which
|
||||
+ /* This section of code is soley for the ppc64 architecture for which
|
||||
* the oprofile event code needs to be converted to the appropriate event
|
||||
* code to pass to the perf_event_open syscall.
|
||||
*/
|
||||
@@ -1244,7 +1244,7 @@ static void get_default_event(void)
|
||||
_get_event_code(&dft_evt);
|
||||
events.push_back(dft_evt);
|
||||
|
||||
-#if (defined(__powerpc__) || defined(__powerpc64__))
|
||||
+#if PPC64_ARCH
|
||||
{
|
||||
/* This section of code is for architectures such as ppc[64] for which
|
||||
* the oprofile event code needs to be converted to the appropriate event
|
@ -1,154 +0,0 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
From ca6d916a6f8f0f8abbb4c9b6a97dd1a1615bb124 Mon Sep 17 00:00:00 2001
|
||||
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||
Date: Wed, 5 Dec 2012 10:16:35 -0600
|
||||
Subject: [PATCH] Fix up configure to handle architectures that do not
|
||||
implement perf_event_open
|
||||
|
||||
This patch fixes the following problems:
|
||||
|
||||
1) The configure script allows the user to pass a location to kernel
|
||||
headers (via --with-kernel option) such that, even if the running
|
||||
kernel does not have perf_events support, it may be possible to
|
||||
build operf (e.g., in cross-compile environments). But the message
|
||||
'This kernel does not have perf_events support; falling back to legacy
|
||||
oprofile' was being displayed inappropriately in such cases. This
|
||||
patch changes the configure script so that the "falling back to
|
||||
legacy oprofile" message will only be displayed if we're running
|
||||
on a kernel that does not have perf_events support AND the user
|
||||
did not pass specify the "--with-kernel" option.
|
||||
|
||||
2) Some architectures don't even implement the perf_event_open syscall, so the
|
||||
configure script must do more than checking kernel version and whether or not
|
||||
perf_event.h is present in order to decide if perf_events is supported.
|
||||
This patch provides that extra capability.
|
||||
|
||||
These problems were reported by Tony Jones <tonyj@suse.com>.
|
||||
|
||||
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||
---
|
||||
configure.ac | 74 +++++++++++++++++++++++++++++-----------
|
||||
utils/op_perf_events_checker.c | 6 ++--
|
||||
2 files changed, 58 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -70,35 +70,70 @@ KERNELDIR=$withval)
|
||||
|
||||
|
||||
dnl Check kernel version for perf_events supported
|
||||
-AC_MSG_CHECKING([kernel version supports perf_events])
|
||||
if test "$KERNELDIR" != ""; then
|
||||
KINC="$KERNELDIR/include"
|
||||
+ PERF_EVENT_FLAGS=" -I$KERNELDIR/include"
|
||||
+ AC_SUBST(PERF_EVENT_FLAGS)
|
||||
+ PERF_EVENT_H="$KERNELDIR/include/linux/perf_event.h"
|
||||
+else
|
||||
+ PERF_EVENT_H="/usr/include/linux/perf_event.h"
|
||||
fi
|
||||
-AX_KERNEL_VERSION(2, 6, 31, <=, kernel_has_perf_events_support="yes",
|
||||
+
|
||||
+PERF_EVENT_H_EXISTS="no"
|
||||
+kernel_may_have_perf_events_support="no"
|
||||
+AX_KERNEL_VERSION(2, 6, 31, <=, kernel_may_have_perf_events_support="yes",
|
||||
kernel_has_perf_events_support="no")
|
||||
|
||||
-if test "$kernel_has_perf_events_support" = "no"; then
|
||||
- AC_MSG_RESULT([This kernel does not have perf_events support; falling back to legacy oprofile])
|
||||
+dnl The AX_KERNEL_VERSION macro may return kernel_may_have_perf_events_support="yes",
|
||||
+dnl indicating a partial answer. Some architectures do not implement the Performance
|
||||
+dnl Events Kernel Subsystem even with kernel versions > 2.6.31 -- i.e., not even
|
||||
+dnl implementing the perf_event_open syscall to return ENOSYS. So the check below
|
||||
+dnl will identify and handle such situations.
|
||||
+
|
||||
+if test "$kernel_may_have_perf_events_support" = "yes"; then
|
||||
+ AC_CHECK_HEADER($PERF_EVENT_H,PERF_EVENT_H_EXISTS="yes")
|
||||
+ AC_MSG_CHECKING([kernel supports perf_events])
|
||||
+ if test "$PERF_EVENT_H_EXISTS" = "yes"; then
|
||||
+ rm -f test-for-PERF_EVENT_OPEN
|
||||
+ AC_LANG_CONFTEST(
|
||||
+ [AC_LANG_PROGRAM([[#include <linux/perf_event.h>
|
||||
+ #include <asm/unistd.h>
|
||||
+ #include <sys/types.h>
|
||||
+ #include <string.h>
|
||||
+ ]],
|
||||
+ [[struct perf_event_attr attr;
|
||||
+ pid_t pid;
|
||||
+ memset(&attr, 0, sizeof(attr));
|
||||
+ attr.size = sizeof(attr);
|
||||
+ attr.sample_type = PERF_SAMPLE_IP;
|
||||
+ pid = getpid();
|
||||
+ syscall(__NR_perf_event_open, &attr, pid, 0, -1, 0);
|
||||
+ ]])
|
||||
+ ])
|
||||
+ $CC conftest.$ac_ext $CFLAGS $LDFLAGS $LIBS $PERF_EVENT_FLAGS -o test-for-PERF_EVENT_OPEN > /dev/null 2>&1
|
||||
+ if test -f test-for-PERF_EVENT_OPEN; then
|
||||
+ kernel_has_perf_events_support="yes"
|
||||
+ AC_MSG_RESULT(yes)
|
||||
+ else
|
||||
+ AC_MSG_RESULT(no)
|
||||
+ kernel_has_perf_events_support="no"
|
||||
+ fi
|
||||
+ else
|
||||
+ AC_MSG_RESULT(unknown -- perf_event.h not found)
|
||||
+ fi
|
||||
else
|
||||
- AC_MSG_RESULT([This kernel has perf_events support])
|
||||
+ AC_MSG_RESULT(kernel supports perf_events... no)
|
||||
+ kernel_has_perf_events_support="no"
|
||||
+fi
|
||||
+AM_CONDITIONAL(BUILD_FOR_PERF_EVENT, test "$kernel_has_perf_events_support" = "yes")
|
||||
+
|
||||
+if test "$kernel_has_perf_events_support" = "yes"; then
|
||||
+ HAVE_PERF_EVENTS='1'
|
||||
+else
|
||||
+ HAVE_PERF_EVENTS='0'
|
||||
+ AC_MSG_RESULT([No perf_events support available; falling back to legacy oprofile])
|
||||
fi
|
||||
|
||||
-if test "$KERNELDIR" == ""; then
|
||||
- PERF_EVENT_H="/usr/include/linux/perf_event.h"
|
||||
-else
|
||||
- PERF_EVENT_H="$KERNELDIR/include/linux/perf_event.h"
|
||||
-fi
|
||||
-AC_CHECK_HEADER($PERF_EVENT_H,PERF_EVENT_H_EXISTS="yes")
|
||||
-AM_CONDITIONAL(BUILD_FOR_PERF_EVENT, test -n "$PERF_EVENT_H_EXISTS")
|
||||
-if test "$PERF_EVENT_H_EXISTS" = "yes"; then
|
||||
- HAVE_PERF_EVENTS='1'
|
||||
- if test "$KERNELDIR" != ""; then
|
||||
- PERF_EVENT_FLAGS=" -I$KERNELDIR/include"
|
||||
- AC_SUBST(PERF_EVENT_FLAGS)
|
||||
- fi
|
||||
-else
|
||||
- HAVE_PERF_EVENTS='0'
|
||||
-fi
|
||||
AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HAVE_PERF_EVENTS, [Kernel support for perf_events exists])
|
||||
AC_CANONICAL_HOST
|
||||
if test "$HAVE_PERF_EVENTS" = "1"; then
|
||||
@@ -414,7 +449,7 @@ elif test "`getent passwd oprofile 2>/de
|
||||
fi
|
||||
fi
|
||||
|
||||
-if test "$PERF_EVENT_H_EXISTS" != "yes" && test "$kernel_has_perf_events_support" = "yes"; then
|
||||
+if test "$PERF_EVENT_H_EXISTS" != "yes" && test "$kernel_may_have_perf_events_support" = "yes"; then
|
||||
echo "Warning: perf_event.h not found. Please install the kernel headers package if you"
|
||||
echo " want non-root support built into OProfile."
|
||||
fi
|
||||
diff --git a/utils/op_perf_events_checker.c b/utils/op_perf_events_checker.c
|
||||
--- a/utils/op_perf_events_checker.c
|
||||
+++ b/utils/op_perf_events_checker.c
|
||||
@@ -49,8 +49,10 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
#if HAVE_PERF_EVENTS
|
||||
- /* If perf_events syscall is not implemented, the syscall below will fail
|
||||
- * with ENOSYS (38). If implemented, but the processor type on which this
|
||||
+ /* Even if the perf_event_open syscall is implemented, the architecture may still
|
||||
+ * not provide a full implementation of the perf_events subsystem, in which case,
|
||||
+ * the syscall below will fail with ENOSYS (38). If the perf_events subsystem is
|
||||
+ * implemented for the architecture, but the processor type on which this
|
||||
* program is running is not supported by perf_events, the syscall returns
|
||||
* ENOENT (2).
|
||||
*/
|
@ -4,7 +4,7 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPROFILE_VERSION = 0.9.8
|
||||
OPROFILE_VERSION = 0.9.9
|
||||
OPROFILE_SITE = http://downloads.sourceforge.net/project/oprofile/oprofile/oprofile-$(OPROFILE_VERSION)
|
||||
OPROFILE_LICENSE = GPLv2+
|
||||
OPROFILE_LICENSE_FILES = COPYING
|
||||
@ -17,6 +17,7 @@ OPROFILE_AUTORECONF = YES
|
||||
OPROFILE_BINARIES = utils/ophelp pp/opannotate pp/oparchive pp/opgprof
|
||||
OPROFILE_BINARIES += pp/opreport opjitconv/opjitconv daemon/oprofiled
|
||||
OPROFILE_BINARIES += utils/op-check-perfevents libabi/opimport
|
||||
OPROFILE_BINARIES += pe_counting/ocount
|
||||
|
||||
# No perf_events support in kernel for avr32
|
||||
ifneq ($(BR2_avr32),y)
|
||||
|
Loading…
Reference in New Issue
Block a user