mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen: Fix EFI buildid alignment
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/xen-devel/3TMd7J2u5gCA8ouIG_Xfcw7s5JKMG06XsDIesEB3Fi9htUJ43Lfl057wXohlpCHcszqoCmicpIlneEDO26ZqT8QfC2Y39VxBuqD3nS1j5Q4=@trmm.net/T/#u
Fixes: eee5909e9d ("x86/EFI: use less crude a way of generating the build ID")
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 26b111cc22
master date: 2025-11-20 14:29:57 +0000
This commit is contained in:
1 parent
e2b5544a92
commit
247be3ab2b
1 file changed
+2
@@ -173,6 +173,8 @@ SECTIONS
|
||||
__note_gnu_build_id_end = .;
|
||||
} PHDR(note) PHDR(text)
|
||||
#elif defined(BUILD_ID_EFI)
|
||||
/* Workaround bug in binutils < 2.36 */
|
||||
. = ALIGN(32);
|
||||
DECL_SECTION(.buildid) {
|
||||
__note_gnu_build_id_start = .;
|
||||
*(.buildid)
|
||||
|
||||