diff options
author | Oliver Smith-Denny <osde@microsoft.com> | 2025-01-29 11:01:04 -0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2025-02-07 02:23:11 +0000 |
commit | efbf5ed08c48478b51bb6b6da5670b1312755854 (patch) | |
tree | c8ce7edc440fd741346704dd9b6873722451c78c | |
parent | db03bf1d9dd7741571fbd9ad597add36ef4250d5 (diff) | |
download | edk2-efbf5ed08c48478b51bb6b6da5670b1312755854.tar.gz |
MdePkg: Move StackCheckLibStaticInit to StackCheckLib
This commit oves StackCheckLib from a NULL lib to an instance of
StackCheckLib. This requires every entry point to add a library
dependency on StackCheckLib. It also requires every SEC module
to have a dependency on StackCheckLib because there is no
standard SEC entry point.
It allows for greater flexibility for a platform to apply stack
cookies and simplifies DSC logic.
Continuous-integration-options: PatchCheck.ignore-multi-package
Signed-off-by: Oliver Smith-Denny <osde@microsoft.com>
34 files changed, 39 insertions, 16 deletions
diff --git a/ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf b/ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf index 9afd8e9715..e5bfb810f1 100644 --- a/ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf +++ b/ArmPkg/Library/ArmStandaloneMmCoreEntryPoint/ArmStandaloneMmCoreEntryPoint.inf @@ -47,6 +47,7 @@ ArmSvcLib
ArmTransferListLib
ArmFfaLib
+ StackCheckLib
[Guids]
gMpInformationHobGuid
diff --git a/ArmPlatformPkg/PeilessSec/PeilessSec.inf b/ArmPlatformPkg/PeilessSec/PeilessSec.inf index 7ceeb74f69..7f67adfa71 100644 --- a/ArmPlatformPkg/PeilessSec/PeilessSec.inf +++ b/ArmPlatformPkg/PeilessSec/PeilessSec.inf @@ -51,6 +51,7 @@ PrintLib
SerialPortLib
TimerLib
+ StackCheckLib
[Ppis]
gArmMpCoreInfoPpiGuid
diff --git a/ArmPlatformPkg/Sec/Sec.inf b/ArmPlatformPkg/Sec/Sec.inf index 58a566f5f0..b5af19e7a4 100644 --- a/ArmPlatformPkg/Sec/Sec.inf +++ b/ArmPlatformPkg/Sec/Sec.inf @@ -47,6 +47,7 @@ DebugLib
PrintLib
SerialPortLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid
diff --git a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf index ed8b89e2b6..1f6538a4e5 100755 --- a/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf +++ b/ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf @@ -54,6 +54,7 @@ PlatformPeiLib
MemoryInitPeiLib
CacheMaintenanceLib
+ StackCheckLib
[Guids]
gArmMpCoreInfoGuid
diff --git a/EmulatorPkg/EmulatorPkg.dsc b/EmulatorPkg/EmulatorPkg.dsc index a4989c1239..5bba746a02 100644 --- a/EmulatorPkg/EmulatorPkg.dsc +++ b/EmulatorPkg/EmulatorPkg.dsc @@ -323,10 +323,7 @@ # USER_DEFINED components skip normal NULL lib linking, so we have to link this
# specially here for the libs that have stack guard enabled
##
- EmulatorPkg/Win/Host/WinHost.inf {
- <LibraryClasses>
- NULL|MdePkg/Library/StackCheckLibNull/StackCheckLibNull.inf
- }
+ EmulatorPkg/Win/Host/WinHost.inf
!else
##
# Emulator, OS POSIX application
@@ -334,10 +331,7 @@ # USER_DEFINED components skip normal NULL lib linking, so we have to link this
# specially here for the libs that have stack guard enabled
##
- EmulatorPkg/Unix/Host/Host.inf {
- <LibraryClasses>
- NULL|MdePkg/Library/StackCheckLibNull/StackCheckLibNull.inf
- }
+ EmulatorPkg/Unix/Host/Host.inf
!endif
!endif
diff --git a/EmulatorPkg/Sec/Sec.inf b/EmulatorPkg/Sec/Sec.inf index 7476094f13..5d47eed7ae 100644 --- a/EmulatorPkg/Sec/Sec.inf +++ b/EmulatorPkg/Sec/Sec.inf @@ -40,6 +40,7 @@ PeiServicesLib
PpiListLib
BaseMemoryLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid
diff --git a/EmulatorPkg/Unix/Host/Host.inf b/EmulatorPkg/Unix/Host/Host.inf index 1b7481d1e0..550cb9f6e8 100644 --- a/EmulatorPkg/Unix/Host/Host.inf +++ b/EmulatorPkg/Unix/Host/Host.inf @@ -61,6 +61,7 @@ PpiListLib
PeiServicesLib
PeCoffGetEntryPointLib
+ StackCheckLib
[Ppis]
gEfiPeiStatusCodePpiGuid # PPI ALWAYS_PRODUCED
diff --git a/EmulatorPkg/Win/Host/WinHost.inf b/EmulatorPkg/Win/Host/WinHost.inf index 9b3cefcabb..b123ea9dcf 100644 --- a/EmulatorPkg/Win/Host/WinHost.inf +++ b/EmulatorPkg/Win/Host/WinHost.inf @@ -55,6 +55,7 @@ PpiListLib
PeiServicesLib
FrameBufferBltLib
+ StackCheckLib
[Ppis]
gEmuThunkPpiGuid
diff --git a/IntelFsp2Pkg/FspSecCore/Fsp22SecCoreS.inf b/IntelFsp2Pkg/FspSecCore/Fsp22SecCoreS.inf index 4a67388ddf..1b627e2825 100644 --- a/IntelFsp2Pkg/FspSecCore/Fsp22SecCoreS.inf +++ b/IntelFsp2Pkg/FspSecCore/Fsp22SecCoreS.inf @@ -52,6 +52,7 @@ FspSwitchStackLib
FspCommonLib
FspSecPlatformLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid ## PRODUCES
diff --git a/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreM.inf b/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreM.inf index 40ff9f22f7..03b1d62cf3 100644 --- a/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreM.inf +++ b/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreM.inf @@ -61,6 +61,7 @@ CpuLib
FspMultiPhaseLib
FspPlatformLib
+ StackCheckLib
[Pcd]
gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamBase ## CONSUMES
diff --git a/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreS.inf b/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreS.inf index 1d44fb67b5..4df7fce0e0 100644 --- a/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreS.inf +++ b/IntelFsp2Pkg/FspSecCore/Fsp24SecCoreS.inf @@ -53,6 +53,7 @@ FspCommonLib
FspSecPlatformLib
FspMultiPhaseLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid ## PRODUCES
diff --git a/IntelFsp2Pkg/FspSecCore/FspSecCoreI.inf b/IntelFsp2Pkg/FspSecCore/FspSecCoreI.inf index d31576c00b..62129a1b88 100644 --- a/IntelFsp2Pkg/FspSecCore/FspSecCoreI.inf +++ b/IntelFsp2Pkg/FspSecCore/FspSecCoreI.inf @@ -50,5 +50,6 @@ FspSwitchStackLib
FspCommonLib
FspSecPlatformLib
+ StackCheckLib
diff --git a/IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf b/IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf index ac572a6168..07b62177eb 100644 --- a/IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf +++ b/IntelFsp2Pkg/FspSecCore/FspSecCoreM.inf @@ -60,6 +60,7 @@ FspSecPlatformLib
CpuLib
FspPlatformLib
+ StackCheckLib
[Pcd]
gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamBase ## CONSUMES
diff --git a/IntelFsp2Pkg/FspSecCore/FspSecCoreS.inf b/IntelFsp2Pkg/FspSecCore/FspSecCoreS.inf index fb80c0e339..0d6aa4d2f3 100644 --- a/IntelFsp2Pkg/FspSecCore/FspSecCoreS.inf +++ b/IntelFsp2Pkg/FspSecCore/FspSecCoreS.inf @@ -52,6 +52,7 @@ FspSwitchStackLib
FspCommonLib
FspSecPlatformLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid ## PRODUCES
diff --git a/IntelFsp2Pkg/FspSecCore/FspSecCoreT.inf b/IntelFsp2Pkg/FspSecCore/FspSecCoreT.inf index e5a6eaa164..73c0de88d5 100644 --- a/IntelFsp2Pkg/FspSecCore/FspSecCoreT.inf +++ b/IntelFsp2Pkg/FspSecCore/FspSecCoreT.inf @@ -46,6 +46,7 @@ FspSwitchStackLib
FspCommonLib
FspSecPlatformLib
+ StackCheckLib
[Pcd]
gIntelFsp2PkgTokenSpaceGuid.PcdTemporaryRamBase ## CONSUMES
diff --git a/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf b/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf index 35d2535a5b..8457ac3236 100644 --- a/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf +++ b/MdeModulePkg/Universal/CapsulePei/CapsuleX64.inf @@ -44,6 +44,9 @@ DebugLib
CpuExceptionHandlerLib
DebugAgentLib
+ # CapsuleX64 implements its own _ModuleEntryPoint() and does not link against the standard PEIM entrypoint. As a
+ # result, it must include StackCheckLib to resolve the compiler inserted references to stack cookie functionality
+ StackCheckLib
[Depex]
FALSE
diff --git a/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf b/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf index 72fd7572b7..05def4471d 100644 --- a/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf +++ b/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf @@ -33,4 +33,5 @@ [LibraryClasses]
BaseLib
DebugLib
+ StackCheckLib
diff --git a/MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf b/MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf index c14a84dd32..d73c8e01d1 100644 --- a/MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf +++ b/MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf @@ -31,4 +31,4 @@ [LibraryClasses]
BaseLib
DebugLib
-
+ StackCheckLib
diff --git a/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf b/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf index b4f6a7342e..7334c5cc50 100644 --- a/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf +++ b/MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf @@ -31,4 +31,4 @@ [LibraryClasses]
DebugLib
-
+ StackCheckLib
diff --git a/MdePkg/Library/StackCheckLib/StackCheckLibStaticInit.inf b/MdePkg/Library/StackCheckLib/StackCheckLib.inf index ce8bc11f2b..ece291ea0b 100644 --- a/MdePkg/Library/StackCheckLib/StackCheckLibStaticInit.inf +++ b/MdePkg/Library/StackCheckLib/StackCheckLib.inf @@ -7,11 +7,11 @@ [Defines]
INF_VERSION = 1.29
- BASE_NAME = StackCheckLibStaticInit
- FILE_GUID = 2b24dc50-e33d-4c9f-8b62-e826f06e483f
+ BASE_NAME = StackCheckLib
+ FILE_GUID = 1C4CA056-8FEA-413C-89D2-59A7E22847B3
MODULE_TYPE = BASE
VERSION_STRING = 1.0
- LIBRARY_CLASS = NULL
+ LIBRARY_CLASS = StackCheckLib
[Sources]
StackCheckLibCommonMsvc.c | MSFT
@@ -39,8 +39,6 @@ [LibraryClasses]
StackCheckFailureHookLib
- BaseLib
- DebugLib
[FixedPcd]
gEfiMdePkgTokenSpaceGuid.PcdStackCookieExceptionVector
diff --git a/MdePkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf b/MdePkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf index 1a6f255fac..03b33dce7c 100644 --- a/MdePkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf +++ b/MdePkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf @@ -30,3 +30,4 @@ [LibraryClasses]
BaseLib
DebugLib
+ StackCheckLib
diff --git a/MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf b/MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf index 9303566309..ed2634ec37 100644 --- a/MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf +++ b/MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf @@ -36,6 +36,7 @@ BaseLib
DebugLib
MmServicesTableLib
+ StackCheckLib
[Protocols]
gEfiLoadedImageProtocolGuid ## SOMETIMES_CONSUMES
diff --git a/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf b/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf index b9d5b047a4..a97423026b 100644 --- a/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf +++ b/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf @@ -32,4 +32,5 @@ UefiBootServicesTableLib
DebugLib
BaseLib
+ StackCheckLib
diff --git a/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf b/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf index 1d9a8cc1ac..4f8153ea12 100644 --- a/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +++ b/MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf @@ -36,6 +36,7 @@ UefiBootServicesTableLib
DebugLib
BaseLib
+ StackCheckLib
[Protocols]
diff --git a/MdePkg/MdePkg.dsc b/MdePkg/MdePkg.dsc index a793fce809..ccefe558f3 100644 --- a/MdePkg/MdePkg.dsc +++ b/MdePkg/MdePkg.dsc @@ -142,7 +142,7 @@ MdePkg/Library/StackCheckFailureHookLibNull/StackCheckFailureHookLibNull.inf
MdePkg/Library/StackCheckLibNull/StackCheckLibNull.inf
- MdePkg/Library/StackCheckLib/StackCheckLibStaticInit.inf
+ MdePkg/Library/StackCheckLib/StackCheckLib.inf
[Components.IA32, Components.X64, Components.ARM, Components.AARCH64]
#
diff --git a/OvmfPkg/IntelTdx/Sec/SecMain.inf b/OvmfPkg/IntelTdx/Sec/SecMain.inf index cf95284f02..a9ba5c8f78 100644 --- a/OvmfPkg/IntelTdx/Sec/SecMain.inf +++ b/OvmfPkg/IntelTdx/Sec/SecMain.inf @@ -50,6 +50,7 @@ PeilessStartupLib
PlatformInitLib
CcProbeLib
+ StackCheckLib
[Pcd]
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase
diff --git a/OvmfPkg/Library/UefiDriverEntryPointFwCfgOverrideLib/UefiDriverEntryPointFwCfgOverrideLib.inf b/OvmfPkg/Library/UefiDriverEntryPointFwCfgOverrideLib/UefiDriverEntryPointFwCfgOverrideLib.inf index 19985b8c29..c72e701c96 100644 --- a/OvmfPkg/Library/UefiDriverEntryPointFwCfgOverrideLib/UefiDriverEntryPointFwCfgOverrideLib.inf +++ b/OvmfPkg/Library/UefiDriverEntryPointFwCfgOverrideLib/UefiDriverEntryPointFwCfgOverrideLib.inf @@ -31,6 +31,7 @@ DebugLib
QemuFwCfgSimpleParserLib
UefiBootServicesTableLib
+ StackCheckLib
[Protocols]
gEfiLoadedImageProtocolGuid ## SOMETIMES_CONSUMES
diff --git a/OvmfPkg/LoongArchVirt/Sec/SecMain.inf b/OvmfPkg/LoongArchVirt/Sec/SecMain.inf index afa0ff8fd1..82d2f803d6 100644 --- a/OvmfPkg/LoongArchVirt/Sec/SecMain.inf +++ b/OvmfPkg/LoongArchVirt/Sec/SecMain.inf @@ -40,6 +40,7 @@ PeCoffGetEntryPointLib
PeCoffExtraActionLib
PeiServicesLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid # PPI ALWAYS_PRODUCED
diff --git a/OvmfPkg/RiscVVirt/Sec/SecMain.inf b/OvmfPkg/RiscVVirt/Sec/SecMain.inf index 73df0ee4cb..5a8cc49721 100644 --- a/OvmfPkg/RiscVVirt/Sec/SecMain.inf +++ b/OvmfPkg/RiscVVirt/Sec/SecMain.inf @@ -49,6 +49,7 @@ MemoryAllocationLib
HobLib
SerialPortLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid # PPI ALWAYS_PRODUCED
diff --git a/OvmfPkg/Sec/SecMain.inf b/OvmfPkg/Sec/SecMain.inf index 88c2d3fb6d..4a91fb2bbb 100644 --- a/OvmfPkg/Sec/SecMain.inf +++ b/OvmfPkg/Sec/SecMain.inf @@ -56,6 +56,7 @@ CpuExceptionHandlerLib
CcProbeLib
CpuPageTableLib
+ StackCheckLib
[Ppis]
gEfiTemporaryRamSupportPpiGuid # PPI ALWAYS_PRODUCED
diff --git a/UefiCpuPkg/SecCore/SecCore.inf b/UefiCpuPkg/SecCore/SecCore.inf index 20a2ccef0b..94966f4edf 100644 --- a/UefiCpuPkg/SecCore/SecCore.inf +++ b/UefiCpuPkg/SecCore/SecCore.inf @@ -56,6 +56,7 @@ PeiServicesTablePointerLib
HobLib
CpuPageTableLib
+ StackCheckLib
[Ppis]
## SOMETIMES_CONSUMES
diff --git a/UefiCpuPkg/SecCore/SecCoreNative.inf b/UefiCpuPkg/SecCore/SecCoreNative.inf index 6d6d306294..facb79c2c4 100644 --- a/UefiCpuPkg/SecCore/SecCoreNative.inf +++ b/UefiCpuPkg/SecCore/SecCoreNative.inf @@ -53,6 +53,7 @@ PeiServicesTablePointerLib
HobLib
CpuPageTableLib
+ StackCheckLib
[Ppis]
## SOMETIMES_CONSUMES
diff --git a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf index e84ef664d3..da5a58ab22 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf +++ b/UefiPayloadPkg/UefiPayloadEntry/UefiPayloadEntry.inf @@ -55,6 +55,7 @@ PeCoffLib
PlatformSupportLib
CpuLib
+ StackCheckLib
[Guids]
gEfiMemoryTypeInformationGuid
diff --git a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf index 01bb9a118a..8804ef6b9c 100644 --- a/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf +++ b/UefiPayloadPkg/UefiPayloadEntry/UniversalPayloadEntry.inf @@ -47,6 +47,7 @@ PeCoffLib
CpuLib
HobPrintLib
+ StackCheckLib
[Guids]
gEfiMemoryTypeInformationGuid
|