On 19.09.2023 11:54, Nicola Vetrini wrote: > 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?
Why (and in which way) would you mean to change POINTER_ALIGN? Jan
