[OE-core] [oe-core][PATCH 1/2] perf: flag __SANE_USERSPACE_TYPES__ to include int-ll64.h for powerpc64

b28495 at freescale.com b28495 at freescale.com
Fri Oct 11 08:11:44 UTC 2013


From: Ting Liu <b28495 at freescale.com>

PPC64 uses long long for u64 in the kernel, but powerpc's asm/types.h
prevents 64-bit userland from seeing this definition, instead defaulting
to u64 == long in userspace.
Perf want LL64, flag __SANE_USERSPACE_TYPES__ to get int-ll64.h.

Fix the below issue:
| tests/attr.c:71:4: error: format '%llu' expects argument of type 'long
long unsigned int', but argument 6 has type '__u64' [-Werror=format=]
| tests/attr.c:80:7: error: format '%llu' expects argument of type 'long
long unsigned int', but argument 4 has type '__u64' [-Werror=format=]
|        attr->type, attr->config, fd) < 0) {
|        ^

Signed-off-by: Ting Liu <b28495 at freescale.com>
---
 meta/recipes-kernel/perf/perf.bb |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 269069f..d27e535 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -89,6 +89,12 @@ EXTRA_OEMAKE += "\
 	'infodir=${@oe.path.relative(prefix, infodir)}' \
 "
 
+# PPC64 uses long long for u64 in the kernel, but powerpc's asm/types.h
+# prevents 64-bit userland from seeing this definition, instead defaulting
+# to u64 == long in userspace. Define __SANE_USERSPACE_TYPES__ to get 
+# int-ll64.h included.
+EXTRA_OEMAKE_append_powerpc64 = ' CFLAGS=-D__SANE_USERSPACE_TYPES__'
+
 PARALLEL_MAKE = ""
 
 do_compile() {
-- 
1.7.3.4




More information about the Openembedded-core mailing list