audk/MdePkg/Include
Ard Biesheuvel 28ade7b802 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>
2016-08-02 08:20:08 +02:00
..
AArch64 MdePkg/ProcessorBind.h: Add ARM and AArch64 GCC macros for Clang 2014-10-31 14:05:09 +00:00
Arm MdePkg/ProcessorBind.h: Add ARM and AArch64 GCC macros for Clang 2014-10-31 14:05:09 +00:00
Ebc MdePkg Base.h: Always define ASM_PFX 2014-09-01 17:23:10 +00:00
Guid MdePkg: Revert AuditMode/DeployedMode name definition 2016-05-04 09:13:46 +08:00
Ia32 MdePkg: Disable VS2015 warning C4701 & C4703 2015-12-04 03:05:28 +00:00
IndustryStandard MdePkg/IndustryStandard: introduce EFI_PCI_CAPABILITY_ID_SHPC 2016-07-13 08:38:41 +02:00
Ipf MdePkg Base.h: Always define ASM_PFX 2014-09-01 17:23:10 +00:00
Library MdePkg/DebugLib: Flag post-_ASSERT() as unreachable for analyzers. 2016-06-22 09:37:12 +08:00
Pi MdePkg: Follow PI1.4a update SmmStartupThisAP() description 2016-06-02 16:34:59 +08:00
Ppi MdePkg: Follow PI1.4a update EFI_SEC_PLATFORM_INFORMATION2 description 2016-06-02 16:34:53 +08:00
Protocol MdePkg: Fix typos in comments 2016-07-11 10:29:49 +08:00
Uefi MdePkg: Add HII definitions from UEFI 2.6 2016-05-13 11:17:57 +08:00
X64 MdePkg: move to 'hidden' visibility for all symbols under GCC/X64 2016-08-02 08:20:08 +02:00
Base.h MdePkg CryptoPkg EdkCompatibilityPkg: retire NO_BUILTIN_VA_FUNCS define 2016-07-21 13:32:09 +02:00
PiDxe.h Update the copyright notice format 2010-04-23 15:46:20 +00:00
PiPei.h Update the copyright notice format 2010-04-23 15:46:20 +00:00
PiSmm.h Add definitions for the UEFI ACPI Data Table defined in the UEFI spec and the SMM Communication ACPI Table defined in the PI spec. 2011-02-22 10:05:06 +00:00
Uefi.h Update the copyright notice format 2010-04-23 15:46:20 +00:00