oprofile: update to 1.1.0-rc2 and make it work with musl

This brings oprifle to version 1.1.0-rc2 and adds some fixes for musl.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 46505
lede-17.01
Hauke Mehrtens 2015-07-26 15:53:44 +00:00
parent ac96a1665a
commit 53647060ab
4 changed files with 41 additions and 43 deletions

View File

@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=oprofile PKG_NAME:=oprofile
PKG_VERSION:=0.9.9 PKG_VERSION:=1.1.0rc2
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/oprofile/ PKG_SOURCE_URL:=@SF/oprofile/
PKG_MD5SUM:=00aec1287da2dfffda17a9b1c0a01868 PKG_MD5SUM:=ebc27a8478068cb986efd295cc4ac877
PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org> PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org>

View File

@ -0,0 +1,39 @@
--- a/pe_profiling/operf.cpp
+++ b/pe_profiling/operf.cpp
@@ -857,11 +857,14 @@ static int __delete_old_previous_sample_
int tflag __attribute__((unused)),
struct FTW *ftwbuf __attribute__((unused)))
{
+ int err;
+
if (remove(fpath)) {
+ err = errno;
perror("sample data removal error");
- return FTW_STOP;
+ return err;
} else {
- return FTW_CONTINUE;
+ return 0;
}
}
@@ -896,7 +899,7 @@ static void convert_sample_data(void)
return;
if (!operf_options::append) {
- int flags = FTW_DEPTH | FTW_ACTIONRETVAL;
+ int flags = FTW_DEPTH;
errno = 0;
if (nftw(previous_sampledir.c_str(), __delete_old_previous_sample_data, 32, flags) !=0 &&
errno != ENOENT) {
--- a/libop/op_events.c
+++ b/libop/op_events.c
@@ -83,7 +83,7 @@ static int parse_hex(char const * str)
static u64 parse_long_hex(char const * str)
{
u64 value;
- if (sscanf(str, "%Lx", &value) != 1)
+ if (sscanf(str, "0x%llx", &value) != 1)
parse_error("expected long hexadecimal value");
fflush(stderr);

View File

@ -1,11 +0,0 @@
--- a/utils/opcontrol
+++ b/utils/opcontrol
@@ -249,7 +249,7 @@ load_module_26()
{
grep oprofilefs /proc/filesystems >/dev/null
if test "$?" -ne 0; then
- modprobe oprofile
+ insmod oprofile
if test "$?" != "0"; then
# couldn't load the module
return

View File

@ -1,30 +0,0 @@
--- a/libop/op_cpu_type.c
+++ b/libop/op_cpu_type.c
@@ -250,6 +250,7 @@ static void release_at_hw_platform(void)
}
}
+#ifdef PPC64
static op_cpu _try_ppc64_arch_generic_cpu(void)
{
const char * platform, * base_platform;
@@ -312,6 +313,7 @@ static op_cpu _get_ppc64_cpu_type(void)
cpu_type = op_get_cpu_number(cpu_type_str);
return cpu_type;
}
+#endif
static op_cpu _get_arm_cpu_type(void)
{
@@ -592,9 +594,11 @@ static op_cpu __get_cpu_type_alt_method(
fnmatch("i?86", uname_info.machine, 0) == 0) {
return _get_x86_64_cpu_type();
}
+#ifdef PPC64
if (strncmp(uname_info.machine, "ppc64", 5) == 0) {
return _get_ppc64_cpu_type();
}
+#endif
if (strncmp(uname_info.machine, "arm", 3) == 0) {
return _get_arm_cpu_type();
}