|
@@ -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;
|