On 10/29/2013 5:40 AM, Bruce Ashfield wrote:
On 13-10-29 05:28 AM, Hans Beckérus wrote:On Tue, Oct 29, 2013 at 1:38 AM, Khem Raj <raj.k...@gmail.com> wrote:On Fri, Oct 25, 2013 at 12:17 PM, Yang Shi <yang....@windriver.com> wrote:I think there was a thread/patch on the exact same package and issue in OE-core.On MIPS64, "__u64" is "unsigned long" type, so the "%llu" specifier will causebuild error on MIPS64.Convert __u64 to unsigned long long in those sprintf calls to avoid the builderror. Signed-off-by: Yang Shi <yang....@windriver.com> --- tools/perf/tests/attr.c | 20 ++++++++++---------- tools/perf/tests/bp_signal.c | 2 +- tools/perf/tests/bp_signal_overflow.c | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c index 00218f5..f045c2c 100644 --- a/tools/perf/tests/attr.c +++ b/tools/perf/tests/attr.c@@ -71,7 +71,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,char path[PATH_MAX]; snprintf(path, PATH_MAX, "%s/event-%d-%llu-%d", dir, - attr->type, attr->config, fd); + attr->type, (unsigned long long)attr->config, fd);hmm may be you can convert %llu into PRIu64 e.g. printf( "%" PRIu64 "\n", val);The solution I think was to define __SANE_USERSPACE_TYPES__ to get proper definition of __u64. http://patchwork.openembedded.org/patch/59641/ Or maybe this is something completely different?The are the same, just a kernel guy versus a userspace guy looking at the same issue from different points of view. :)
Yes, actually kernel already had a commit to define that macro: commit e3541ec75219819d3235f80125a1a75d798ff6e1 Author: Sukadev Bhattiprolu <suka...@linux.vnet.ibm.com> Date: Wed Jan 23 21:44:39 2013 -0800 perf tools, powerpc: Fix compile warnings in tests/attr.c We print several '__u64' quantities using '%llu'. On powerpc, we bydefault include '<asm-generic/int-l64.h> which results in __u64 being an
unsigned long. This causes compile warnings which are treated as errors due to '-Werror'.By defining __SANE_USERSPACE_TYPES__ we include <asm-generic/int-ll64.h>
and define __u64 as unsigned long long. Changelog[v2]: [Michael Ellerman] Use __SANE_USERSPACE_TYPES__ and avoid PRIu64format specifier - which as Jiri Olsa pointed out, breaks on x86-64.
Signed-off-by: Sukadev Bhattiprolu <suka...@linux.vnet.ibm.com> Cc: Anton Blanchard <an...@au1.ibm.com> Cc: Jiri Olsa <jo...@redhat.com> Cc: Michael Ellerman <eller...@au1.ibm.com> Cc: linuxppc-...@ozlabs.org Link: http://lkml.kernel.org/r/20130124054439.ga31...@us.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com> But, MIPS64 still failed to build with this commit. Yang
BruceThanks. Hansfile = fopen(path, "w+"); if (!file) {@@ -80,7 +80,7 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,} if (fprintf(file, "[event-%d-%llu-%d]\n", - attr->type, attr->config, fd) < 0) {+ attr->type, (unsigned long long)attr->config, fd) < 0) {perror("test attr - failed to write event file"); fclose(file); return -1;@@ -96,10 +96,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,/* struct perf_event_attr */ WRITE_ASS(type, PRIu32); WRITE_ASS(size, PRIu32); - WRITE_ASS(config, "llu"); - WRITE_ASS(sample_period, "llu"); - WRITE_ASS(sample_type, "llu"); - WRITE_ASS(read_format, "llu");+ __WRITE_ASS(config, "llu", (unsigned long long)attr->config); + __WRITE_ASS(sample_period, "llu", (unsigned long long)attr->sample_period); + __WRITE_ASS(sample_type, "llu", (unsigned long long)attr->sample_type); + __WRITE_ASS(read_format, "llu", (unsigned long long)attr->read_format);WRITE_ASS(disabled, "d"); WRITE_ASS(inherit, "d"); WRITE_ASS(pinned, "d");@@ -124,10 +124,10 @@ static int store_event(struct perf_event_attr *attr, pid_t pid, int cpu,WRITE_ASS(exclude_callchain_user, "d"); WRITE_ASS(wakeup_events, PRIu32); WRITE_ASS(bp_type, PRIu32); - WRITE_ASS(config1, "llu"); - WRITE_ASS(config2, "llu"); - WRITE_ASS(branch_sample_type, "llu"); - WRITE_ASS(sample_regs_user, "llu");+ __WRITE_ASS(config1, "llu", (unsigned long long)attr->config1); + __WRITE_ASS(config2, "llu", (unsigned long long)attr->config2); + __WRITE_ASS(branch_sample_type, "llu", (unsigned long long)attr->branch_sample_type); + __WRITE_ASS(sample_regs_user, "llu", (unsigned long long)attr->sample_regs_user);WRITE_ASS(sample_stack_user, PRIu32); fclose(file);diff --git a/tools/perf/tests/bp_signal.c b/tools/perf/tests/bp_signal.cindex 68daa28..bf3a094 100644 --- a/tools/perf/tests/bp_signal.c +++ b/tools/perf/tests/bp_signal.c @@ -74,7 +74,7 @@ static int bp_event(void *fn, int setup_signal) fd = sys_perf_event_open(&pe, 0, -1, -1, 0); if (fd < 0) { - pr_debug("failed opening event %llx\n", pe.config);+ pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);return TEST_FAIL; }diff --git a/tools/perf/tests/bp_signal_overflow.c b/tools/perf/tests/bp_signal_overflow.cindex fe7ed28..3662b15 100644 --- a/tools/perf/tests/bp_signal_overflow.c +++ b/tools/perf/tests/bp_signal_overflow.c @@ -87,7 +87,7 @@ int test__bp_signal_overflow(void) fd = sys_perf_event_open(&pe, 0, -1, -1, 0); if (fd < 0) { - pr_debug("failed opening event %llx\n", pe.config);+ pr_debug("failed opening event %llx\n", (unsigned long long)pe.config);return TEST_FAIL; } -- 1.7.5.4 _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
_______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto