[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH] xen/types: address Rule 10.1 for macro BITS_TO_LONGS



On 19/09/2023 11:33, Jan Beulich wrote:
On 19.09.2023 11:19, Nicola Vetrini wrote:
I just noticed one further issue with making BYTES_PER_LONG unsigned, in
that causes
several instances of (1U << 3) to appear inside the file
xen/arch/x86/xen.lds
produced by the build, which in turn causes ld to fail on that 'U'.

That should be avoidable if _AC() is used in the #define.


I think all instances on x86 are caused  by
. = ALIGN(POINTER_ALIGN);
where, for all arches in xen/arch/<arch>/include/asm/config.h there is
#define POINTER_ALIGN BYTES_PER_LONG

$ grep -B 1 -A 1 "1U" xen.lds
       *(.data.rel.ro.*)
. = ALIGN((1U << 3)); __start_vpci_array = .; *(SORT(.data.vpci.*)) __end_vpci_array = .;
  } :text
--
       *(.init.bss.stack_aligned)
       . = ALIGN((1U << 3));
       __initdata_cf_clobber_start = .;
--
       *(.init.rodata.*)
       . = ALIGN((1U << 3));
       __setup_start = .;
--
       *(.bss .bss.*)
       . = ALIGN((1U << 3));
       __bss_end = .;


Do you think changing the definition of POINTER_ALIGN will break something?

--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.