Accepting request 224923 from devel:tools
(forwarded request 224922 from jones_tony) OBS-URL: https://build.opensuse.org/request/show/224923 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/oprofile?expand=0&rev=39
This commit is contained in:
commit
4014d12e66
@ -0,0 +1,39 @@
|
|||||||
|
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
Git-commit: a2811baceccff810e055f166792acdf7a920bf8c
|
||||||
|
Subject: configure error message for missing libpfm is not informative enough
|
||||||
|
Date: Wed Oct 9 14:27:54 2013 -0500
|
||||||
|
|
||||||
|
configure error message for missing libpfm is not informative enough
|
||||||
|
|
||||||
|
On the ppc64 architecture, the libpfm library is used to get perf_events
|
||||||
|
encodings for events, so the configure script checks for the availability
|
||||||
|
of that library when building for ppc64. If the library is missing, the
|
||||||
|
configure error message is:
|
||||||
|
|
||||||
|
checking for perfmon/pfmlib.h... no
|
||||||
|
configure: error: pfmlib.h not found; usually provided in papi devel package
|
||||||
|
|
||||||
|
However, some newer distros (like Fedora 19) are now delivering separate
|
||||||
|
packages for libpfm and papi, instead of bundling them together. The patch
|
||||||
|
provided herein changes the configure message to reflect that change in
|
||||||
|
packaging.
|
||||||
|
|
||||||
|
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 758b676..457145a 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -185,10 +185,10 @@ AC_CANONICAL_HOST
|
||||||
|
if test "$HAVE_PERF_EVENTS" = "1"; then
|
||||||
|
PFM_LIB=
|
||||||
|
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_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
|
||||||
|
AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
|
||||||
|
AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
|
||||||
|
- [AC_MSG_ERROR([libpfm not found; usually provided in papi devel package])])])
|
||||||
|
+ [AC_MSG_ERROR([libpfm not found; may be provided by libpfm devel or papi devel package])])])
|
||||||
|
PFM_LIB="-lpfm"
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_LIBPFM3, $HAVE_LIBPFM3, [Define to 1 if using libpfm3; 0 if using newer libpfm])
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_LIBPFM, $HAVE_LIBPFM, [Define to 1 if libpfm is available])
|
51
oprofile-enable-for-new-ppc64le-architecture.patch
Normal file
51
oprofile-enable-for-new-ppc64le-architecture.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
Subject: Enable oprofile for new ppc64le architecture
|
||||||
|
Git-commit: a265c549bff149f5e9064dca7d06b6689fb3d64e
|
||||||
|
Date: Thu Jan 9 15:47:09 2014 -0600
|
||||||
|
|
||||||
|
Enable oprofile for new ppc64le architecture
|
||||||
|
|
||||||
|
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 457145a..1e3a65f 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -184,7 +184,7 @@ AC_DEFINE_UNQUOTED(HAVE_PERF_EVENTS, $HAVE_PERF_EVENTS, [Kernel support for perf
|
||||||
|
AC_CANONICAL_HOST
|
||||||
|
if test "$HAVE_PERF_EVENTS" = "1"; then
|
||||||
|
PFM_LIB=
|
||||||
|
- if test "$host_cpu" = "powerpc64"; then
|
||||||
|
+ if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
|
||||||
|
AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
|
||||||
|
AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
|
||||||
|
AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
|
||||||
|
diff --git a/libop/op_cpu_type.c b/libop/op_cpu_type.c
|
||||||
|
index 7d5262c..15c71ab 100644
|
||||||
|
--- a/libop/op_cpu_type.c
|
||||||
|
+++ b/libop/op_cpu_type.c
|
||||||
|
@@ -621,7 +621,8 @@ static op_cpu __get_cpu_type_alt_method(void)
|
||||||
|
fnmatch("i?86", uname_info.machine, 0) == 0) {
|
||||||
|
return _get_x86_64_cpu_type();
|
||||||
|
}
|
||||||
|
- if (strncmp(uname_info.machine, "ppc64", 5) == 0) {
|
||||||
|
+ if ((strncmp(uname_info.machine, "ppc64", 5) == 0) ||
|
||||||
|
+ (strncmp(uname_info.machine, "ppc64le", 7) == 0)) {
|
||||||
|
return _get_ppc64_cpu_type();
|
||||||
|
}
|
||||||
|
if (strncmp(uname_info.machine, "arm", 3) == 0) {
|
||||||
|
diff --git a/libutil++/bfd_support.cpp b/libutil++/bfd_support.cpp
|
||||||
|
index 67edd09..4b744f8 100644
|
||||||
|
--- a/libutil++/bfd_support.cpp
|
||||||
|
+++ b/libutil++/bfd_support.cpp
|
||||||
|
@@ -634,9 +634,7 @@ void bfd_info::translate_debuginfo_syms(asymbol ** dbg_syms, long nr_dbg_syms)
|
||||||
|
bool bfd_info::get_synth_symbols()
|
||||||
|
{
|
||||||
|
extern const bfd_target bfd_elf64_powerpc_vec;
|
||||||
|
- extern const bfd_target bfd_elf64_powerpcle_vec;
|
||||||
|
- bool is_elf64_powerpc_target = (abfd->xvec == &bfd_elf64_powerpc_vec)
|
||||||
|
- || (abfd->xvec == &bfd_elf64_powerpcle_vec);
|
||||||
|
+ bool is_elf64_powerpc_target = (abfd->xvec == &bfd_elf64_powerpc_vec);
|
||||||
|
|
||||||
|
if (!is_elf64_powerpc_target)
|
||||||
|
return false;
|
@ -0,0 +1,30 @@
|
|||||||
|
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
Subject: Fix "Unable to open cpu_type file for reading" for IBM POWER7+
|
||||||
|
Git-commit: 88ed74bade0096042d643a6d7e68c2cbc4b6e34d
|
||||||
|
Date: Thu Jan 9 15:07:21 2014 -0600
|
||||||
|
|
||||||
|
Fix "Unable to open cpu_type file for reading" for IBM POWER7+
|
||||||
|
|
||||||
|
Using operf to do profiling on an IBM POWER7+ may result in
|
||||||
|
the following error message:
|
||||||
|
|
||||||
|
Unable to open cpu_type file for reading
|
||||||
|
|
||||||
|
This patch fixes the problem. There is also a simple workaround of
|
||||||
|
running 'opcontrol --init'.
|
||||||
|
|
||||||
|
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
|
||||||
|
diff --git a/libop/op_cpu_type.c b/libop/op_cpu_type.c
|
||||||
|
index cd75ad4..7d5262c 100644
|
||||||
|
--- a/libop/op_cpu_type.c
|
||||||
|
+++ b/libop/op_cpu_type.c
|
||||||
|
@@ -326,6 +326,8 @@ static op_cpu _get_ppc64_cpu_type(void)
|
||||||
|
for (i = 0; i < (int)len ; i++)
|
||||||
|
cpu_name_lowercase[i] = tolower(cpu_name[i]);
|
||||||
|
|
||||||
|
+ if (strncmp(cpu_name_lowercase, "power7+", 7) == 0)
|
||||||
|
+ cpu_name_lowercase[6] = '\0';
|
||||||
|
cpu_type_str[0] = '\0';
|
||||||
|
strcat(cpu_type_str, "ppc64/");
|
||||||
|
strncat(cpu_type_str, cpu_name_lowercase, len);
|
29
oprofile-make-cpu-type-power8e-equivalent-to-power8.patch
Normal file
29
oprofile-make-cpu-type-power8e-equivalent-to-power8.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
Subject: Make cpu type POWER8E equivalent to POWER8
|
||||||
|
Git-commit: 7243fa4ed8a25c6e59225a863fd263ce70989087
|
||||||
|
Date: Tue Feb 4 08:27:10 2014 -0600
|
||||||
|
|
||||||
|
Make cpu type POWER8E equivalent to POWER8
|
||||||
|
|
||||||
|
Recent mainline kernel changes resulted in a cpu type of
|
||||||
|
"POWER8E" being displayed in /proc/cpuinfo for certain revisions
|
||||||
|
of the IBM POWER8 processor model. But for profiling and
|
||||||
|
counting of native events, we can ignore the differences between
|
||||||
|
POWER8 and POWER8E. This patch addresses that issue.
|
||||||
|
|
||||||
|
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
|
||||||
|
diff --git a/libop/op_cpu_type.c b/libop/op_cpu_type.c
|
||||||
|
index 2907f36..1ae2913 100644
|
||||||
|
--- a/libop/op_cpu_type.c
|
||||||
|
+++ b/libop/op_cpu_type.c
|
||||||
|
@@ -331,6 +331,9 @@ static op_cpu _get_ppc64_cpu_type(void)
|
||||||
|
|
||||||
|
if (strncmp(cpu_name_lowercase, "power7+", 7) == 0)
|
||||||
|
cpu_name_lowercase[6] = '\0';
|
||||||
|
+ if (strncmp(cpu_name_lowercase, "power8e", 7) == 0)
|
||||||
|
+ cpu_name_lowercase[6] = '\0';
|
||||||
|
+
|
||||||
|
cpu_type_str[0] = '\0';
|
||||||
|
strcat(cpu_type_str, "ppc64/");
|
||||||
|
strncat(cpu_type_str, cpu_name_lowercase, len);
|
@ -12,8 +12,8 @@ Upstream: no
|
|||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
if test "$HAVE_PERF_EVENTS" = "1"; then
|
if test "$HAVE_PERF_EVENTS" = "1"; then
|
||||||
PFM_LIB=
|
PFM_LIB=
|
||||||
- if test "$host_cpu" = "powerpc64"; then
|
- if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; then
|
||||||
+ if test "$host_cpu" = "powerpc64" || test "$host_cpu" = "powerpc32"; then
|
+ if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64" -o "$host_cpu" = "powerpc32"; then
|
||||||
AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; usually provided in papi devel package])])
|
AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; may be provided by libpfm devel or papi devel package])])
|
||||||
AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
|
AC_CHECK_LIB(pfm,pfm_get_os_event_encoding, HAVE_LIBPFM3='0'; HAVE_LIBPFM='1', [
|
||||||
AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
|
AC_CHECK_LIB(pfm, pfm_get_event_name, HAVE_LIBPFM3='1'; HAVE_LIBPFM='1',
|
||||||
|
@ -1,4 +1,15 @@
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 6 19:40:06 UTC 2014 - tonyj@suse.com
|
||||||
|
|
||||||
|
- Support ppc64le/power8e (bnc#867091)
|
||||||
|
added patches:
|
||||||
|
* oprofile-configure-error-message-for-missing-libpfm-is-not-informative-enough.patch
|
||||||
|
* oprofile-enable-for-new-ppc64le-architecture.patch
|
||||||
|
* oprofile-fix-unable-to-open-cpu_type-file-for-reading-for-ibm-power7.patch
|
||||||
|
* oprofile-make-cpu-type-power8e-equivalent-to-power8.patch
|
||||||
|
modified patches:
|
||||||
|
* oprofile-pfm-ppc.patch
|
||||||
|
-------------------------------------------------------------------
|
||||||
Wed Aug 7 17:18:32 UTC 2013 - tonyj@suse.com
|
Wed Aug 7 17:18:32 UTC 2013 - tonyj@suse.com
|
||||||
|
|
||||||
- Update to version 0.9.9
|
- Update to version 0.9.9
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package oprofile
|
# spec file for package oprofile
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -25,7 +25,7 @@ BuildRequires: libxslt
|
|||||||
BuildRequires: popt-devel
|
BuildRequires: popt-devel
|
||||||
BuildRequires: qt-devel
|
BuildRequires: qt-devel
|
||||||
BuildRequires: update-desktop-files
|
BuildRequires: update-desktop-files
|
||||||
%ifarch ppc ppc64
|
%ifarch ppc ppc64 ppc64le
|
||||||
BuildRequires: libpfm-devel >= 4.3.0
|
BuildRequires: libpfm-devel >= 4.3.0
|
||||||
%endif
|
%endif
|
||||||
Url: http://oprofile.sourceforge.net/
|
Url: http://oprofile.sourceforge.net/
|
||||||
@ -44,7 +44,11 @@ Source4: jvmpi.h
|
|||||||
Source5: README-BEFORE-ADDING-PATCHES
|
Source5: README-BEFORE-ADDING-PATCHES
|
||||||
Patch1: %{name}-compressed-kernel.patch
|
Patch1: %{name}-compressed-kernel.patch
|
||||||
Patch2: %{name}-no-libjvm-version.patch
|
Patch2: %{name}-no-libjvm-version.patch
|
||||||
Patch3: %{name}-pfm-ppc.patch
|
Patch3: %{name}-configure-error-message-for-missing-libpfm-is-not-informative-enough.patch
|
||||||
|
Patch4: %{name}-enable-for-new-ppc64le-architecture.patch
|
||||||
|
Patch5: %{name}-fix-unable-to-open-cpu_type-file-for-reading-for-ibm-power7.patch
|
||||||
|
Patch6: %{name}-make-cpu-type-power8e-equivalent-to-power8.patch
|
||||||
|
Patch7: %{name}-pfm-ppc.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
OProfile is a system-wide profiler for Linux systems, capable of
|
OProfile is a system-wide profiler for Linux systems, capable of
|
||||||
@ -98,6 +102,11 @@ from supported virtual machines.
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
|
||||||
mkdir -p java/include
|
mkdir -p java/include
|
||||||
# copy files necessary to build Java agent libraries
|
# copy files necessary to build Java agent libraries
|
||||||
# libjvmpi_oprofile.so and libjvmti_oprofile.so
|
# libjvmpi_oprofile.so and libjvmti_oprofile.so
|
||||||
|
Loading…
Reference in New Issue
Block a user