mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 22:11:59 -09:00
package/xen: fix build for arm with binutils >= 2.41
Xen currently fails to build for 32-bit Arm v7 with binutils >= 2.41,
with the following error:
proc-v7.S:33: Error: junk at end of line, first unrecognized character is `#'
The failure can be reproduced with the commands:
cat >.config <<EOF
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_VFP=y
BR2_ARM_EABIHF=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
BR2_PACKAGE_XEN=y
BR2_PACKAGE_XEN_HYPERVISOR=y
BR2_PACKAGE_XEN_TOOLS=y
EOF
make olddefconfig
make xen
Backport a patch from Xen 4.18 plus one patch it depends on to fix the
build.
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Alistair Francis <alistair@alistair23.me>
[Julien:
- reword commit title
- add commands to reproduce the issue in commit log
- add missing SoB lines to patches
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
250a115c32
commit
2c868ca44d
@@ -0,0 +1,58 @@
|
|||||||
|
From 99314e08c6450a841d4f7155b7ce364e0990df1c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Beulich <jbeulich@suse.com>
|
||||||
|
Date: Fri, 11 Jun 2021 11:19:15 +0200
|
||||||
|
Subject: [PATCH] xen/arm32: avoid .rodata to be marked as executable
|
||||||
|
|
||||||
|
The section .proc.info lives in .rodata as it doesn't contain any
|
||||||
|
executable code. However, the section is still marked as executable
|
||||||
|
as the consequence .rodata will also be marked executable.
|
||||||
|
|
||||||
|
Xen doesn't use the ELF permissions to decide the page-table mapping
|
||||||
|
permission. However, this will confuse disassemblers.
|
||||||
|
|
||||||
|
'#execinstr' is now removed on all the pushsection dealing with
|
||||||
|
.proc.info
|
||||||
|
|
||||||
|
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||||
|
[julieng: Rework the commit message]
|
||||||
|
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||||
|
Upstream: https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=163f47c14737cfa9dfb3240deea356b08caf7614
|
||||||
|
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
|
||||||
|
---
|
||||||
|
xen/arch/arm/arm32/proc-v7.S | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xen/arch/arm/arm32/proc-v7.S b/xen/arch/arm/arm32/proc-v7.S
|
||||||
|
index 46bfc7a..8b418ed 100644
|
||||||
|
--- a/xen/arch/arm/arm32/proc-v7.S
|
||||||
|
+++ b/xen/arch/arm/arm32/proc-v7.S
|
||||||
|
@@ -30,7 +30,7 @@ brahma15mp_init:
|
||||||
|
mcr CP32(r0, ACTLR)
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
- .section ".proc.info", #alloc, #execinstr
|
||||||
|
+ .section ".proc.info", #alloc
|
||||||
|
.type __v7_ca15mp_proc_info, #object
|
||||||
|
__v7_ca15mp_proc_info:
|
||||||
|
.long 0x410FC0F0 /* Cortex-A15 */
|
||||||
|
@@ -39,7 +39,7 @@ __v7_ca15mp_proc_info:
|
||||||
|
.long caxx_processor
|
||||||
|
.size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info
|
||||||
|
|
||||||
|
- .section ".proc.info", #alloc, #execinstr
|
||||||
|
+ .section ".proc.info", #alloc
|
||||||
|
.type __v7_ca7mp_proc_info, #object
|
||||||
|
__v7_ca7mp_proc_info:
|
||||||
|
.long 0x410FC070 /* Cortex-A7 */
|
||||||
|
@@ -48,7 +48,7 @@ __v7_ca7mp_proc_info:
|
||||||
|
.long caxx_processor
|
||||||
|
.size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info
|
||||||
|
|
||||||
|
- .section ".proc.info", #alloc, #execinstr
|
||||||
|
+ .section ".proc.info", #alloc
|
||||||
|
.type __v7_brahma15mp_proc_info, #object
|
||||||
|
__v7_brahma15mp_proc_info:
|
||||||
|
.long 0x420F00F0 /* Broadcom Brahma-B15 */
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
From be0ff8586e38823d6ee08e031c28e5831bbb0991 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Tue, 1 Aug 2023 10:49:30 -0700
|
||||||
|
Subject: [PATCH] arm: Avoid using solaris syntax for .section directive
|
||||||
|
|
||||||
|
Assembler from binutils 2.41 will rejects ([1], [2]) the following
|
||||||
|
syntax
|
||||||
|
|
||||||
|
.section "name", #alloc
|
||||||
|
|
||||||
|
for any other any target other than ELF SPARC. This means we can't use
|
||||||
|
it in the Arm code.
|
||||||
|
|
||||||
|
So switch to the GNU syntax
|
||||||
|
|
||||||
|
.section name [, "flags"[, @type]]
|
||||||
|
|
||||||
|
[1] https://sourceware.org/bugzilla/show_bug.cgi?id=11601
|
||||||
|
[2] https://sourceware.org/binutils/docs-2.41/as.html#Section
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Reviewed-by: Michal Orzel <michal.orzel@amd.com>
|
||||||
|
[jgrall: Reword commit message]
|
||||||
|
Acked-by: Julien Grall <jgrall@amazon.com>
|
||||||
|
Upstream: https://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=dfc490a3740bb7d6889939934afadcb58891fbce
|
||||||
|
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
|
||||||
|
---
|
||||||
|
xen/arch/arm/arm32/proc-v7.S | 6 +++---
|
||||||
|
xen/arch/arm/dtb.S | 2 +-
|
||||||
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/xen/arch/arm/arm32/proc-v7.S b/xen/arch/arm/arm32/proc-v7.S
|
||||||
|
index 8b418ed..9869780 100644
|
||||||
|
--- a/xen/arch/arm/arm32/proc-v7.S
|
||||||
|
+++ b/xen/arch/arm/arm32/proc-v7.S
|
||||||
|
@@ -30,7 +30,7 @@ brahma15mp_init:
|
||||||
|
mcr CP32(r0, ACTLR)
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
- .section ".proc.info", #alloc
|
||||||
|
+ .section .proc.info, "a"
|
||||||
|
.type __v7_ca15mp_proc_info, #object
|
||||||
|
__v7_ca15mp_proc_info:
|
||||||
|
.long 0x410FC0F0 /* Cortex-A15 */
|
||||||
|
@@ -39,7 +39,7 @@ __v7_ca15mp_proc_info:
|
||||||
|
.long caxx_processor
|
||||||
|
.size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info
|
||||||
|
|
||||||
|
- .section ".proc.info", #alloc
|
||||||
|
+ .section .proc.info, "a"
|
||||||
|
.type __v7_ca7mp_proc_info, #object
|
||||||
|
__v7_ca7mp_proc_info:
|
||||||
|
.long 0x410FC070 /* Cortex-A7 */
|
||||||
|
@@ -48,7 +48,7 @@ __v7_ca7mp_proc_info:
|
||||||
|
.long caxx_processor
|
||||||
|
.size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info
|
||||||
|
|
||||||
|
- .section ".proc.info", #alloc
|
||||||
|
+ .section .proc.info, "a"
|
||||||
|
.type __v7_brahma15mp_proc_info, #object
|
||||||
|
__v7_brahma15mp_proc_info:
|
||||||
|
.long 0x420F00F0 /* Broadcom Brahma-B15 */
|
||||||
|
diff --git a/xen/arch/arm/dtb.S b/xen/arch/arm/dtb.S
|
||||||
|
index c703aef..8771daf 100644
|
||||||
|
--- a/xen/arch/arm/dtb.S
|
||||||
|
+++ b/xen/arch/arm/dtb.S
|
||||||
|
@@ -1,2 +1,2 @@
|
||||||
|
- .section .dtb,#alloc
|
||||||
|
+ .section .dtb, "a"
|
||||||
|
.incbin CONFIG_DTB_FILE
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
||||||
Reference in New Issue
Block a user