On 19/11/2025 7:12 pm, Marek Marczykowski-Górecki wrote:
> Old binutils get confused about .buildid overlapping (in VA space) with
> earlier section. That confusion results in weird errors down the road,
> like this one:
>
>     objcopy: xen.efi: Data Directory size (1c) exceeds space left in section 
> (8)
>
> While the bug is fixed in later binutils version, force alignment of the
> buildid to avoid overlapping and make it work with older versions too.
> This can be reverted once toolchain base is raised at or above binutils
> 2.36.
>
> Details at:
> https://lore.kernel.org/all/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=@trmm.net/
>
> Signed-off-by: Marek Marczykowski-Górecki <[email protected]>
> Fixes: eee5909e9d1e ("x86/EFI: use less crude a way of generating the build 
> ID")

We typically put these tags in the other order.  I can fix on commit.

Reviewed-by: Andrew Cooper <[email protected]>, although...

> ---
> While the actual bug apparently is in binutils, the commit mentioned in
> Fixes: tag introduced part that triggers that bug.
> ---
>  xen/arch/x86/xen.lds.S | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
> index 5d02f83a409c..967f9167f757 100644
> --- a/xen/arch/x86/xen.lds.S
> +++ b/xen/arch/x86/xen.lds.S
> @@ -171,6 +171,8 @@ SECTIONS
>         __note_gnu_build_id_end = .;
>    } PHDR(note) PHDR(text)
>  #elif defined(BUILD_ID_EFI)
> +  /* Workaround bug in binutils < 2.38 */

... this says 2.38, but the commit message says 2.36.  Which one is it?

~Andrew

> +  . = ALIGN(32);
>    DECL_SECTION(.buildid) {
>         __note_gnu_build_id_start = .;
>         *(.buildid)


Reply via email to