Skip to contentSkip to conversation

oprofile: bump to version 0.9.9

PATCH Superseded Alexey Brodkin 3 participants 4 messages May 20, 2014

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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 supported
http://sourceforge.net/p/oprofile/oprofile/ci/fcb818623bf1a638ef4f93dca9e90f8651899bf3/

oprofile-003-oprofile-ppc32-build-fix.patch
http://sourceforge.net/p/oprofile/oprofile/ci/fa889ea74b6b931e241a8cd57e90edc23cd7ab03/

oprofile-004-fix-ppc64-specific-libpfm-usage.patch
http://sourceforge.net/p/oprofile/oprofile/ci/79a183ed0d9611955714bfa1d6edb361d6bf5c2c/

oprofile-005-fix-up-configure-to-handle-architectures-that-do-not.patch
http://sourceforge.net/p/oprofile/oprofile/ci/ca6d916a6f8f0f8abbb4c9b6a97dd1a1615bb124/

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.patch
http://sourceforge.net/p/oprofile/oprofile/ci/08241f1b2c5a4d48020c82b509dc1076f51bf0bd/

Cc Gustavo Zacarias <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Thomas De Schampheleire <[email protected]>
Cc Simon Dawson <[email protected]>
Cc Baruch Siach <[email protected]>
---
 ...-error-on-ppc-uClibc-platform-AT_BASE_PLA.patch |  78 +++++++++++
 .../oprofile/oprofile-002-no-query-modules.patch   |  21 ---
 .../oprofile-003-oprofile-ppc32-build-fix.patch    |  32 -----
 ...ofile-004-fix-ppc64-specific-libpfm-usage.patch | 105 --------------
 ...igure-to-handle-architectures-that-do-not.patch | 154 ---------------------
 package/oprofile/oprofile.mk                       |   3 +-
 6 files changed, 80 insertions(+), 313 deletions(-)
 create mode 100644 package/oprofile/oprofile-002-Fix-compile-error-on-ppc-uClibc-platform-AT_BASE_PLA.patch
 delete mode 100644 package/oprofile/oprofile-002-no-query-modules.patch
 delete mode 100644 package/oprofile/oprofile-003-oprofile-ppc32-build-fix.patch
 delete mode 100644 package/oprofile/oprofile-004-fix-ppc64-specific-libpfm-usage.patch
 delete mode 100644 package/oprofile/oprofile-005-fix-up-configure-to-handle-architectures-that-do-not.patch
package/oprofile/oprofile-002-Fix-compile-error-on-ppc-uClibc-platform-AT_BASE_PLA.patch new file +78 -0
new file mode 100644
index 0000000..1915541
@@ -0,0 +1,78 @@
+Upstream-Status: Backport
+
+From 08241f1b2c5a4d48020c82b509dc1076f51bf0bd Mon Sep 17 00:00:00 2001
+From: Maynard Johnson <[email protected]>
+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 <[email protected]>
+---
+ 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
+
package/oprofile/oprofile-002-no-query-modules.patch deleted +0 -21
deleted file mode 100644
index 9f00da6..0000000
@@ -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
- }
- 
- 
package/oprofile/oprofile-003-oprofile-ppc32-build-fix.patch deleted +0 -32
deleted file mode 100644
index 0f609df..0000000
@@ -1,32 +0,0 @@
-Upstream-Status: Backport
-
-From fa889ea74b6b931e241a8cd57e90edc23cd7ab03 Mon Sep 17 00:00:00 2001
-From: William Cohen <[email protected]>
-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 <[email protected]>
----
- 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
-
package/oprofile/oprofile-004-fix-ppc64-specific-libpfm-usage.patch deleted +0 -105

105 lines not on this page · raw message

package/oprofile/oprofile-005-fix-up-configure-to-handle-architectures-that-do-not.patch deleted +0 -154

154 lines not on this page · raw message

package/oprofile/oprofile.mk +2 -1
index 07a8ec9..b69e974 100644
@@ -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
+OPRIFILE_BINARIES += pe_counting/ocount
 
 # No perf_events support in kernel for avr32
 ifneq ($(BR2_avr32),y)
Signature · 1 line
1.9.0
#1 lore raw

PATCH 1/1 oprofile: bump to version 0.9.9

Quoted 14 lines · Alexey Brodkin
package/oprofile/oprofile.mk +1 -1
index 07a8ec9..b69e974 100644
@@ -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

package/oprofile/oprofile.mk OPROFILE_AUTORECONF = YES · line 20

Quoted 4 lines
package/oprofile/oprofile.mk +1 -0
@@ -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
+OPRIFILE_BINARIES += pe_counting/ocount

This should be OPROFILE (typo)

Best regards,
Thomas

#2 lore raw

PATCH 1/1 oprofile: bump to version 0.9.9

Hi Thomas,

Quoted 11 lines · Thomas De Schampheleire
Quoted 8 lines · Alexey Brodkin
package/oprofile/oprofile.mk +0 -0
index 07a8ec9..b69e974 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
Quoted 12 lines

package/oprofile/oprofile.mk OPROFILE_AUTORECONF = YES · line 20

Quoted 10 lines
package/oprofile/oprofile.mk +2 -1
-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
+OPRIFILE_BINARIES += pe_counting/ocount

This should be OPROFILE (typo)

Mea culpa, I haven't tried to use this utility on target so this misspelling was not caught.

Sent v2.

-Alexey

#3 lore raw

PATCH 1/1 oprofile: bump to version 0.9.9

In reply to Alexey Brodkin

Dear Alexey Brodkin,

Quoted 18 lines · Alexey Brodkin

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 supported
http://sourceforge.net/p/oprofile/oprofile/ci/fcb818623bf1a638ef4f93dca9e90f8651899bf3/

oprofile-003-oprofile-ppc32-build-fix.patch
http://sourceforge.net/p/oprofile/oprofile/ci/fa889ea74b6b931e241a8cd57e90edc23cd7ab03/

oprofile-004-fix-ppc64-specific-libpfm-usage.patch
http://sourceforge.net/p/oprofile/oprofile/ci/79a183ed0d9611955714bfa1d6edb361d6bf5c2c/

Quoted 7 lines

oprofile-005-fix-up-configure-to-handle-architectures-that-do-not.patch
http://sourceforge.net/p/oprofile/oprofile/ci/ca6d916a6f8f0f8abbb4c9b6a97dd1a1615bb124/

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.patch
http://sourceforge.net/p/oprofile/oprofile/ci/08241f1b2c5a4d48020c82b509dc1076f51bf0bd/

I just wanted to say I really appreciate the fact that you made the effort of justifying to each patch why it gets removed/added as part of the version bump. This is very useful, and give a lot more confidence about the version bump patch.

Thanks a lot for doing this!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com