On Wed, Mar 09, 2022 at 02:58:06PM +0000, Andrew Cooper wrote:
> On 09/03/2022 12:28, Roger Pau Monne wrote:
> > diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> > index 960c51eb4c..4103763f63 100644
> > --- a/xen/arch/x86/xen.lds.S
> > +++ b/xen/arch/x86/xen.lds.S
> > @@ -87,9 +87,12 @@ SECTIONS
> > *(.text.cold)
> > *(.text.unlikely .text.*_unlikely .text.unlikely.*)
> >
> > + *(.text.page_aligned)
> > *(.text)
> > +#ifdef CONFIG_CC_SPLIT_SECTIONS
> > + *(.text.*)
> > +#endif
> > *(.text.__x86_indirect_thunk_*)
> > - *(.text.page_aligned)
> >
> > *(.fixup)
> > *(.gnu.warning)
> > @@ -292,9 +295,7 @@ SECTIONS
> >
> > DECL_SECTION(.data) {
> > *(.data.page_aligned)
> > - *(.data)
> > - *(.data.rel)
> > - *(.data.rel.*)
> > + *(.data .data.*)
> > } PHDR(text)
> >
> > DECL_SECTION(.bss) {
> > @@ -309,7 +310,7 @@ SECTIONS
> > *(.bss.percpu.read_mostly)
> > . = ALIGN(SMP_CACHE_BYTES);
> > __per_cpu_data_end = .;
> > - *(.bss)
> > + *(.bss .bss.*)
>
> Sorry if I've missed it elsewhere, but why are .data.* and .bss.*
> unguarded, but .text.* under ifdef ?
>
> Surely they should have the same disposition?
The catch-all .text.* added for -ffunction-sections will mean that
.text.startup and .text.exit will end up in .text instead of in .init
and discarded respectively. That's not the case for the data or bss
catch-alls.
Thanks, Roger.