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

Reply via email to