forked from pool/gnu-efi
Dirk Mueller
dc17d19983
- Update to gnu-efi 3.0.14 * Add Device Path Utilities Protocol support * Add EFI_SHELL_PROTOCOL definitions * Move EFI_SHELL_PARAMETERS_PROTOCOL related definitions to efishell.h * Add EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL definitions * Undefined Status in LibGetVariableAndSize() * Initial support for RISCV64 * lisb/str.c: simplify xtoi() * lib/hand: missing va_end * Fix dummy relocation block alignment * Add EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID. * ARM: hide 'hidden' pragma for hosted build * lib/hand: missing va_end() in LibReinstallProtocolInterfaces() * lib/misc: avoid NULL dereference in LibInsertToTailOfBootOrder * lib/str: simplify Atoi() * efiapi.h: add RISC-V machine type definitions * apps: simplify logical constraints * riscv64: missing EFI_FUNCTION * riscv64: provide efisetjmp_arch.h * apps: define FrameBufferAddr for riscv64 * apps: memory leak in draw_boxes() * Add definitions for the EFI device tree table * Fix VS2019 Code Analysis warnings * Set NumberOfSymbols to zero * riscv64: finalize efibind.h - gnu-efi-bsc1182057-support-sbat-section.patch: Update context - Enable build on riscv64 OBS-URL: https://build.opensuse.org/request/show/925990 OBS-URL: https://build.opensuse.org/package/show/Base:System/gnu-efi?expand=0&rev=45
158 lines
4.2 KiB
Diff
158 lines
4.2 KiB
Diff
From fb52c3207282f1b8b5ca2f445210bbd00ac8f42a Mon Sep 17 00:00:00 2001
|
|
From: Gary Lin <glin@suse.com>
|
|
Date: Fri, 12 Mar 2021 15:35:08 +0800
|
|
Subject: [PATCH 1/2] Update linker scripts to add .sbat section
|
|
|
|
Signed-off-by: Gary Lin <glin@suse.com>
|
|
---
|
|
gnuefi/elf_aarch64_efi.lds | 9 +++++++++
|
|
gnuefi/elf_arm_efi.lds | 9 +++++++++
|
|
gnuefi/elf_x86_64_efi.lds | 10 ++++++++++
|
|
3 files changed, 28 insertions(+)
|
|
|
|
diff --git a/gnuefi/elf_aarch64_efi.lds b/gnuefi/elf_aarch64_efi.lds
|
|
index 836d982..1ddec27 100644
|
|
--- a/gnuefi/elf_aarch64_efi.lds
|
|
+++ b/gnuefi/elf_aarch64_efi.lds
|
|
@@ -46,6 +46,15 @@ SECTIONS
|
|
. = ALIGN(512);
|
|
_edata = .;
|
|
_data_size = . - _data;
|
|
+ . = ALIGN(4096);
|
|
+ .sbat :
|
|
+ {
|
|
+ _sbat = .;
|
|
+ *(.sbat)
|
|
+ *(.sbat.*)
|
|
+ }
|
|
+ _esbat = .;
|
|
+ _sbat_size = . - _sbat;
|
|
|
|
. = ALIGN(4096);
|
|
.dynsym : { *(.dynsym) }
|
|
diff --git a/gnuefi/elf_arm_efi.lds b/gnuefi/elf_arm_efi.lds
|
|
index 665bbdb..d47a750 100644
|
|
--- a/gnuefi/elf_arm_efi.lds
|
|
+++ b/gnuefi/elf_arm_efi.lds
|
|
@@ -46,6 +46,15 @@ SECTIONS
|
|
.rel.data : { *(.rel.data) *(.rel.data*) }
|
|
_edata = .;
|
|
_data_size = . - _etext;
|
|
+ . = ALIGN(4096);
|
|
+ .sbat :
|
|
+ {
|
|
+ _sbat = .;
|
|
+ *(.sbat)
|
|
+ *(.sbat.*)
|
|
+ }
|
|
+ _esbat = .;
|
|
+ _sbat_size = . - _sbat;
|
|
|
|
. = ALIGN(4096);
|
|
.dynsym : { *(.dynsym) }
|
|
diff --git a/gnuefi/elf_x86_64_efi.lds b/gnuefi/elf_x86_64_efi.lds
|
|
index 7be5902..fad1939 100644
|
|
--- a/gnuefi/elf_x86_64_efi.lds
|
|
+++ b/gnuefi/elf_x86_64_efi.lds
|
|
@@ -61,6 +61,16 @@ SECTIONS
|
|
*(.rela.got)
|
|
*(.rela.stab)
|
|
}
|
|
+ . = ALIGN(4096);
|
|
+ .sbat :
|
|
+ {
|
|
+ _sbat = .;
|
|
+ *(.sbat)
|
|
+ *(.sbat.*)
|
|
+ }
|
|
+ _esbat = .;
|
|
+ _sbat_size = . - _sbat;
|
|
+
|
|
. = ALIGN(4096);
|
|
.dynsym : { *(.dynsym) }
|
|
. = ALIGN(4096);
|
|
--
|
|
2.29.2
|
|
|
|
|
|
From 6014f854bd3a083f866a6379c34711bd294202a2 Mon Sep 17 00:00:00 2001
|
|
From: Peter Jones <pjones@redhat.com>
|
|
Date: Thu, 11 Mar 2021 10:08:41 -0500
|
|
Subject: [PATCH 2/2] arm/aarch64: include .sbat in section headers.
|
|
|
|
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
---
|
|
gnuefi/crt0-efi-aarch64.S | 14 +++++++++++++-
|
|
gnuefi/crt0-efi-arm.S | 16 +++++++++++++++-
|
|
2 files changed, 28 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gnuefi/crt0-efi-aarch64.S b/gnuefi/crt0-efi-aarch64.S
|
|
index c300d89..9d4ffcd 100644
|
|
--- a/gnuefi/crt0-efi-aarch64.S
|
|
+++ b/gnuefi/crt0-efi-aarch64.S
|
|
@@ -31,7 +31,7 @@ pe_header:
|
|
.short 0
|
|
coff_header:
|
|
.short 0xaa64 // AArch64
|
|
- .short 2 // nr_sections
|
|
+ .short 3 // nr_sections
|
|
.long 0 // TimeDateStamp
|
|
.long 0 // PointerToSymbolTable
|
|
.long 0 // NumberOfSymbols
|
|
@@ -109,6 +109,18 @@ section_table:
|
|
.short 0 // NumberOfLineNumbers (0 for executables)
|
|
.long 0xc0000040 // Characteristics (section flags)
|
|
|
|
+ .ascii ".sbat\0\0\0"
|
|
+ .long _sbat_size // VirtualSize
|
|
+ .long _sbat - ImageBase // VirtualAddress
|
|
+ .long _sbat_size // SizeOfRawData
|
|
+ .long _sbat - ImageBase // PointerToRawData
|
|
+
|
|
+ .long 0 // PointerToRelocations (0 for executables)
|
|
+ .long 0 // PointerToLineNumbers (0 for executables)
|
|
+ .short 0 // NumberOfRelocations (0 for executables)
|
|
+ .short 0 // NumberOfLineNumbers (0 for executables)
|
|
+ .long 0x40400040 // Characteristics (section flags)
|
|
+
|
|
.align 12
|
|
_start:
|
|
stp x29, x30, [sp, #-32]!
|
|
diff --git a/gnuefi/crt0-efi-arm.S b/gnuefi/crt0-efi-arm.S
|
|
index c5bb6d4..0189868 100644
|
|
--- a/gnuefi/crt0-efi-arm.S
|
|
+++ b/gnuefi/crt0-efi-arm.S
|
|
@@ -31,7 +31,7 @@ pe_header:
|
|
.short 0
|
|
coff_header:
|
|
.short 0x1c2 // Mixed ARM/Thumb
|
|
- .short 2 // nr_sections
|
|
+ .short 3 // nr_sections
|
|
.long 0 // TimeDateStamp
|
|
.long 0 // PointerToSymbolTable
|
|
.long 0 // NumberOfSymbols
|
|
@@ -122,6 +122,20 @@ section_table:
|
|
.short 0 // NumberOfLineNumbers (0 for executables)
|
|
.long 0xe0500020 // Characteristics (section flags)
|
|
|
|
+
|
|
+ .ascii ".sbat\0\0\0"
|
|
+ .long _sbat_size // VirtualSize
|
|
+ .long _sbat - ImageBase // VirtualAddress
|
|
+ .long _sbat_size // SizeOfRawData
|
|
+ .long _sbat - ImageBase // PointerToRawData
|
|
+
|
|
+ .long 0 // PointerToRelocations (0 for executables)
|
|
+ .long 0 // PointerToLineNumbers (0 for executables)
|
|
+ .short 0 // NumberOfRelocations (0 for executables)
|
|
+ .short 0 // NumberOfLineNumbers (0 for executables)
|
|
+ .long 0x40400040 // Characteristics (section flags)
|
|
+
|
|
+
|
|
_start:
|
|
stmfd sp!, {r0-r2, lr}
|
|
|
|
--
|
|
2.29.2
|
|
|