Hello community, here is the log from the commit of package oprofile for openSUSE:Factory checked in at 2014-03-09 18:29:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/oprofile (Old) and /work/SRC/openSUSE:Factory/.oprofile.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oprofile" Changes: -------- --- /work/SRC/openSUSE:Factory/oprofile/oprofile.changes 2013-08-10 11:40:33.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.oprofile.new/oprofile.changes 2014-03-09 18:29:46.000000000 +0100 @@ -1,0 +2,11 @@ +Thu Mar 6 19:40:06 UTC 2014 - [email protected] + +- 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 +------------------------------------------------------------------- New: ---- 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 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ oprofile.spec ++++++ --- /var/tmp/diff_new_pack.qq8Gvl/_old 2014-03-09 18:29:47.000000000 +0100 +++ /var/tmp/diff_new_pack.qq8Gvl/_new 2014-03-09 18:29:47.000000000 +0100 @@ -1,7 +1,7 @@ # # 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 # remain the property of their copyright owners, unless otherwise agreed @@ -25,7 +25,7 @@ BuildRequires: popt-devel BuildRequires: qt-devel BuildRequires: update-desktop-files -%ifarch ppc ppc64 +%ifarch ppc ppc64 ppc64le BuildRequires: libpfm-devel >= 4.3.0 %endif Url: http://oprofile.sourceforge.net/ @@ -44,7 +44,11 @@ Source5: README-BEFORE-ADDING-PATCHES Patch1: %{name}-compressed-kernel.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 OProfile is a system-wide profiler for Linux systems, capable of @@ -98,6 +102,11 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 + mkdir -p java/include # copy files necessary to build Java agent libraries # libjvmpi_oprofile.so and libjvmti_oprofile.so ++++++ oprofile-configure-error-message-for-missing-libpfm-is-not-informative-enough.patch ++++++ From: Maynard Johnson <[email protected]> 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 <[email protected]> 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]) ++++++ oprofile-enable-for-new-ppc64le-architecture.patch ++++++ From: Maynard Johnson <[email protected]> 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 <[email protected]> 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; ++++++ oprofile-fix-unable-to-open-cpu_type-file-for-reading-for-ibm-power7.patch ++++++ From: Maynard Johnson <[email protected]> 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 <[email protected]> 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); ++++++ oprofile-make-cpu-type-power8e-equivalent-to-power8.patch ++++++ From: Maynard Johnson <[email protected]> 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 <[email protected]> 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); ++++++ oprofile-pfm-ppc.patch ++++++ --- /var/tmp/diff_new_pack.qq8Gvl/_old 2014-03-09 18:29:47.000000000 +0100 +++ /var/tmp/diff_new_pack.qq8Gvl/_new 2014-03-09 18:29:47.000000000 +0100 @@ -12,8 +12,8 @@ AC_CANONICAL_HOST if test "$HAVE_PERF_EVENTS" = "1"; then PFM_LIB= -- if test "$host_cpu" = "powerpc64"; then -+ if test "$host_cpu" = "powerpc64" || test "$host_cpu" = "powerpc32"; then - AC_CHECK_HEADER(perfmon/pfmlib.h,,[AC_MSG_ERROR([pfmlib.h not found; usually provided in papi devel package])]) +- if test "$host_cpu" = "powerpc64le" -o "$host_cpu" = "powerpc64"; 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; 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', -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
