From d25b7bd0c6bd293ca750164c83d544730e639744 Mon Sep 17 00:00:00 2001 From: mintsuki Date: Wed, 5 Jun 2024 16:53:00 +0200 Subject: [PATCH] build/linker: UEFI: New padding method that doesn't mangle PT_DYNAMIC --- bootstrap | 2 +- common/linker_uefi_aarch64.ld.in | 10 +++++----- common/linker_uefi_ia32.ld.in | 10 +++++----- common/linker_uefi_riscv64.ld.in | 10 +++++----- common/linker_uefi_x86_64.ld.in | 10 +++++----- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/bootstrap b/bootstrap index 404110ac..a9fc39ec 100755 --- a/bootstrap +++ b/bootstrap @@ -13,7 +13,7 @@ cd "$srcdir" FREESTANDING_TOOLCHAIN_COMMIT_HASH=18a5e52483344e117d45738c9afb2b34792cbced FREESTANDING_HEADERS_COMMIT_HASH=dd3abd2d7147efc4170dff478d3b7730bed14147 CC_RUNTIME_COMMIT_HASH=38942e9a0d11af77c5d9fb45794850f7a1565d2b -LIMINE_EFI_COMMIT_HASH=fc334e7b040c6ad2310956ba8f1e78e2901f695d +LIMINE_EFI_COMMIT_HASH=0e4b19594fb241ff6985bd27d0d35612d7b305e1 TINF_COMMIT_HASH=57ffa1f1d5e3dde19011b2127bd26d01689b694b FLANTERM_COMMIT_HASH=88740ef420d44a68679c4f72aaa7ba174dc453ce STB_COMMIT_HASH=f4a71b13373436a2866c5d68f8f80ac6f0bc1ffe diff --git a/common/linker_uefi_aarch64.ld.in b/common/linker_uefi_aarch64.ld.in index 1ce87e6b..793c2313 100644 --- a/common/linker_uefi_aarch64.ld.in +++ b/common/linker_uefi_aarch64.ld.in @@ -58,15 +58,15 @@ SECTIONS *(.no_unwind) } :data - .got : { - *(.got .got.*) - } :data - .dynamic : { *(.dynamic) - . = ALIGN(0x1000); } :data :dynamic + .padding : { + KEEP(*(.padding)) + . = ALIGN(0x1000); + } :data + __data_end = ABSOLUTE(.); __data_size = ABSOLUTE(__data_end - __data_start); diff --git a/common/linker_uefi_ia32.ld.in b/common/linker_uefi_ia32.ld.in index 3d5d3075..bd6a46a8 100644 --- a/common/linker_uefi_ia32.ld.in +++ b/common/linker_uefi_ia32.ld.in @@ -58,15 +58,15 @@ SECTIONS *(.no_unwind) } :data - .got : { - *(.got .got.*) - } :data - .dynamic : { *(.dynamic) - . = ALIGN(0x1000); } :data :dynamic + .padding : { + KEEP(*(.padding)) + . = ALIGN(0x1000); + } :data + __data_end = ABSOLUTE(.); __data_size = ABSOLUTE(__data_end - __data_start); diff --git a/common/linker_uefi_riscv64.ld.in b/common/linker_uefi_riscv64.ld.in index 7aa94b2f..ad71bba7 100644 --- a/common/linker_uefi_riscv64.ld.in +++ b/common/linker_uefi_riscv64.ld.in @@ -60,15 +60,15 @@ SECTIONS *(.no_unwind) } :data - .got : { - *(.got .got.*) - } :data - .dynamic : { *(.dynamic) - . = ALIGN(0x1000); } :data :dynamic + .padding : { + KEEP(*(.padding)) + . = ALIGN(0x1000); + } :data + __data_end = ABSOLUTE(.); __data_size = ABSOLUTE(__data_end - __data_start); diff --git a/common/linker_uefi_x86_64.ld.in b/common/linker_uefi_x86_64.ld.in index 5ce7bdc4..66f00997 100644 --- a/common/linker_uefi_x86_64.ld.in +++ b/common/linker_uefi_x86_64.ld.in @@ -58,15 +58,15 @@ SECTIONS *(.no_unwind) } :data - .got : { - *(.got .got.*) - } :data - .dynamic : { *(.dynamic) - . = ALIGN(0x1000); } :data :dynamic + .padding : { + KEEP(*(.padding)) + . = ALIGN(0x1000); + } :data + __data_end = ABSOLUTE(.); __data_size = ABSOLUTE(__data_end - __data_start);