[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 4/4] xenctx: Support arm64 and actually implement output for 32 and 64 bit
On Fri, 2013-04-12 at 15:25 +0100, Ian Campbell wrote: > On Fri, 2013-04-12 at 14:13 +0100, Ian Campbell wrote: > (there's actually an issue with this change, but I'm going to comment on > that separately since it is thorny) [...] > @@ -218,7 +218,7 @@ typedef uint64_t xen_callback_t; > #define PSR_MODE_SYS 0x1f > > /* 64 bit modes */ > -#ifdef CONFIG_ARM_64 > +#ifdef __aarch64__ > #define PSR_MODE_BIT 0x10 /* Set iff AArch32 */ > #define PSR_MODE_EL3h 0x0d > #define PSR_MODE_EL3t 0x0c There is an issue here which is: tools/include/xen/arch-arm.h:229:0: error: "PSR_MODE_EL0t" redefined [-Werror] In file included from /usr/lib/gcc-cross/aarch64-linux-gnu/4.7/../../../../aarch64-linux-gnu/include/sys/user.h:25:0, from /usr/lib/gcc-cross/aarch64-linux-gnu/4.7/../../../../aarch64-linux-gnu/include/sys/procfs.h:34, from /usr/lib/gcc-cross/aarch64-linux-gnu/4.7/../../../../aarch64-linux-gnu/include/sys/ucontext.h:26, from /usr/lib/gcc-cross/aarch64-linux-gnu/4.7/../../../../aarch64-linux-gnu/include/signal.h:360, from xentrace.c:21: /usr/lib/gcc-cross/aarch64-linux-gnu/4.7/../../../../aarch64-linux-gnu/include/asm/ptrace.h:30:0: note: this is the location of the previous definition This is because Linux's asm/ptrace.h (which is in the include chain from <signal.h>) defines a bunch of extra symbols. I "solved" it with the hack below, but really I think this is a bug in either Linux on arm64, or perhaps glibc for propagating it. I'll bring it up with the kernel guys but I wonder if we ought to take the patch as a skanky workaround for now... Ian. 8<------------------- >From 8d67164fce5e21e2b6353b02834aa40c81bb714a Mon Sep 17 00:00:00 2001 From: Ian Campbell <ian.campbell@xxxxxxxxxx> Date: Fri, 12 Apr 2013 15:33:55 +0100 Subject: [PATCH] arm: Undefine PSR_MODE_* in public arch-arm.h These clash with symbols in Linux asm/ptrace.h. This is probably a bug in Linux (or perhaps glibc) but we work around it here. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- xen/include/public/arch-arm.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h index 2f5ce18..d1753d8 100644 --- a/xen/include/public/arch-arm.h +++ b/xen/include/public/arch-arm.h @@ -219,6 +219,16 @@ typedef uint64_t xen_callback_t; /* 64 bit modes */ #ifdef __aarch64__ + +#undef PSR_MODE_BIT +#undef PSR_MODE_EL3h +#undef PSR_MODE_EL3t +#undef PSR_MODE_EL2h +#undef PSR_MODE_EL2t +#undef PSR_MODE_EL1h +#undef PSR_MODE_EL1t +#undef PSR_MODE_EL0t + #define PSR_MODE_BIT 0x10 /* Set iff AArch32 */ #define PSR_MODE_EL3h 0x0d #define PSR_MODE_EL3t 0x0c -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |