[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 |