From a28e2358c207cd98f806e1ed7a64143f4d9821a9 Mon Sep 17 00:00:00 2001 From: Elyes Haouas Date: Sat, 6 May 2023 14:37:48 +0200 Subject: util/crossgcc: Update binutils-2.40 import set_entry_point patch Import set_entry_point patch from https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3539414584be0094b0a4fe56dfd64ea79d802edc to fix issue in binutils 2.40 with LTO when applied to PE/PE+ binaries (i.e. UEFI). Change-Id: I3844b53c8761239932ce91c2ff19ed0402321d1a Signed-off-by: Elyes Haouas Reviewed-on: https://review.coreboot.org/c/coreboot/+/74974 Tested-by: build bot (Jenkins) Reviewed-by: Lean Sheng Tan Reviewed-by: Felix Singer --- ...stop_loosing_entry_point_when_LTO_enabled.patch | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 util/crossgcc/patches/binutils-2.40_stop_loosing_entry_point_when_LTO_enabled.patch (limited to 'util/crossgcc') diff --git a/util/crossgcc/patches/binutils-2.40_stop_loosing_entry_point_when_LTO_enabled.patch b/util/crossgcc/patches/binutils-2.40_stop_loosing_entry_point_when_LTO_enabled.patch new file mode 100644 index 0000000000..548540c8c4 --- /dev/null +++ b/util/crossgcc/patches/binutils-2.40_stop_loosing_entry_point_when_LTO_enabled.patch @@ -0,0 +1,42 @@ +From 3539414584be0094b0a4fe56dfd64ea79d802edc Mon Sep 17 00:00:00 2001 +From: Nick Clifton +Date: Thu, 4 May 2023 14:24:16 +0100 +Subject: [PATCH] Stop the linker from loosing the entry point for COFF/PE code + when compiling with LTO enabled. + + PR 30300 + * emultempl/pep.em (set_entry_point): Add an undefined reference to the entry point if it has been constructed heuristically. + * emultempl/pe.em (set_entry_point): Likewise. +--- + +diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em +index 55412d6ef9e..1f2a5f310be 100644 +--- a/ld/emultempl/pe.em ++++ b/ld/emultempl/pe.em +@@ -659,6 +659,9 @@ set_entry_point (void) + } + + lang_default_entry (entry); ++ ++ if (bfd_link_executable (&link_info) && ! entry_from_cmdline) ++ ldlang_add_undef (entry, false); + } + + static void +diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em +index 2a3fd0e6ea8..ca4acaea148 100644 +--- a/ld/emultempl/pep.em ++++ b/ld/emultempl/pep.em +@@ -631,6 +631,9 @@ set_entry_point (void) + } + + lang_default_entry (entry); ++ ++ if (bfd_link_executable (&link_info) && ! entry_from_cmdline) ++ ldlang_add_undef (entry, false); + } + + static void +-- +2.31.1 + -- cgit v1.2.3