aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta-linaro/recipes-extra/idlestat/files/0001-Replace-deprecated-readdir_r-with-readdir.patch55
-rw-r--r--meta-linaro/recipes-extra/idlestat/files/0002-topology-remove-check-for-same-cpuid-cannot-exist-in.patch31
-rw-r--r--meta-linaro/recipes-extra/idlestat/files/0003-fix-memory-leak-in-cpuidle_get_target_residency-free.patch28
-rw-r--r--meta-linaro/recipes-extra/idlestat/files/0004-Fix-TRACE_IPIIRQ_FORMAT-string-format-width-overflow.patch35
-rw-r--r--meta-linaro/recipes-extra/idlestat/files/0005-Use-zu-format-specifier-for-size_t-types.patch40
-rw-r--r--meta-linaro/recipes-extra/idlestat/files/Makefile.patch17
-rw-r--r--meta-linaro/recipes-extra/idlestat/idlestat_git.bb19
7 files changed, 221 insertions, 4 deletions
diff --git a/meta-linaro/recipes-extra/idlestat/files/0001-Replace-deprecated-readdir_r-with-readdir.patch b/meta-linaro/recipes-extra/idlestat/files/0001-Replace-deprecated-readdir_r-with-readdir.patch
new file mode 100644
index 00000000..ad40e714
--- /dev/null
+++ b/meta-linaro/recipes-extra/idlestat/files/0001-Replace-deprecated-readdir_r-with-readdir.patch
@@ -0,0 +1,55 @@
+From f9c43f7bc8edff2e9accc993adb87cd0b5719980 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Wed, 31 Aug 2016 09:38:12 +0100
+Subject: [PATCH 1/5] Replace deprecated readdir_r with readdir
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+readdir_r is deprecated and should be replaced with readdir. readdir_r
+is considered unsafe on systems where NAME_MAX is undefined and on
+some systems it cannot read directory entries with very long names.
+
+Fixes build warning:
+topology.c:357:2: warning: ‘readdir_r’ is deprecated
+ [-Wdeprecated-declarations]
+ while (!readdir_r(dir, &dirent, &direntp)) {
+ ^~~~~
+In file included from topology.c:35:0:
+/usr/include/dirent.h:183:12: note: declared here
+ extern int readdir_r (DIR *__restrict __dirp,
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ topology.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/topology.c b/topology.c
+index 39b07bd..e293a59 100644
+--- a/topology.c
++++ b/topology.c
+@@ -331,7 +331,7 @@ static struct cpu_topology *topo_folder_scan(char *path, folder_filter_t filter)
+ {
+ DIR *dir, *dir_topology;
+ char *basedir, *newpath;
+- struct dirent dirent, *direntp;
++ struct dirent *direntp;
+ struct stat s;
+ int ret;
+ int is_online;
+@@ -354,11 +354,7 @@ static struct cpu_topology *topo_folder_scan(char *path, folder_filter_t filter)
+ return result;
+ }
+
+- while (!readdir_r(dir, &dirent, &direntp)) {
+-
+- if (!direntp)
+- break;
+-
++ while ((direntp = readdir(dir)) != NULL) {
+ if (direntp->d_name[0] == '.')
+ continue;
+
+--
+2.9.3
+
diff --git a/meta-linaro/recipes-extra/idlestat/files/0002-topology-remove-check-for-same-cpuid-cannot-exist-in.patch b/meta-linaro/recipes-extra/idlestat/files/0002-topology-remove-check-for-same-cpuid-cannot-exist-in.patch
new file mode 100644
index 00000000..4550b4ad
--- /dev/null
+++ b/meta-linaro/recipes-extra/idlestat/files/0002-topology-remove-check-for-same-cpuid-cannot-exist-in.patch
@@ -0,0 +1,31 @@
+From 91039258fc378c747762806f06b4638430a60188 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Wed, 31 Aug 2016 09:25:40 +0100
+Subject: [PATCH 2/5] topology: remove check for same cpuid cannot exist in 2
+ different cores
+
+This breaks on recent kernels because the cpu enumation from /sys may not
+be in numerical order. Remove it for now.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ topology.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/topology.c b/topology.c
+index e293a59..1e1e774 100644
+--- a/topology.c
++++ b/topology.c
+@@ -149,9 +149,6 @@ int add_topo_info(struct cpu_topology *topo_list, struct topology_info *info)
+ if (s_core->cpu_num > 1)
+ s_core->is_ht = true;
+
+- /* Assumption: Same cpuid cannot exist in 2 different cores */
+- assert(!check_exist_from_head(&s_phy->cpu_enum_head, info->cpu_id));
+-
+ /* Add to the list (really a set) of all contained cpus in s_phy */
+ list_add_tail(&s_cpu->list_phy_enum, &s_phy->cpu_enum_head);
+
+--
+2.9.3
+
diff --git a/meta-linaro/recipes-extra/idlestat/files/0003-fix-memory-leak-in-cpuidle_get_target_residency-free.patch b/meta-linaro/recipes-extra/idlestat/files/0003-fix-memory-leak-in-cpuidle_get_target_residency-free.patch
new file mode 100644
index 00000000..c9bb70dc
--- /dev/null
+++ b/meta-linaro/recipes-extra/idlestat/files/0003-fix-memory-leak-in-cpuidle_get_target_residency-free.patch
@@ -0,0 +1,28 @@
+From 312b9908f8ab6ce208cadc7c47d5b2e9e47e1807 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Wed, 31 Aug 2016 09:54:01 +0100
+Subject: [PATCH 3/5] fix memory leak in cpuidle_get_target_residency, free
+ fpathA
+
+fpath is not being free'd causing a small memory leak, free it.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ idlestat.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/idlestat.c b/idlestat.c
+index ede98a0..f6a07e5 100644
+--- a/idlestat.c
++++ b/idlestat.c
+@@ -293,6 +293,7 @@ int cpuidle_get_target_residency(int cpu, int state)
+ free(fpath);
+ return -1;
+ }
++ free(fpath);
+ ret = fscanf(snf, "%u", &tr);
+ fclose(snf);
+
+--
+2.9.3
+
diff --git a/meta-linaro/recipes-extra/idlestat/files/0004-Fix-TRACE_IPIIRQ_FORMAT-string-format-width-overflow.patch b/meta-linaro/recipes-extra/idlestat/files/0004-Fix-TRACE_IPIIRQ_FORMAT-string-format-width-overflow.patch
new file mode 100644
index 00000000..c5b09fed
--- /dev/null
+++ b/meta-linaro/recipes-extra/idlestat/files/0004-Fix-TRACE_IPIIRQ_FORMAT-string-format-width-overflow.patch
@@ -0,0 +1,35 @@
+From 1b466c0757da1ba8eb62ebd1ade558d144f96956 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Wed, 31 Aug 2016 09:30:23 +0100
+Subject: [PATCH 4/5] Fix TRACE_IPIIRQ_FORMAT string format width overflow scan
+ issue
+
+cppcheck detected a potential buffer overflow with a %s scanf width format
+specifier being larger than the destination buffer. Reduce the scan size to
+match the expected buffer size.
+
+Fixes error:
+[idlestat.c:974]: (error) Width 32 given in format string (no. 2) is larger
+ than destination buffer 'irqname[17]', use %16s to prevent overflowing it.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ idlestat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/idlestat.c b/idlestat.c
+index f6a07e5..c956032 100644
+--- a/idlestat.c
++++ b/idlestat.c
+@@ -950,7 +950,7 @@ void output_cstate_info(FILE *f, struct cpu_topology * topo, int nrcpus)
+ }
+
+ #define TRACE_IRQ_FORMAT "%*[^[][%d] %*[^=]=%d%*[^=]=%16s"
+-#define TRACE_IPIIRQ_FORMAT "%*[^[][%d] %*[^(](%32s"
++#define TRACE_IPIIRQ_FORMAT "%*[^[][%d] %*[^(](%16s"
+ #define TRACECMD_REPORT_FORMAT "%*[^]]] %lf:%*[^=]=%u%*[^=]=%d"
+ #define TRACE_FORMAT "%*[^]]] %*s %lf:%*[^=]=%u%*[^=]=%d"
+
+--
+2.9.3
+
diff --git a/meta-linaro/recipes-extra/idlestat/files/0005-Use-zu-format-specifier-for-size_t-types.patch b/meta-linaro/recipes-extra/idlestat/files/0005-Use-zu-format-specifier-for-size_t-types.patch
new file mode 100644
index 00000000..f57d58ee
--- /dev/null
+++ b/meta-linaro/recipes-extra/idlestat/files/0005-Use-zu-format-specifier-for-size_t-types.patch
@@ -0,0 +1,40 @@
+From 8fa49bb41b6192d6c7de177569760968c4bc0680 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Wed, 31 Aug 2016 10:17:32 +0100
+Subject: [PATCH 5/5] Use %zu format specifier for size_t types
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ tracefile_idlestat.c | 2 +-
+ tracefile_tracecmd.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tracefile_idlestat.c b/tracefile_idlestat.c
+index 3430693..01b1b26 100644
+--- a/tracefile_idlestat.c
++++ b/tracefile_idlestat.c
+@@ -166,7 +166,7 @@ void load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas *datas)
+ }
+ } while (fgets(buffer, BUFSIZE, f));
+
+- fprintf(stderr, "Log is %lf secs long with %zd events\n",
++ fprintf(stderr, "Log is %lf secs long with %zu events\n",
+ end - begin, count);
+ }
+
+diff --git a/tracefile_tracecmd.c b/tracefile_tracecmd.c
+index 586d3c5..eda7b6b 100644
+--- a/tracefile_tracecmd.c
++++ b/tracefile_tracecmd.c
+@@ -50,7 +50,7 @@ void tracecmd_load_text_data_lines(FILE *f, char *buffer, struct cpuidle_datas *
+ }
+ } while (fgets(buffer, BUFSIZE, f));
+
+- fprintf(stderr, "Log is %lf secs long with %zd events\n",
++ fprintf(stderr, "Log is %lf secs long with %zu events\n",
+ end - begin, count);
+ }
+
+--
+2.9.3
+
diff --git a/meta-linaro/recipes-extra/idlestat/files/Makefile.patch b/meta-linaro/recipes-extra/idlestat/files/Makefile.patch
new file mode 100644
index 00000000..ef34babe
--- /dev/null
+++ b/meta-linaro/recipes-extra/idlestat/files/Makefile.patch
@@ -0,0 +1,17 @@
+Index: idlestat-0.5/Makefile
+===================================================================
+--- idlestat-0.5.orig/Makefile
++++ idlestat-0.5/Makefile
+@@ -38,10 +38,10 @@ OBJS = idlestat.o topology.o trace.o uti
+ default: idlestat
+
+ %.o: %.c
+- $(CROSS_COMPILE)$(CC) -c -o $@ $< $(CFLAGS)
++ $(CROSS_COMPILE)$(CC) -c $(CPPFLAGS) -o $@ $< $(CFLAGS)
+
+ idlestat: $(OBJS)
+- $(CROSS_COMPILE)$(CC) $(CFLAGS) $(OBJS) -o $@
++ $(CROSS_COMPILE)$(CC) $(CFLAGS) $(OBJS) -o $@ $(LDFLAGS)
+
+ install: idlestat idlestat.1
+ install -D -t /usr/local/bin idlestat
diff --git a/meta-linaro/recipes-extra/idlestat/idlestat_git.bb b/meta-linaro/recipes-extra/idlestat/idlestat_git.bb
index 7018cc11..3de7c976 100644
--- a/meta-linaro/recipes-extra/idlestat/idlestat_git.bb
+++ b/meta-linaro/recipes-extra/idlestat/idlestat_git.bb
@@ -3,14 +3,25 @@ SUMMARY = "Idlestat is a tool which can show how long a CPU or cluster \
enters idle state. This infomation is obtained using traces from trace-cmd \
or ftrace tools."
LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://Makefile;md5=1e2d28a88b081f97157089bb67d4249d"
-SRCREV = "6de5e87ccf87beb0946c627c10554efb1480326f"
-PV = "0.2+git${SRCPV}"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+SRCREV = "7398755f136d551c03ebc1e784625e9e3f77c1de"
+PV = "0.6+git${SRCPV}"
-SRC_URI = "git://git.linaro.org/power/idlestat.git"
+SRC_URI = "git://git.linaro.org/power/idlestat.git \
+ file://Makefile.patch \
+ file://0001-Replace-deprecated-readdir_r-with-readdir.patch \
+ file://0002-topology-remove-check-for-same-cpuid-cannot-exist-in.patch \
+ file://0003-fix-memory-leak-in-cpuidle_get_target_residency-free.patch \
+ file://0004-Fix-TRACE_IPIIRQ_FORMAT-string-format-width-overflow.patch \
+ file://0005-Use-zu-format-specifier-for-size_t-types.patch \
+"
S = "${WORKDIR}/git"
+do_compile() {
+ oe_runmake CC='${CC}'
+}
+
do_install () {
install -D -p -m0755 idlestat ${D}/${sbindir}/idlestat
}