Currently, the flag "-fpie" is passed for all builds with a GCC
family toolchain, including CLANGPDB. CLANGPDB however does not
support this flag as it generates PE/COFF files directly.

As the flag is mostly required for ARM-specific self-relocation, drop
it for other architectures and document the limitation to enable e.g.
X64 CLANGPDB builds of StandaloneMmCore.

Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Sami Mujawar <sami.muja...@arm.com>
Cc: Jiewen Yao <jiewen....@intel.com>
Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com>
Cc: Vitaly Cheptsov <vit9...@protonmail.com>
Cc: Steven Shi <steven....@intel.com>
Cc: Jiyang Yang <jiyangx.y...@intel.com>
Signed-off-by: Marvin Häuser <mhaeu...@posteo.de>
---
 StandaloneMmPkg/Core/StandaloneMmCore.inf                                      
   | 12 ++++++++++--
 
StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
 |  9 ++++++++-
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/StandaloneMmPkg/Core/StandaloneMmCore.inf 
b/StandaloneMmPkg/Core/StandaloneMmCore.inf
index 56042b7b39f4..c44b9ff33303 100644
--- a/StandaloneMmPkg/Core/StandaloneMmCore.inf
+++ b/StandaloneMmPkg/Core/StandaloneMmCore.inf
@@ -76,6 +76,14 @@ [Guids]
   gEfiEventExitBootServicesGuid

   gEfiEventReadyToBootGuid

 

+#

+# This configuration fails for CLANGPDB, which does not support PIE in the GCC

+# sense. Such however is required for ARM family StandaloneMmCore

+# self-relocation, and thus the CLANGPDB toolchain is unsupported for ARM and

+# AARCH64 for this module.

+#

 [BuildOptions]

-  GCC:*_*_*_CC_FLAGS = -fpie

-  GCC:*_*_*_DLINK_FLAGS = -Wl,-z,text,-Bsymbolic,-pie

+  GCC:*_*_ARM_CC_FLAGS = -fpie

+  GCC:*_*_ARM_DLINK_FLAGS = -Wl,-z,text,-Bsymbolic,-pie

+  GCC:*_*_AARCH64_CC_FLAGS = -fpie

+  GCC:*_*_AARCH64_DLINK_FLAGS = -Wl,-z,text,-Bsymbolic,-pie

diff --git 
a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
 
b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
index 1762586cfa02..75cfb98c0e75 100644
--- 
a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
+++ 
b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
@@ -54,5 +54,12 @@ [Guids]
 [FeaturePcd.ARM, FeaturePcd.AARCH64]

   gArmTokenSpaceGuid.PcdFfaEnable

 

+#

+# This configuration fails for CLANGPDB, which does not support PIE in the GCC

+# sense. Such however is required for ARM family StandaloneMmCore

+# self-relocation, and thus the CLANGPDB toolchain is unsupported for ARM and

+# AARCH64 for this module.

+#

 [BuildOptions]

-  GCC:*_*_*_CC_FLAGS = -fpie

+  GCC:*_*_ARM_CC_FLAGS = -fpie

+  GCC:*_*_AARCH64_CC_FLAGS = -fpie

-- 
2.31.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#82049): https://edk2.groups.io/g/devel/message/82049
Mute This Topic: https://groups.io/mt/86322444/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to