On 20/06/2019 09:40, Roger Pau Monné wrote: > On Wed, Jun 19, 2019 at 09:11:25PM +0100, Andrew Cooper wrote: >> Neither of these should live in .data >> >> * .data.schedulers is only ever read, so is moved into .rodata >> * CONSTRUCTORS is only ever read, and only at boot, so is moved to beside >> .init.rodata >> >> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> > For x86: > > Reviewed-by: Roger Pau Monné <roger....@citrix.com> > > One comment below: > >> --- >> CC: Jan Beulich <jbeul...@suse.com> >> CC: Wei Liu <w...@xen.org> >> CC: Roger Pau Monné <roger....@citrix.com> >> CC: Stefano Stabellini <sstabell...@kernel.org> >> CC: Julien Grall <julien.gr...@arm.com> >> --- >> xen/arch/arm/xen.lds.S | 11 ++++++----- >> xen/arch/x86/xen.lds.S | 11 ++++++----- >> 2 files changed, 12 insertions(+), 10 deletions(-) >> >> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S >> index ec37d38..9fa6c99 100644 >> --- a/xen/arch/x86/xen.lds.S >> +++ b/xen/arch/x86/xen.lds.S >> @@ -140,6 +140,11 @@ SECTIONS >> *(.data.param) >> __param_end = .; >> >> + . = ALIGN(POINTER_ALIGN); >> + __start_schedulers_array = .; >> + *(.data.schedulers) >> + __end_schedulers_array = .; >> + >> #if defined(CONFIG_HAS_VPCI) && defined(CONFIG_LATE_HWDOM) >> . = ALIGN(POINTER_ALIGN); >> __start_vpci_array = .; >> @@ -207,6 +212,7 @@ SECTIONS >> >> *(.init.rodata) >> *(.init.rodata.*) >> + CONSTRUCTORS > According to the ld manual CONSTRUCTORS is only relevant for a.out, > ECOFF and XCOFF. I'm unsure whether PE does use CONSTRUCTORS or not, > since it's a descendant of COFF.
CONSTRUCTORS is strictly needed for the GCC coverage build to function (hence its introduction in the first place), and any code which uses __attribute__((constructor)) (which we use it in libxc, but not in Xen). I'd say that the ld manual is out-of-date. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel