]> git.proxmox.com Git - mirror_edk2.git/commit - ArmVirtPkg/ArmVirtXen.dsc
ArmVirtPkg ARM: make relocatable PrePi users build with CLANG35
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 3 Aug 2016 08:11:29 +0000 (10:11 +0200)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 3 Aug 2016 13:45:23 +0000 (15:45 +0200)
commit87ee6390cbeb2d15490943bca2978f166f213c13
tree7312e605968ff3b6c8a2b729e410c82f925a574f
parentf846969796d311d01e8ba7527a6f50b5a246a9e8
ArmVirtPkg ARM: make relocatable PrePi users build with CLANG35

The clang developers have made a backward incompatible change to the
command line arguments, and have replaced '-mllvm -arm-use-movt=0'
with '-mno-movt'. This does not matter for most ARM platforms, and
therefore it has been removed from the default CLANG35/ARM CC flags
in patch 1c63516075b3 ("BaseTools CLANG35: drop problematic use-movt
and save-temps options"), but as it turns out, the relocatable PrePi
implementation used by ArmVirtQemuKernel and ArmVirtXen will fail to
build if it contains MOVT/MOVW pairs, due to the fact that these are
not runtime relocatable under ELF.

Since they are runtime relocatable under PE/COFF, and GenFw does the
right thing when encountering them, selectively controlling their
use is more appropriate than disabling them altogether. Therefore,
this patch adds the -mno-movt argument only for the platforms that
use the relocatable PrePi, and only for the module types that may
be pulled into its build.

In addition, switch to the SEC type version of ArmLib, so that
the relocatable PrePi only depends on BASE and SEC type libraries.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
ArmVirtPkg/ArmVirtQemuKernel.dsc
ArmVirtPkg/ArmVirtXen.dsc