Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1715407
| From | Ard Biesheuvel <ard.biesheuvel@linaro.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 09/14] arm: efi: remove pointless dummy .reloc section |
| Date | 2017-08-18 22:00 +0200 |
| Message-ID | <ufVB0-89n-21@gated-at.bofh.it> (permalink) |
| References | <ufVB0-89n-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
The kernel's EFI PE/COFF header contains a dummy .reloc section, and an explanatory comment that claims that this is required for the EFI application loader to accept the Image as a relocatable image (i.e., one that can be loaded at any offset and fixed up in place) This was inherited from the x86 implementation, which has elaborate host tooling to mangle the PE/COFF header post-link time, and which populates the .reloc section with a single dummy base relocation. On ARM, no such tooling exists, and the .reloc section remains empty, and is never even exposed via the BaseRelocationTable directory entry, which is where the PE/COFF loader looks for it. The PE/COFF spec is unclear about relocatable images that do not require any fixups, but the EDK2 implementation, which is the de facto reference for PE/COFF in the UEFI space, clearly does not care, and explicitly mentions (in a comment) that relocatable images with no base relocations are perfectly fine, as long as they don't have the RELOCS_STRIPPED attribute set (which is not the case for our PE/COFF image) So simply remove the .reloc section altogether. Cc: Matt Fleming <matt@codeblueprint.co.uk> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- arch/arm/boot/compressed/efi-header.S | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S index 4169b900d9d4..309d6198d335 100644 --- a/arch/arm/boot/compressed/efi-header.S +++ b/arch/arm/boot/compressed/efi-header.S @@ -41,7 +41,7 @@ pe_header: coff_header: .short 0x01c2 @ ARM or Thumb - .short 2 @ nr_sections + .short 1 @ nr_sections .long 0 @ TimeDateStamp .long 0 @ PointerToSymbolTable .long 0 @ NumberOfSymbols @@ -96,22 +96,6 @@ extra_header_fields: .quad 0 @ BaseRelocationTable section_table: - @ - @ The EFI application loader requires a relocation section - @ because EFI applications must be relocatable. This is a - @ dummy section as far as we are concerned. - @ - .ascii ".reloc\0\0" - .long 0 @ VirtualSize - .long 0 @ VirtualAddress - .long 0 @ SizeOfRawData - .long 0 @ PointerToRawData - .long 0 @ PointerToRelocations - .long 0 @ PointerToLineNumbers - .short 0 @ NumberOfRelocations - .short 0 @ NumberOfLineNumbers - .long 0x42000040 @ Characteristics - .ascii ".text\0\0\0" .long _end - __efi_start @ VirtualSize .long __efi_start @ VirtualAddress -- 2.11.0
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[GIT PULL 00/14] EFI changes for v4.14 Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[PATCH 03/14] efi/libstub: arm64: force 'hidden' visibility for section markers Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/libstub/arm64: Force 'hidden' visibility for section markers tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 05/14] efi: arm/arm64: Add missing assignment of efi.config_table Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/arm/arm64: Add missing assignment of efi.config_table tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 01/14] efi: arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 06/14] efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns tip-bot for Hans de Goede <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 04/14] efi/libstub: arm64: set -fpie when building the EFI stub Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/libstub/arm64: Set -fpie when building the EFI stub tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 09/14] arm: efi: remove pointless dummy .reloc section Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Remove pointless dummy .reloc section tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 07/14] drivers/fbdev: efifb: allow BAR to be moved instead of claiming it Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] drivers/fbdev/efifb: Allow BAR to be moved instead of claiming it tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 11/14] arm: efi: split zImage code and data into separate PE/COFF sections Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Split zImage code and data into separate PE/COFF sections tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 02/14] efi/libstub: arm64: use hidden attribute for struct screen_info reference Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] efi/libstub/arm64: Use hidden attribute for struct screen_info reference tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 12/14] firmware: dcdbas: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] firmware/dcdbas: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:40 +0200
[PATCH 13/14] firmware: efi: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] firmware/efi: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 14/14] firmware: efi: esrt: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] firmware/efi/esrt: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 10/14] arm: efi: replace open coded constants with symbolic ones Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Replace open coded constants with symbolic ones tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
[PATCH 08/14] arm: efi: remove forbidden values from the PE/COFF header Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
[tip:efi/core] arm/efi: Remove forbidden values from the PE/COFF header tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
Re: [GIT PULL 00/14] EFI changes for v4.14 Ingo Molnar <mingo@kernel.org> - 2017-08-21 11:40 +0200
csiph-web