Bugframe linkage is identical in all architectures. This is not surprising
given that it is (now) only consumed by common/virtual_region.c
Introduce a common BUGFRAMES define in xen.lds.h ahead of rearranging their
structure.
No functional change.
Signed-off-by: Andrew Cooper
Reviewed-by: Jan Beulich
---
CC: Jan Beulich
CC: Roger Pau Monné
CC: Wei Liu
CC: Stefano Stabellini
CC: Julien Grall
CC: Volodymyr Babchuk
CC: Bertrand Marquis
CC: Michal Orzel
CC: Oleksii Kurochko
CC: Shawn Anastasio
CC: Konrad Rzeszutek Wilk
CC: Ross Lagerwall
---
xen/arch/arm/xen.lds.S| 13 +++--
xen/arch/ppc/xen.lds.S| 13 +++--
xen/arch/riscv/xen.lds.S | 13 +++--
xen/arch/x86/xen.lds.S| 11 +--
xen/include/xen/xen.lds.h | 11 +++
5 files changed, 21 insertions(+), 40 deletions(-)
diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
index 2266c9536f05..bd884664adf6 100644
--- a/xen/arch/arm/xen.lds.S
+++ b/xen/arch/arm/xen.lds.S
@@ -55,16 +55,9 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
.rodata : {
_srodata = .; /* Read-only data */
-/* Bug frames table */
- __start_bug_frames = .;
- *(.bug_frames.0)
- __stop_bug_frames_0 = .;
- *(.bug_frames.1)
- __stop_bug_frames_1 = .;
- *(.bug_frames.2)
- __stop_bug_frames_2 = .;
- *(.bug_frames.3)
- __stop_bug_frames_3 = .;
+
+BUGFRAMES
+
*(.rodata)
*(.rodata.*)
*(.data.rel.ro)
diff --git a/xen/arch/ppc/xen.lds.S b/xen/arch/ppc/xen.lds.S
index 8840a0044666..38cd857187e2 100644
--- a/xen/arch/ppc/xen.lds.S
+++ b/xen/arch/ppc/xen.lds.S
@@ -45,16 +45,9 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
DECL_SECTION(.rodata) {
_srodata = .; /* Read-only data */
-/* Bug frames table */
-__start_bug_frames = .;
-*(.bug_frames.0)
-__stop_bug_frames_0 = .;
-*(.bug_frames.1)
-__stop_bug_frames_1 = .;
-*(.bug_frames.2)
-__stop_bug_frames_2 = .;
-*(.bug_frames.3)
-__stop_bug_frames_3 = .;
+
+BUGFRAMES
+
*(.rodata)
*(.rodata.*)
*(.data.rel.ro)
diff --git a/xen/arch/riscv/xen.lds.S b/xen/arch/riscv/xen.lds.S
index ace6f49c579c..070b19d91503 100644
--- a/xen/arch/riscv/xen.lds.S
+++ b/xen/arch/riscv/xen.lds.S
@@ -42,16 +42,9 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
.rodata : {
_srodata = .; /* Read-only data */
-/* Bug frames table */
-__start_bug_frames = .;
-*(.bug_frames.0)
-__stop_bug_frames_0 = .;
-*(.bug_frames.1)
-__stop_bug_frames_1 = .;
-*(.bug_frames.2)
-__stop_bug_frames_2 = .;
-*(.bug_frames.3)
-__stop_bug_frames_3 = .;
+
+BUGFRAMES
+
*(.rodata)
*(.rodata.*)
*(.data.rel.ro)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 1ef6645128b2..9a1dfe1b340a 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -127,16 +127,7 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
__ro_after_init_end = .;
- /* Bug frames table */
- __start_bug_frames = .;
- *(.bug_frames.0)
- __stop_bug_frames_0 = .;
- *(.bug_frames.1)
- __stop_bug_frames_1 = .;
- *(.bug_frames.2)
- __stop_bug_frames_2 = .;
- *(.bug_frames.3)
- __stop_bug_frames_3 = .;
+ BUGFRAMES
*(.rodata)
*(.rodata.*)
diff --git a/xen/include/xen/xen.lds.h b/xen/include/xen/xen.lds.h
index be90f5ca0fdb..7ab7aa567872 100644
--- a/xen/include/xen/xen.lds.h
+++ b/xen/include/xen/xen.lds.h
@@ -114,6 +114,17 @@
/* List of constructs other than *_SECTIONS in alphabetical order. */
+#define BUGFRAMES \
+__start_bug_frames = .; \
+*(.bug_frames.0)\
+__stop_bug_frames_0 = .;\
+*(.bug_frames.1)\
+__stop_bug_frames_1 = .;\
+*(.bug_frames.2)\
+__stop_bug_frames_2 = .;\
+*(.bug_frames.3)\
+__stop_bug_frames_3 = .;
+
#ifdef CONFIG_HYPFS
#define HYPFS_PARAM \
. = ALIGN(POINTER_ALIGN); \
--
2.30.2