[edk2] [PATCH 0/3] fixes for CLANG35 on ARM

Ard Biesheuvel ard.biesheuvel at linaro.org
Wed Dec 12 02:33:05 PST 2018

Building with Clang 3.5 for ARM may result in build breakage, due to the
fact that it may emit non-adjacent movw/movt instructions pairs which
cannot be relocated in PE/COFF. We pass -mno-movt in some places to
work around a related issue in the relocatable PrePi in ArmVirtPkg, but
we need to disable movw/movt entirely to really address this issue.

So first, fix some breakage that results from building with -mlong-calls
in the optimized BaseMemoryLib code (#1)

Patch #2 switches to -mkernel, which disables movw/movt generation (and
enabled -mlong-calls as a side effect)

Patch #3 removes the now redundant, and incompatible command line
overrides for the relocatable PrePi.

Cc: Michael D Kinney <michael.d.kinney at intel.com>
Cc: Liming Gao <liming.gao at intel.com>
Cc: Bob Feng <bob.c.feng at intel.com>
Cc: Leif Lindholm <leif.lindholm at linaro.org>
Cc: Laszlo Ersek <lersek at redhat.com>

Ard Biesheuvel (3):
  MdePkg/BaseMemoryLibOptDxe ARM: add missing function annotations
  BaseTools/tools_def ARM CLANG35: work around -mno-movt option name
  ArmVirtPkg/PrePi ARM CLANG35: drop incompatible command line option

 ArmVirtPkg/ArmVirtQemuKernel.dsc                     | 5 -----
 ArmVirtPkg/ArmVirtXen.dsc                            | 5 -----
 BaseTools/Conf/tools_def.template                    | 2 +-
 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareGuid.S | 1 +
 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.S  | 1 +
 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CopyMem.S     | 1 +
 MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S      | 5 +++++
 7 files changed, 9 insertions(+), 11 deletions(-)


More information about the edk2-devel mailing list