summaryrefslogtreecommitdiff
path: root/package/oprofile/patches/patch-libop_op_cpu_type_c
diff options
context:
space:
mode:
Diffstat (limited to 'package/oprofile/patches/patch-libop_op_cpu_type_c')
-rw-r--r--package/oprofile/patches/patch-libop_op_cpu_type_c42
1 files changed, 42 insertions, 0 deletions
diff --git a/package/oprofile/patches/patch-libop_op_cpu_type_c b/package/oprofile/patches/patch-libop_op_cpu_type_c
new file mode 100644
index 000000000..6064fc5e7
--- /dev/null
+++ b/package/oprofile/patches/patch-libop_op_cpu_type_c
@@ -0,0 +1,42 @@
+--- oprofile-0.9.9.orig/libop/op_cpu_type.c 2013-07-29 17:55:07.000000000 +0200
++++ oprofile-0.9.9/libop/op_cpu_type.c 2013-11-05 20:55:54.000000000 +0100
+@@ -23,9 +23,17 @@
+ #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 +184,7 @@ static char * _get_cpuinfo_cpu_type(char
+ 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;
+
+@@ -313,6 +322,13 @@ static op_cpu _get_ppc64_cpu_type(void)
+ 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)
+ {
+ unsigned long cpuid, vendorid;