|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] x86/link: Don't merge .init.text and .init.data
c/s 1308f0170c merged .init.text and .init.data, because EFI might properly
write-protect r/o sections.
However, that change makes xen-syms unusable for disassembly analysis. In
particular, searching for indirect branches as part of the SP2/Spectre
mitigation series.
As the merging isn't necessary for ELF targets at all, make it conditional on
the EFI side of the build.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
v2:
* Reimplement using linker ifdefary
---
xen/arch/x86/xen.lds.S | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
index 25c6cbc..e9f2ecd 100644
--- a/xen/arch/x86/xen.lds.S
+++ b/xen/arch/x86/xen.lds.S
@@ -172,7 +172,11 @@ SECTIONS
__2M_init_start = .; /* Start of 2M superpages, mapped RWX (boot
only). */
. = ALIGN(PAGE_SIZE); /* Init code and data */
__init_begin = .;
+#ifdef EFI /* EFI wants to merge all of .init.* ELF doesn't. */
DECL_SECTION(.init) {
+#else
+ DECL_SECTION(.init.text) {
+#endif
_sinittext = .;
*(.init.text)
/*
@@ -183,7 +187,12 @@ SECTIONS
*(.altinstr_replacement)
_einittext = .;
+#ifdef EFI /* EFI wants to merge all of .init.* ELF doesn't. */
. = ALIGN(SMP_CACHE_BYTES);
+#else
+ } :text
+ DECL_SECTION(.init.data) {
+#endif
*(.init.rodata)
*(.init.rodata.rel)
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |