blob: a921481837d3b9dcc3d064e64f0f48009b366f6e [file] [log] [blame]
Andrew Geissler80d41842023-09-11 08:36:15 -04001From 6673fb1de490575a414de7e4dd9442c921383019 Mon Sep 17 00:00:00 2001
Andrew Geissler2daf84b2023-03-31 09:57:23 -05002From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 7 Apr 2021 00:16:07 -0700
4Subject: [PATCH] Enforce using good old BFD linker
Brad Bishopbec4ebc2022-08-03 09:55:16 -04005
6some distros may use gold as system linker and it crashes while linking the app
7
8TOPDIR/build/tmpfs/work/qemuarm64-yoe-linux/sbsa-acs/3.0-r0/recipe-sysroot-native/usr/bin/aarch64-yoe-linux/../../libexec/aarch64-yoe-linux/gcc/aarch64-yoe-linux/11.0.1/ld: error: TOPDIR/build/tmpfs/work/qemuarm64-yoe-linux/sbsa-acs/3.0-r0/edk2/BaseTools/Scripts/GccBase.lds:54:10: INFO section type is unsupported
9TOPDIR/build/tmpfs/work/qemuarm64-yoe-linux/sbsa-acs/3.0-r0/recipe-sysroot-native/usr/bin/aarch64-yoe-linux/../../libexec/aarch64-yoe-linux/gcc/aarch64-yoe-linux/11.0.1/ld: error: TOPDIR/build/tmpfs/work/qemuarm64-yoe-linux/sbsa-acs/3.0-r0/edk2/BaseTools/Scripts/GccBase.lds:66:14: INFO section type is unsupported
10TOPDIR/build/tmpfs/work/qemuarm64-yoe-linux/sbsa-acs/3.0-r0/recipe-sysroot-native/usr/bin/aarch64-yoe-linux/../../libexec/aarch64-yoe-linux/gcc/aarch64-yoe-linux/11.0.1/ld: internal error in do_layout, at ../../gold/object.cc:1939
11collect2: error: ld returned 1 exit status
12
13Upstream-Status: Pending
14Signed-off-by: Khem Raj <raj.khem@gmail.com>
Patrick Williams7784c422022-11-17 07:29:11 -060015
16---
17 BaseTools/Conf/tools_def.template | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
Andrew Geissler80d41842023-09-11 08:36:15 -040021index bca09e4648..b775391675 100755
Brad Bishopbec4ebc2022-08-03 09:55:16 -040022--- a/BaseTools/Conf/tools_def.template
23+++ b/BaseTools/Conf/tools_def.template
Andrew Geissler80d41842023-09-11 08:36:15 -040024@@ -1858,7 +1858,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access
Brad Bishopbec4ebc2022-08-03 09:55:16 -040025 DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18
26 DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
27 DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
28-DEFINE GCC_DLINK2_FLAGS_COMMON = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
29+DEFINE GCC_DLINK2_FLAGS_COMMON = -fuse-ld=bfd -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
30 DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
31 DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
Andrew Geissler2daf84b2023-03-31 09:57:23 -050032 DEFINE GCC_LOONGARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map