From 80756d0b112976228f6198859d318beae9bca887 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 25 Apr 2025 10:07:19 +0200 Subject: [PATCH] ArmVirt: move Defines section to new include file The [Defines] section must be processed before including MdeLibs.dsc.inc so the correct stack cookie library can be picked. The other sections (especially [LibraryClasses]) should be processed afterwards so ArmVirt.dsc.inc can override the defaults choosen by MdeLibs.dsc.inc. Implement that by splitting the ArmVirt.dsc.inc include file into two, with the new file carrying the [Defines] section. Signed-off-by: Gerd Hoffmann --- ArmVirtPkg/ArmVirt.dsc.inc | 32 ---------------------------- ArmVirtPkg/ArmVirtCloudHv.dsc | 3 ++- ArmVirtPkg/ArmVirtDefines.dsc.inc | 35 +++++++++++++++++++++++++++++++ ArmVirtPkg/ArmVirtKvmTool.dsc | 3 ++- ArmVirtPkg/ArmVirtQemu.dsc | 3 ++- ArmVirtPkg/ArmVirtQemuKernel.dsc | 3 ++- ArmVirtPkg/ArmVirtXen.dsc | 3 ++- 7 files changed, 45 insertions(+), 37 deletions(-) create mode 100644 ArmVirtPkg/ArmVirtDefines.dsc.inc diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc index d3c2bb35e872..c592025b6a76 100644 --- a/ArmVirtPkg/ArmVirt.dsc.inc +++ b/ArmVirtPkg/ArmVirt.dsc.inc @@ -8,38 +8,6 @@ # # -[Defines] - - # - # Shell can be useful for debugging but should not be enabled for production - # - DEFINE BUILD_SHELL = TRUE - - DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F - -# Dynamic stack cookies pushes the FD size up slightly over 2MB -!if $(TARGET) != NOOPT && $(ARCH) == ARM - DEFINE FD_SIZE_IN_MB = 2 -!else - DEFINE FD_SIZE_IN_MB = 3 -!endif - -!if $(FD_SIZE_IN_MB) == 2 - DEFINE FD_SIZE = 0x200000 - DEFINE FD_NUM_BLOCKS = 0x200 -!endif -!if $(FD_SIZE_IN_MB) == 3 - DEFINE FD_SIZE = 0x300000 - DEFINE FD_NUM_BLOCKS = 0x300 -!endif - -# Dynamic stack cookies are not supported on ARM -!if $(ARCH) == ARM - DEFINE CUSTOM_STACK_CHECK_LIB = STATIC -!else - DEFINE CUSTOM_STACK_CHECK_LIB = DYNAMIC -!endif - [BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION] GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 diff --git a/ArmVirtPkg/ArmVirtCloudHv.dsc b/ArmVirtPkg/ArmVirtCloudHv.dsc index 8b475e23e50c..f8a7c828c3a4 100644 --- a/ArmVirtPkg/ArmVirtCloudHv.dsc +++ b/ArmVirtPkg/ArmVirtCloudHv.dsc @@ -29,7 +29,7 @@ DEFINE SECURE_BOOT_ENABLE = FALSE # This comes before MdeLibs to ensure stack cookie configuration is chosen -!include ArmVirtPkg/ArmVirt.dsc.inc +!include ArmVirtPkg/ArmVirtDefines.dsc.inc [LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf @@ -59,6 +59,7 @@ TpmPlatformHierarchyLib|SecurityPkg/Library/PeiDxeTpmPlatformHierarchyLibNull/PeiDxeTpmPlatformHierarchyLib.inf !include MdePkg/MdeLibs.dsc.inc +!include ArmVirtPkg/ArmVirt.dsc.inc [LibraryClasses.common.PEIM] ArmVirtMemInfoLib|ArmVirtPkg/Library/CloudHvVirtMemInfoLib/CloudHvVirtMemInfoPeiLib.inf diff --git a/ArmVirtPkg/ArmVirtDefines.dsc.inc b/ArmVirtPkg/ArmVirtDefines.dsc.inc new file mode 100644 index 000000000000..01fbb82dbf70 --- /dev/null +++ b/ArmVirtPkg/ArmVirtDefines.dsc.inc @@ -0,0 +1,35 @@ +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +[Defines] + + # + # Shell can be useful for debugging but should not be enabled for production + # + DEFINE BUILD_SHELL = TRUE + + DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000004F + +# Dynamic stack cookies pushes the FD size up slightly over 2MB +!if $(TARGET) != NOOPT && $(ARCH) == ARM + DEFINE FD_SIZE_IN_MB = 2 +!else + DEFINE FD_SIZE_IN_MB = 3 +!endif + +!if $(FD_SIZE_IN_MB) == 2 + DEFINE FD_SIZE = 0x200000 + DEFINE FD_NUM_BLOCKS = 0x200 +!endif +!if $(FD_SIZE_IN_MB) == 3 + DEFINE FD_SIZE = 0x300000 + DEFINE FD_NUM_BLOCKS = 0x300 +!endif + +# Dynamic stack cookies are not supported on ARM +!if $(ARCH) == ARM + DEFINE CUSTOM_STACK_CHECK_LIB = STATIC +!else + DEFINE CUSTOM_STACK_CHECK_LIB = DYNAMIC +!endif diff --git a/ArmVirtPkg/ArmVirtKvmTool.dsc b/ArmVirtPkg/ArmVirtKvmTool.dsc index e5751f904a30..ce3ee0df5992 100644 --- a/ArmVirtPkg/ArmVirtKvmTool.dsc +++ b/ArmVirtPkg/ArmVirtKvmTool.dsc @@ -32,13 +32,14 @@ # This comes before MdeLibs to ensure stack cookie configuration is chosen -!include ArmVirtPkg/ArmVirt.dsc.inc +!include ArmVirtPkg/ArmVirtDefines.dsc.inc !if $(ARCH) == AARCH64 !include DynamicTablesPkg/DynamicTables.dsc.inc !endif !include MdePkg/MdeLibs.dsc.inc +!include ArmVirtPkg/ArmVirt.dsc.inc [LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index 39470ddd42df..74a344a6d1fe 100644 --- a/ArmVirtPkg/ArmVirtQemu.dsc +++ b/ArmVirtPkg/ArmVirtQemu.dsc @@ -52,9 +52,10 @@ !include NetworkPkg/NetworkDefines.dsc.inc # This comes before MdeLibs to ensure stack cookie configuration is chosen -!include ArmVirtPkg/ArmVirt.dsc.inc +!include ArmVirtPkg/ArmVirtDefines.dsc.inc !include MdePkg/MdeLibs.dsc.inc +!include ArmVirtPkg/ArmVirt.dsc.inc [LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc index 9f0b53a1ea66..eaeb3780f7df 100644 --- a/ArmVirtPkg/ArmVirtQemuKernel.dsc +++ b/ArmVirtPkg/ArmVirtQemuKernel.dsc @@ -49,9 +49,10 @@ !include NetworkPkg/NetworkDefines.dsc.inc # This comes before MdeLibs to ensure stack cookie configuration is chosen -!include ArmVirtPkg/ArmVirt.dsc.inc +!include ArmVirtPkg/ArmVirtDefines.dsc.inc !include MdePkg/MdeLibs.dsc.inc +!include ArmVirtPkg/ArmVirt.dsc.inc [LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc index edf7c93e6fb8..df25d51658c1 100644 --- a/ArmVirtPkg/ArmVirtXen.dsc +++ b/ArmVirtPkg/ArmVirtXen.dsc @@ -24,9 +24,10 @@ FLASH_DEFINITION = ArmVirtPkg/ArmVirtXen.fdf # This comes before MdeLibs to ensure stack cookie configuration is chosen -!include ArmVirtPkg/ArmVirt.dsc.inc +!include ArmVirtPkg/ArmVirtDefines.dsc.inc !include MdePkg/MdeLibs.dsc.inc +!include ArmVirtPkg/ArmVirt.dsc.inc [LibraryClasses] SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf