From: Michal Orzel <michal.orzel@arm.com>
To: xen-devel@lists.xenproject.org
Cc: "Jan Beulich" <jbeulich@suse.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"Roger Pau Monné" <roger.pau@citrix.com>, "Wei Liu" <wl@xen.org>
Subject: [PATCH 2/3] xen/x86: Make use of helpers defined in xen_lds.h
Date: Mon, 21 Mar 2022 09:21:13 +0100 [thread overview]
Message-ID: <20220321082114.49953-3-michal.orzel@arm.com> (raw)
In-Reply-To: <20220321082114.49953-1-michal.orzel@arm.com>
Header file xen_lds.h defines common macros to be used in arch specific
linker scripts. Include this header and make use of its helpers.
Signed-off-by: Michal Orzel <michal.orzel@arm.com>
---
xen/arch/x86/xen.lds.S | 86 ++++--------------------------------------
1 file changed, 8 insertions(+), 78 deletions(-)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index d33e295320..e82a148e08 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -2,6 +2,7 @@
/* Modified for i386/x86-64 Xen by Keir Fraser */
#include <xen/cache.h>
+#include <xen/xen_lds.h>
#include <asm/page.h>
#undef ENTRY
#undef ALIGN
@@ -12,13 +13,6 @@
#undef __XEN_VIRT_START
#define __XEN_VIRT_START __image_base__
#define DECL_SECTION(x) x :
-/*
- * Use the NOLOAD directive, despite currently ignored by (at least) GNU ld
- * for PE output, in order to record that we'd prefer these sections to not
- * be loaded into memory.
- */
-#define DECL_DEBUG(x, a) #x ALIGN(a) (NOLOAD) : { *(x) }
-#define DECL_DEBUG2(x, y, a) #x ALIGN(a) (NOLOAD) : { *(x) *(y) }
ENTRY(efi_start)
@@ -26,8 +20,6 @@ ENTRY(efi_start)
#define FORMAT "elf64-x86-64"
#define DECL_SECTION(x) #x : AT(ADDR(#x) - __XEN_VIRT_START)
-#define DECL_DEBUG(x, a) #x 0 : { *(x) }
-#define DECL_DEBUG2(x, y, a) #x 0 : { *(x) *(y) }
ENTRY(start_pa)
@@ -159,10 +151,7 @@ SECTIONS
__note_gnu_build_id_end = .;
#endif
#ifdef CONFIG_HAS_VPCI
- . = ALIGN(POINTER_ALIGN);
- __start_vpci_array = .;
- *(SORT(.data.vpci.*))
- __end_vpci_array = .;
+ VPCI_SECTION
#endif
} PHDR(text)
@@ -278,19 +267,10 @@ SECTIONS
__alt_instructions_end = .;
#ifdef CONFIG_DEBUG_LOCK_PROFILE
- . = ALIGN(POINTER_ALIGN);
- __lock_profile_start = .;
- *(.lockprofile.data)
- __lock_profile_end = .;
+ LOCK_PROFILE_SECTION
#endif
- . = ALIGN(8);
- __ctors_start = .;
- *(SORT_BY_INIT_PRIORITY(.init_array.*))
- *(SORT_BY_INIT_PRIORITY(.ctors.*))
- *(.init_array)
- *(.ctors)
- __ctors_end = .;
+ CTORS_SECTION
} PHDR(text)
#ifndef EFI
@@ -335,10 +315,7 @@ SECTIONS
__end_schedulers_array = .;
#ifdef CONFIG_HYPFS
- . = ALIGN(8);
- __paramhypfs_start = .;
- *(.data.paramhypfs)
- __paramhypfs_end = .;
+ HYPFS_SECTION
#endif
} PHDR(text)
@@ -395,24 +372,7 @@ SECTIONS
* _end here, so if these sections get loaded they'll be discarded at runtime
* anyway.
*/
- DECL_DEBUG(.debug_abbrev, 1)
- DECL_DEBUG2(.debug_info, .gnu.linkonce.wi.*, 1)
- DECL_DEBUG(.debug_types, 1)
- DECL_DEBUG(.debug_str, 1)
- DECL_DEBUG2(.debug_line, .debug_line.*, 1)
- DECL_DEBUG(.debug_line_str, 1)
- DECL_DEBUG(.debug_names, 4)
- DECL_DEBUG(.debug_frame, 4)
- DECL_DEBUG(.debug_loc, 1)
- DECL_DEBUG(.debug_loclists, 4)
- DECL_DEBUG(.debug_macinfo, 1)
- DECL_DEBUG(.debug_macro, 1)
- DECL_DEBUG(.debug_ranges, 8)
- DECL_DEBUG(.debug_rnglists, 4)
- DECL_DEBUG(.debug_addr, 8)
- DECL_DEBUG(.debug_aranges, 1)
- DECL_DEBUG(.debug_pubnames, 1)
- DECL_DEBUG(.debug_pubtypes, 1)
+ DWARF_DEBUG_SECTIONS
#ifdef EFI
/* Trick the linker into setting the image size to no less than 16Mb. */
@@ -427,41 +387,11 @@ SECTIONS
#endif
/* Sections to be discarded */
- /DISCARD/ : {
- *(.text.exit)
- *(.exit.text)
- *(.exit.data)
- *(.exitcall.exit)
- *(.discard)
- *(.discard.*)
- *(.eh_frame)
- *(.dtors)
- *(.dtors.*)
- *(.fini_array)
- *(.fini_array.*)
-#ifdef EFI
- *(.comment)
- *(.comment.*)
- *(.note.*)
-#endif
- }
+ DISCARD_SECTIONS
#ifndef EFI
/* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /*
- * LLVM ld also wants .symtab, .strtab, and .shstrtab placed. These look to
- * be benign to GNU ld, so we can have them here unconditionally.
- */
- .symtab 0 : { *(.symtab) }
- .strtab 0 : { *(.strtab) }
- .shstrtab 0 : { *(.shstrtab) }
+ STABS_DEBUG_SECTIONS
#endif
}
--
2.25.1
next prev parent reply other threads:[~2022-03-21 8:21 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-21 8:21 [PATCH 0/3] xen: Linker scripts synchronization Michal Orzel
2022-03-21 8:21 ` [PATCH 1/3] xen: Introduce a header to store common linker scripts content Michal Orzel
2022-03-21 9:22 ` Jan Beulich
2022-03-21 10:14 ` Michal Orzel
2022-03-21 10:23 ` Jan Beulich
2022-03-21 11:09 ` Michal Orzel
2022-03-21 8:21 ` Michal Orzel [this message]
2022-03-21 8:21 ` [PATCH 3/3] xen/arm: Make use of helpers defined in xen_lds.h Michal Orzel
2022-03-21 9:25 ` Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220321082114.49953-3-michal.orzel@arm.com \
--to=michal.orzel@arm.com \
--cc=andrew.cooper3@citrix.com \
--cc=jbeulich@suse.com \
--cc=roger.pau@citrix.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.