mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-12 22:33:18 +00:00
9ef5ccaa71
The alignment of sections in the EFI binaries generated by U-Boot is incorrect. According to the PE-COFF specification [1] the minimum value for FileAlignment is 512. If the value of SectionAlignment is less then the page size, it must equal FileAlignment. Let's set both values to 512 for the ARM and RISC-V architectures. [1] https://docs.microsoft.com/en-us/windows/win32/debug/pe-format Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
69 lines
1.2 KiB
Text
69 lines
1.2 KiB
Text
/* SPDX-License-Identifier: BSD-2-Clause */
|
|
/*
|
|
* U-Boot aarch64 EFI linker script
|
|
*
|
|
* Modified from elf_aarch64_efi.lds in gnu-efi
|
|
*/
|
|
|
|
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-littleaarch64", "elf64-littleaarch64")
|
|
OUTPUT_ARCH(aarch64)
|
|
ENTRY(_start)
|
|
SECTIONS
|
|
{
|
|
.text 0x0 : {
|
|
_text = .;
|
|
*(.text.head)
|
|
*(.text)
|
|
*(.text.*)
|
|
*(.gnu.linkonce.t.*)
|
|
*(.srodata)
|
|
*(.rodata*)
|
|
. = ALIGN(512);
|
|
}
|
|
_etext = .;
|
|
_text_size = . - _text;
|
|
.dynamic : { *(.dynamic) }
|
|
.data : {
|
|
_data = .;
|
|
*(.sdata)
|
|
*(.data)
|
|
*(.data1)
|
|
*(.data.*)
|
|
*(.got.plt)
|
|
*(.got)
|
|
|
|
/*
|
|
* The EFI loader doesn't seem to like a .bss section, so we
|
|
* stick it all into .data:
|
|
*/
|
|
. = ALIGN(16);
|
|
_bss = .;
|
|
*(.sbss)
|
|
*(.scommon)
|
|
*(.dynbss)
|
|
*(.bss)
|
|
*(.bss.*)
|
|
*(COMMON)
|
|
. = ALIGN(512);
|
|
_bss_end = .;
|
|
_edata = .;
|
|
}
|
|
.rela.dyn : { *(.rela.dyn) }
|
|
.rela.plt : { *(.rela.plt) }
|
|
.rela.got : { *(.rela.got) }
|
|
.rela.data : { *(.rela.data) *(.rela.data*) }
|
|
_data_size = . - _etext;
|
|
|
|
. = ALIGN(4096);
|
|
.dynsym : { *(.dynsym) }
|
|
. = ALIGN(4096);
|
|
.dynstr : { *(.dynstr) }
|
|
. = ALIGN(4096);
|
|
.note.gnu.build-id : { *(.note.gnu.build-id) }
|
|
/DISCARD/ : {
|
|
*(.rel.reloc)
|
|
*(.eh_frame)
|
|
*(.note.GNU-stack)
|
|
}
|
|
.comment 0 : { *(.comment) }
|
|
}
|