BaseTools/tools_def ARM: emit PIC veneers
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 12 Dec 2018 12:11:04 +0000 (13:11 +0100)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 19 Dec 2018 17:33:05 +0000 (18:33 +0100)
commitd05d5f6c85e926a0a21da4bd6d5afe766345d6a5
tree16f662cacaef476493a7f8628005af4d056a63c9
parent3bdc111178e11a9a9a3e77cad3f8d61122557d46
BaseTools/tools_def ARM: emit PIC veneers

The ARM linker may emit veneers, i.e., trampolines, when ordinary
direct relative branches cannot be used, e.g., for Thumb interworking
or branch targets that are out of range.

Usually, such veneers carry an absolute reference to the branch
target, which is problematic for us, since these absolute references
are not covered by annotations that are visible to GenFw in the
PE/COFF conversion, and so these absolute references are not fixed
up by the PE/COFF loader at runtime.

So switch to all ARM GNU ld toolchains to position independent veneers.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
BaseTools/Conf/tools_def.template