Message ID | 748d35dc-5a2f-302f-d789-9797c6726810@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86/EFI: build adjustments | expand |
On Fri, Apr 23, 2021 at 01:03:34PM +0200, Jan Beulich wrote: > PE binaries specify section addresses by (32-bit) RVA. GNU ld up to at > least 2.36 would silently truncate the (negative) difference when a > section is placed below the image base. Such sections would also be > wrongly placed ahead of all "normal" ones. Since, for the time being, > we build xen.efi with --strip-debug anyway, .stab* can't appear. And > .comment has an entry in /DISCARD/ already anyway in the EFI case. > > Because of their unclear origin, keep the directives for the ELF case > though. > > Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Roger Pau Monné <roger.pau@citrix.com> Albeit I would remove those - even if gcc can still generate stabs debug info I don't think it's used at all, and in any case a user would have to also modify the build system in order to force gcc to produce stabs debug info. Thanks, Roger.
On 23.04.2021 16:25, Roger Pau Monné wrote: > On Fri, Apr 23, 2021 at 01:03:34PM +0200, Jan Beulich wrote: >> PE binaries specify section addresses by (32-bit) RVA. GNU ld up to at >> least 2.36 would silently truncate the (negative) difference when a >> section is placed below the image base. Such sections would also be >> wrongly placed ahead of all "normal" ones. Since, for the time being, >> we build xen.efi with --strip-debug anyway, .stab* can't appear. And >> .comment has an entry in /DISCARD/ already anyway in the EFI case. >> >> Because of their unclear origin, keep the directives for the ELF case >> though. >> >> Signed-off-by: Jan Beulich <jbeulich@suse.com> > > Acked-by: Roger Pau Monné <roger.pau@citrix.com> Thanks. > Albeit I would remove those - even if gcc can still generate stabs > debug info I don't think it's used at all, and in any case a user > would have to also modify the build system in order to force gcc to > produce stabs debug info. I'd be fine dropping them, but I'd prefer doing so in a separate change then. As to modifying the build system - with all the different Dwarf versions and with different debug info levels I was wondering whether we shouldn't allow selecting the precise details via Kconfig. Jan
--- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -350,6 +350,7 @@ SECTIONS #endif } +#ifndef EFI /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } @@ -358,6 +359,7 @@ SECTIONS .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } +#endif } ASSERT(__2M_rwdata_end <= XEN_VIRT_END - XEN_VIRT_START + __XEN_VIRT_START -
PE binaries specify section addresses by (32-bit) RVA. GNU ld up to at least 2.36 would silently truncate the (negative) difference when a section is placed below the image base. Such sections would also be wrongly placed ahead of all "normal" ones. Since, for the time being, we build xen.efi with --strip-debug anyway, .stab* can't appear. And .comment has an entry in /DISCARD/ already anyway in the EFI case. Because of their unclear origin, keep the directives for the ELF case though. Signed-off-by: Jan Beulich <jbeulich@suse.com> --- It's certainly odd that we have stabs section entries in the script, but no Dwarf ones.