[edk2,RFC] MdeModulePkg: ARM/AARCH64 requirements added to .dsc

Message ID 1471021908-3509-1-git-send-email-leif.lindholm@linaro.org
State New
Headers show

Commit Message

Leif Lindholm Aug. 12, 2016, 5:11 p.m.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>

---

This is not a proposed change, but rather a demonstration:
When trying to build HelloWorld standalone for ARM/AARCH64,
with a command line like
build -a AARCH64 -t GCC5 -p MdeModulePkg/MdeModulePkg.dsc \
   -m MdeModulePkg/Application/HelloWorld/HelloWorld.inf
this fails with

/work/git/edk2/MdeModulePkg/MdeModulePkg.dsc(...): error 4000: Instance of library class [ArmMmuLib] is not found
	in [/work/git/edk2/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf] [AARCH64]
	consumed by module [/work/git/edk2/MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf]

Adding the below stanzas resolve the issue, but looking
into why other architectures have no issues with this,
I spot a lot of low-level MMU tweakery directly under
DxeIplPeim.

Would this not be better handled through some standardised
mechanism?

/
    Leif

 MdeModulePkg/MdeModulePkg.dsc | 8 ++++++++
 1 file changed, 8 insertions(+)

-- 
2.1.4

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch

diff --git a/MdeModulePkg/MdeModulePkg.dsc b/MdeModulePkg/MdeModulePkg.dsc
index 05120c7..e9c2866 100644
--- a/MdeModulePkg/MdeModulePkg.dsc
+++ b/MdeModulePkg/MdeModulePkg.dsc
@@ -24,6 +24,14 @@  [Defines]
   BUILD_TARGETS                  = DEBUG|RELEASE|NOOPT
   SKUID_IDENTIFIER               = DEFAULT
 
+[LibraryClasses.ARM, LibraryClasses.AARCH64]
+  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
+[LibraryClasses.ARM]
+  ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
+  NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
+[LibraryClasses.AARCH64]
+  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
+
 [LibraryClasses]
   #
   # Entry point