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)