perf tools: Update types definitions for Android

Some type definitions are missing from Android or are already defined in
bionic and lead to redefinition errors.

Android defines in types.h __le32. Since perf is wrapping <linux/types.h> with a
local version, we need to define this constant in the local version too.
Error in Android:
In file included from bionic/libc/include/unistd.h:36:0,
                 from external/perf/tools/perf/util/util.h:46,
                 from external/perf/tools/perf/util/cache.h:5,
                 from external/perf/tools/perf/util/abspath.c:1:
bionic/libc/kernel/common/linux/capability.h:60:2:
error: unknown type name '__le32'

roundup() definition is missing:
util/symbol.c: In function 'symbols__fixup_end':
util/symbol.c:106: warning: implicit declaration of function 'roundup'
util/symbol.c:106: warning: nested extern declaration of 'roundup'

__force macro defined in perf is also defined in libc which leads to
redefinition errors. In order to avoid these, we guard these definition
with

Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Acked-by: Pekka Enberg <penberg@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Irina Tirdea <irina.tirdea@intel.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1347315303-29906-3-git-send-email-irina.tirdea@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Irina Tirdea 2012-09-11 01:14:59 +03:00 committed by Arnaldo Carvalho de Melo
parent fe392c5356
commit 86d5a70c1e
3 changed files with 21 additions and 0 deletions

View File

@ -12,4 +12,8 @@
#define __used __attribute__((__unused__)) #define __used __attribute__((__unused__))
#define __packed __attribute__((__packed__)) #define __packed __attribute__((__packed__))
#ifndef __force
#define __force
#endif
#endif #endif

View File

@ -46,6 +46,15 @@
_min1 < _min2 ? _min1 : _min2; }) _min1 < _min2 ? _min1 : _min2; })
#endif #endif
#ifndef roundup
#define roundup(x, y) ( \
{ \
const typeof(y) __y = y; \
(((x) + (__y - 1)) / __y) * __y; \
} \
)
#endif
#ifndef BUG_ON #ifndef BUG_ON
#ifdef NDEBUG #ifdef NDEBUG
#define BUG_ON(cond) do { if (cond) {} } while (0) #define BUG_ON(cond) do { if (cond) {} } while (0)

View File

@ -3,6 +3,14 @@
#include <asm/types.h> #include <asm/types.h>
#ifndef __bitwise
#define __bitwise
#endif
#ifndef __le32
typedef __u32 __bitwise __le32;
#endif
#define DECLARE_BITMAP(name,bits) \ #define DECLARE_BITMAP(name,bits) \
unsigned long name[BITS_TO_LONGS(bits)] unsigned long name[BITS_TO_LONGS(bits)]