summaryrefslogtreecommitdiff
path: root/BaseTools/Source/Python
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-08-01 08:48:02 +0200
committerArd Biesheuvel <ard.biesheuvel@linaro.org>2016-08-02 08:20:08 +0200
commit28ade7b802e0732cf9839017ee6e9cf78b842582 (patch)
tree75b53983f3fd301bc476622963a29ec74d2e94f1 /BaseTools/Source/Python
parent07783fdd67e40fa7cff3ebf34399c1ab65937802 (diff)
downloadedk2-platforms-28ade7b802e0732cf9839017ee6e9cf78b842582.tar.xz
MdePkg: move to 'hidden' visibility for all symbols under GCC/X64
When using GCC to build for X64, we switched to the position independent small code model, which is much more efficient in terms of code generation and runtime relocation footprint, and produces binaries that can execute correctly from any offset. However, the PIC routines are by default geared towards hosted binaries containing symbol references that may resolve to definitions in other dynamic objects, and for this reason, most symbol references are indirected via a GOT entry (which also results in a .reloc fixup entry) unless we annotate them. For this reason, we introduced the 'protected' visibility annotation for all symbol definitions and references, by setting the GCC visibility pragma. However, as it turns out, this is not sufficient for all versions of GCC, and in some cases (GCC 5.x using the GCC49 toolchain tag), may still result in GOT based relocations. So switch to 'hidden' visibility instead, which is slightly stronger, and fixes this issue for the versions of GCC that exhibit the problem. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python')
0 files changed, 0 insertions, 0 deletions