From: Ian Campbell Date: Tue, 26 Feb 2013 10:12:46 +0000 (+0000) Subject: tools: foreign: ensure 64 bit values are properly aligned for arm X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7167 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=84fa23bc6cb949fcc5d510bcaa8905d04205c916;p=xen.git tools: foreign: ensure 64 bit values are properly aligned for arm When building the foreign headers on x86_32 we use '#pragma pack(4)' and therefore need to explicitly align types which should be aligned to 8-byte boundaries. Signed-off-by: Ian Campbell --- diff --git a/tools/include/xen-foreign/mkheader.py b/tools/include/xen-foreign/mkheader.py index 8a784d342a..b19292ff03 100644 --- a/tools/include/xen-foreign/mkheader.py +++ b/tools/include/xen-foreign/mkheader.py @@ -20,15 +20,18 @@ footer = {}; inttypes["arm32"] = { "unsigned long" : "uint32_t", "long" : "uint32_t", - "xen_pfn_t" : "uint64_t", - "xen_ulong_t" : "uint64_t", + "xen_pfn_t" : "__align8__ uint64_t", + "xen_ulong_t" : "__align8__ uint64_t", + "uint64_t" : "__align8__ uint64_t", }; header["arm32"] = """ #define __arm___ARM32 1 #if defined(__GNUC__) && !defined(__STRICT_ANSI__) # define __DECL_REG(n64, n32) union { uint64_t n64; uint32_t n32; } +# define __align8__ __attribute__((aligned (8))) #else # define __DECL_REG(n64, n32) uint64_t n64 +# define __align8__ FIXME #endif """; footer["arm32"] = """ @@ -38,15 +41,18 @@ footer["arm32"] = """ inttypes["arm64"] = { "unsigned long" : "__danger_unsigned_long_on_arm64", "long" : "__danger_long_on_arm64", - "xen_pfn_t" : "uint64_t", - "xen_ulong_t" : "uint64_t", + "xen_pfn_t" : "__align8__ uint64_t", + "xen_ulong_t" : "__align8__ uint64_t", + "uint64_t" : "__align8__ uint64_t", }; header["arm64"] = """ #define __aarch64___ARM64 1 #if defined(__GNUC__) && !defined(__STRICT_ANSI__) # define __DECL_REG(n64, n32) union { uint64_t n64; uint32_t n32; } +# define __align8__ __attribute__((aligned (8))) #else # define __DECL_REG(n64, n32) uint64_t n64 +# define __align8__ FIXME #endif """; footer["arm64"] = """