package/xen: Fix builds with GCC 7
Fix a "duplicate 'const' declaration specifier" error that occurs when building Xen. As the issue has already been fixed in upstream Xen let's just backport the fix to apply here. Fixes: http://autobuild.buildroot.net/results/3a0/3a03c328bc6a6c30cc4f619925608d735632211f/ Signed-off-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
87de2485ac
commit
7289d2729d
70
package/xen/0008-arm-fix-build-with-gcc-7.patch
Normal file
70
package/xen/0008-arm-fix-build-with-gcc-7.patch
Normal file
|
@ -0,0 +1,70 @@
|
|||
From 9d3011bd1cd29f8f3841bf1b64d5ead9ed1434e8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Beulich <jbeulich@suse.com>
|
||||
Date: Fri, 19 May 2017 10:12:08 +0200
|
||||
Subject: [PATCH] arm: fix build with gcc 7
|
||||
|
||||
The compiler dislikes duplicate "const", and the ones it complains
|
||||
about look like they we in fact meant to be placed differently.
|
||||
|
||||
Also fix array_access_okay() (just like on x86), despite the construct
|
||||
being unused on ARM: -Wint-in-bool-context, enabled by default in
|
||||
gcc 7, doesn't like multiplication in conditional operators. "Hide" it,
|
||||
at the risk of the next compiler version becoming smarter and
|
||||
recognizing even that. (The hope is that added smartness then would
|
||||
also better deal with legitimate cases like the one here.) The change
|
||||
could have been done in access_ok(), but I think we better keep it at
|
||||
the place the compiler is actually unhappy about.
|
||||
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
Reviewed-by: Julien Grall <julien.grall@arm.com>
|
||||
Release-acked-by: Julien Grall <julien.grall@arm.com>
|
||||
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
|
||||
---
|
||||
xen/arch/arm/platforms/brcm.c | 2 +-
|
||||
xen/arch/arm/platforms/rcar2.c | 2 +-
|
||||
xen/include/asm-arm/guest_access.h | 3 ++-
|
||||
3 files changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/arm/platforms/brcm.c b/xen/arch/arm/platforms/brcm.c
|
||||
index 6d8b5b9175..d481b2c60f 100644
|
||||
--- a/xen/arch/arm/platforms/brcm.c
|
||||
+++ b/xen/arch/arm/platforms/brcm.c
|
||||
@@ -271,7 +271,7 @@ static __init int brcm_init(void)
|
||||
return brcm_populate_plat_regs();
|
||||
}
|
||||
|
||||
-static const char const *brcm_dt_compat[] __initconst =
|
||||
+static const char *const brcm_dt_compat[] __initconst =
|
||||
{
|
||||
"brcm,bcm7445d0",
|
||||
NULL
|
||||
diff --git a/xen/arch/arm/platforms/rcar2.c b/xen/arch/arm/platforms/rcar2.c
|
||||
index bb25751109..df0ac84709 100644
|
||||
--- a/xen/arch/arm/platforms/rcar2.c
|
||||
+++ b/xen/arch/arm/platforms/rcar2.c
|
||||
@@ -46,7 +46,7 @@ static int __init rcar2_smp_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static const char const *rcar2_dt_compat[] __initdata =
|
||||
+static const char *const rcar2_dt_compat[] __initconst =
|
||||
{
|
||||
"renesas,lager",
|
||||
NULL
|
||||
diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
|
||||
index 5876988b23..421bca5f36 100644
|
||||
--- a/xen/include/asm-arm/guest_access.h
|
||||
+++ b/xen/include/asm-arm/guest_access.h
|
||||
@@ -8,7 +8,8 @@
|
||||
#define access_ok(addr,size) (1)
|
||||
|
||||
#define array_access_ok(addr,count,size) \
|
||||
- (likely(count < (~0UL/size)) && access_ok(addr,count*size))
|
||||
+ (likely((count) < (~0UL / (size))) && \
|
||||
+ access_ok(addr, 0 + (count) * (size)))
|
||||
|
||||
unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
|
||||
unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
|
||||
--
|
||||
2.11.0
|
||||
|
Loading…
Reference in a new issue