On 3 August 2016 at 13:19, Laszlo Ersek <firstname.lastname@example.org> wrote:
On 08/03/16 12:02, Ard Biesheuvel wrote:
On 3 August 2016 at 12:00, Laszlo Ersek <email@example.com> wrote:I think it would be reasonable to add this one paragraph to the commit
On 08/03/16 10:21, Ard Biesheuvel wrote:It prevents a version of ArmLib being pulled into the build of the
The clang developers have made a backward incompatible change to theHow does this library resolution change relate to the stated purpose of
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.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <firstname.lastname@example.org>
ArmVirtPkg/ArmVirtQemuKernel.dsc | 8 ++++++++
ArmVirtPkg/ArmVirtXen.dsc | 9 +++++++++
2 files changed, 17 insertions(+)
diff --git a/ArmVirtPkg/ArmVirtQemuKernel.dsc b/ArmVirtPkg/ArmVirtQemuKernel.dsc
index 01a1d9b4613b..6c536d9bbd2d 100644
@@ -45,6 +45,9 @@ [LibraryClasses.ARM]
relocatable PrePi that was built using the BuildOptions for DXE_DRIVER
message as well. If you disagree, I won't insist. :)
No, you're quite right. I'm still a bit confused that a SEC module can
include DXE_DRIVER type libraries, but I guess it doesn't matter if
there is no constructor.
Reviewed-by: Laszlo Ersek <email@example.com>