Re: [PATCH v2 1/1] StandaloneMmPkg: Support CLANGPDB builds


Ard Biesheuvel
 

On Mon, 18 Oct 2021 at 03:18, Steven Shi <steven.shi@...> wrote:

Acked-by: Shi Steven <steven.shi@...>


Hello Ard,
Could you review and check-in this patch? It blocks our clang build.

Merged as #2077

Thanks,
Ard.



-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Marvin
Häuser
Sent: Friday, October 15, 2021 3:06 AM
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <ardb+tianocore@...>; Sami Mujawar
<sami.mujawar@...>; Yao, Jiewen <jiewen.yao@...>; Supreeth
Venkatesh <supreeth.venkatesh@...>; Vitaly Cheptsov
<vit9696@...>; Shi, Steven <steven.shi@...>; Yang,
JiyangX <jiyangx.yang@...>
Subject: [edk2-devel] [PATCH v2 1/1] StandaloneMmPkg: Support
CLANGPDB builds

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+tianocore@...>
Cc: Sami Mujawar <sami.mujawar@...>
Cc: Jiewen Yao <jiewen.yao@...>
Cc: Supreeth Venkatesh <supreeth.venkatesh@...>
Cc: Vitaly Cheptsov <vit9696@...>
Cc: Steven Shi <steven.shi@...>
Cc: Jiyang Yang <jiyangx.yang@...>
Signed-off-by: Marvin Häuser <mhaeuser@...>
---
StandaloneMmPkg/Core/StandaloneMmCore.inf | 12
++++++++++--

StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmC
oreEntryPoint.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/StandaloneMm
CoreEntryPoint.inf
b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMm
CoreEntryPoint.inf
index 1762586cfa02..75cfb98c0e75 100644
---
a/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMm
CoreEntryPoint.inf
+++
b/StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMm
CoreEntryPoint.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








Join devel@edk2.groups.io to automatically receive all group messages.