From 9e5234feeed8760ee01d088f9cfc8cfda8cff8ab Mon Sep 17 00:00:00 2001 From: Benjamin Doron Date: Mon, 14 Jul 2025 13:51:23 -0400 Subject: [PATCH] payloads/external/edk2: Drop our toolchain override It's no longer maintained here other than to address specific issues, and it prevents us from benefiting from upstream changes. Already, switching to the GCC toolchain saves 5-10 KiB. Use the GCC toolchain over the backwards-compatible GCC5 one, since the latter is being deprecated, and the former landed a few years ago, in edk2-stable202305. Change-Id: I47e47592ea29f5a09790b284378f28385faf29f9 Signed-off-by: Benjamin Doron Reviewed-on: https://review.coreboot.org/c/coreboot/+/88429 Reviewed-by: Sean Rhodes Tested-by: build bot (Jenkins) --- payloads/external/edk2/Makefile | 18 +-- payloads/external/edk2/tools_def.txt | 183 --------------------------- 2 files changed, 7 insertions(+), 194 deletions(-) delete mode 100644 payloads/external/edk2/tools_def.txt diff --git a/payloads/external/edk2/Makefile b/payloads/external/edk2/Makefile index bebd92b0f9..f16aefd053 100644 --- a/payloads/external/edk2/Makefile +++ b/payloads/external/edk2/Makefile @@ -29,7 +29,7 @@ OBJCOPY = $(GCC_PREFIX)objcopy ifeq ($(CONFIG_EDK2_UEFIPAYLOAD),y) BUILD_STR += -p UefiPayloadPkg/UefiPayloadPkg.dsc endif -BUILD_STR += -t COREBOOT +BUILD_STR += -t GCC BUILD_STR += -D BOOTLOADER=COREBOOT ifneq ($(V),1) BUILD_STR += -q @@ -285,12 +285,8 @@ prep: $(EDK2_PATH) $(EDK2_PLATFORMS_PATH) clean checktools logo gop_driver cd $(WORKSPACE); \ source $(EDK2_PATH)/edksetup.sh; \ unset CC; $(MAKE) -C $(EDK2_PATH)/BaseTools 2>&1; \ - grep -q "COREBOOT" $(EDK2_PATH)/Conf/tools_def.txt; \ - if [ $$? -ne 0 ]; then \ - cat ../tools_def.txt >> $(EDK2_PATH)/Conf/tools_def.txt; \ - fi; \ -$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/FV/UEFIPAYLOAD.fd: \ +$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd: \ prep print cd $(WORKSPACE); \ source $(EDK2_PATH)/edksetup.sh; \ @@ -315,7 +311,7 @@ $(WORKSPACE)/Build/UefiPayloadPkgX64/UniversalPayload.elf: \ fi echo "Success!"; \ -$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll: \ +$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll: \ $(WORKSPACE)/Build/UefiPayloadPkgX64/UniversalPayload.elf prep cd $(WORKSPACE)/Build/UefiPayloadPkgX64 && \ $(OBJCOPY) -I binary UniversalPayload.elf -O elf32-i386 -B i386 \ @@ -327,12 +323,12 @@ $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/IA32/UefiPayloadPkg -t COREBOOT -D BOOTLOADER=COREBOOT -D SHIMLAYER=TRUE \ -y $(WORKSPACE)/Build/UefiPayloadPkgX64/ShimLayer.txt -UefiPayloadPkg: $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/FV/UEFIPAYLOAD.fd - mv $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/FV/UEFIPAYLOAD.fd \ +UefiPayloadPkg: $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd + mv $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd \ ../../../build/UEFIPAYLOAD.fd -UniversalPayload: $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll - mv $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_COREBOOT/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll \ +UniversalPayload: $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll + mv $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll \ ../../../build/ShimmedUniversalPayload.elf clean: diff --git a/payloads/external/edk2/tools_def.txt b/payloads/external/edk2/tools_def.txt deleted file mode 100644 index 69b7933a66..0000000000 --- a/payloads/external/edk2/tools_def.txt +++ /dev/null @@ -1,183 +0,0 @@ -# -# Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
-# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
-# Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.
-# Copyright (c) 2015, Hewlett-Packard Development Company, L.P.
-# (C) Copyright 2016 Hewlett Packard Enterprise Development LP
-# -# This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# - -#The following has been adapted from the BaseTools/Conf/tools_def.template file -#and is used to direct the edk2 build to use coreboot's crossgcc toolchain -#rather than the host machine's toolchain - -DEFINE COREBOOT_IA32_PREFIX = ENV(GCC_CC_x86_32) -DEFINE COREBOOT_X64_PREFIX = ENV(GCC_CC_x86_64) -DEFINE COREBOOT_ARM_PREFIX = ENV(GCC_CC_arm) -DEFINE COREBOOT_ARM64_PREFIX = ENV(GCC_CC_arm64) - -DEFINE COREBOOT_IA32_OBJCOPY = ENV(OBJCOPY_x86_32) -DEFINE COREBOOT_X64_OBJCOPY = ENV(OBJCOPY_x86_64) -DEFINE COREBOOT_ARM_OBJCOPY = ENV(OBJCOPY_arm) -DEFINE COREBOOT_ARM64_OBJCOPY = ENV(OBJCOPY_arm64) - -#################################################################################### -# -# COREBOOT - This configuration is used to compile under Linux to produce -# PE/COFF binaries using coreboot's toolchain. -# -################################################################################## - -*_COREBOOT_*_*_FAMILY = GCC - -*_COREBOOT_*_MAKE_PATH = make -*_COREBOOT_*_*_DLL = ENV(GCC5_DLL) -*_COREBOOT_*_ASL_PATH = DEF(UNIX_IASL_BIN) - -*_COREBOOT_*_PP_FLAGS = DEF(GCC_PP_FLAGS) -*_COREBOOT_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) -*_COREBOOT_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -*_COREBOOT_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) -*_COREBOOT_*_APP_FLAGS = -*_COREBOOT_*_ASL_FLAGS = DEF(IASL_FLAGS) -*_COREBOOT_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) - -################## -# COREBOOT IA32 definitions -################## -*_COREBOOT_IA32_OBJCOPY_PATH = DEF(COREBOOT_IA32_OBJCOPY) -*_COREBOOT_IA32_CC_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_SLINK_PATH = DEF(COREBOOT_IA32_PREFIX)-ar -*_COREBOOT_IA32_DLINK_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_ASLDLINK_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_ASM_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_PP_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_VFRPP_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_ASLCC_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_ASLPP_PATH = DEF(COREBOOT_IA32_PREFIX) -*_COREBOOT_IA32_RC_PATH = DEF(COREBOOT_IA32_OBJCOPY) - -*_COREBOOT_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto -*_COREBOOT_IA32_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -*_COREBOOT_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 -*_COREBOOT_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -*_COREBOOT_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) -*_COREBOOT_IA32_OBJCOPY_FLAGS = -*_COREBOOT_IA32_NASM_FLAGS = -f elf32 - - DEBUG_COREBOOT_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os - DEBUG_COREBOOT_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 -z common-page-size=0x1000 - -RELEASE_COREBOOT_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os -Wno-unused-but-set-variable -RELEASE_COREBOOT_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386 -z common-page-size=0x1000 - - NOOPT_COREBOOT_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -O0 - NOOPT_COREBOOT_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386 -O0 -z common-page-size=0x1000 - -################## -# COREBOOT X64 definitions -################## -*_COREBOOT_X64_OBJCOPY_PATH = DEF(COREBOOT_X64_OBJCOPY) -*_COREBOOT_X64_CC_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_SLINK_PATH = DEF(COREBOOT_X64_PREFIX)-ar -*_COREBOOT_X64_DLINK_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_ASLDLINK_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_ASM_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_PP_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_VFRPP_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_ASLCC_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_ASLPP_PATH = DEF(COREBOOT_X64_PREFIX) -*_COREBOOT_X64_RC_PATH = DEF(COREBOOT_X64_OBJCOPY) - -*_COREBOOT_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto -*_COREBOOT_X64_ASLDLINK_FLAGS = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64 -*_COREBOOT_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64 -*_COREBOOT_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS) -*_COREBOOT_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) -*_COREBOOT_X64_OBJCOPY_FLAGS = -*_COREBOOT_X64_NASM_FLAGS = -f elf64 - - DEBUG_COREBOOT_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os - DEBUG_COREBOOT_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os -z common-page-size=0x1000 - -RELEASE_COREBOOT_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -RELEASE_COREBOOT_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os -z common-page-size=0x1000 - - NOOPT_COREBOOT_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -O0 - NOOPT_COREBOOT_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -O0 -z common-page-size=0x1000 - -################## -# COREBOOT ARM definitions -################## -*_COREBOOT_ARM_CC_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_SLINK_PATH = ENV(COREBOOT_ARM_PREFIX)-ar -*_COREBOOT_ARM_DLINK_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_ASLDLINK_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_ASM_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_PP_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_VFRPP_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_ASLCC_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_ASLPP_PATH = ENV(COREBOOT_ARM_PREFIX) -*_COREBOOT_ARM_RC_PATH = ENV(COREBOOT_ARM_OBJCOPY) - -*_COREBOOT_ARM_ARCHCC_FLAGS = -mthumb -*_COREBOOT_ARM_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -*_COREBOOT_ARM_ASLDLINK_FLAGS = DEF(GCC5_ARM_ASLDLINK_FLAGS) -*_COREBOOT_ARM_ASM_FLAGS = DEF(GCC5_ARM_ASM_FLAGS) -*_COREBOOT_ARM_DLINK2_FLAGS = DEF(GCC5_ARM_DLINK2_FLAGS) -*_COREBOOT_ARM_PLATFORM_FLAGS = -march=armv7-a -*_COREBOOT_ARM_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS) -*_COREBOOT_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS) -*_COREBOOT_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) -*_COREBOOT_ARM_CC_XIPFLAGS = DEF(GCC5_ARM_CC_XIPFLAGS) - - DEBUG_COREBOOT_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -O0 - DEBUG_COREBOOT_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS) -z common-page-size=0x1000 - -RELEASE_COREBOOT_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -RELEASE_COREBOOT_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm -z common-page-size=0x1000 - - NOOPT_COREBOOT_ARM_CC_FLAGS = DEF(GCC5_ARM_CC_FLAGS) -O0 - NOOPT_COREBOOT_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS) -O0 -z common-page-size=0x1000 - -################## -# COREBOOT AARCH64 definitions -################## -*_COREBOOT_AARCH64_CC_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_SLINK_PATH = ENV(COREBOOT_ARM64_PREFIX)-ar -*_COREBOOT_AARCH64_DLINK_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_ASLDLINK_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_ASM_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_PP_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_VFRPP_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_ASLCC_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_ASLPP_PATH = ENV(COREBOOT_ARM64_PREFIX) -*_COREBOOT_AARCH64_RC_PATH = ENV(COREBOOT_ARM64_OBJCOPY) - -*_COREBOOT_AARCH64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -*_COREBOOT_AARCH64_ASLDLINK_FLAGS = DEF(GCC5_AARCH64_ASLDLINK_FLAGS) -*_COREBOOT_AARCH64_ASM_FLAGS = DEF(GCC5_AARCH64_ASM_FLAGS) -*_COREBOOT_AARCH64_DLINK2_FLAGS = DEF(GCC5_AARCH64_DLINK2_FLAGS) -*_COREBOOT_AARCH64_PLATFORM_FLAGS = -*_COREBOOT_AARCH64_PP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS) -*_COREBOOT_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS) -*_COREBOOT_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS) -*_COREBOOT_AARCH64_CC_XIPFLAGS = DEF(GCC5_AARCH64_CC_XIPFLAGS) - - DEBUG_COREBOOT_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -O0 -mcmodel=small - DEBUG_COREBOOT_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 - DEBUG_COREBOOT_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 - -RELEASE_COREBOOT_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -mcmodel=tiny -fomit-frame-pointer -RELEASE_COREBOOT_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -z common-page-size=0x1000 - - NOOPT_COREBOOT_AARCH64_CC_FLAGS = DEF(GCC5_AARCH64_CC_FLAGS) -O0 -mcmodel=small - NOOPT_COREBOOT_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -O0 - NOOPT_COREBOOT_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0