gnu-efi/inc
Ard Biesheuvel fa506bd242 ARM: hide 'hidden' pragma for hosted build
The hidden visibility #pragma in inc/arm/efibind.h was meant to inform
the compiler that symbols with external linkage are never exported from
shared libraries [and thus never preempted] when executing in UEFI context
(since UEFI does not support shared libraries). This allows the compiler to
generate relative symbol references instead of GOT entries, which is much more
efficient since the latter need to be relocated before invoking the entry
point of the UEFI app.

However, as it turns out, this pragma is leaking into other code that does
not run in UEFI context, but simply needs to access data structures that
UEFI defines. So make the pragma dependent on whether we are building with
-ffreestanding, which is only used for bare metal code such as UEFI.

Last-Update: 2018-08-24

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Elder versions of sbsigntool failed to build on armhf without the patch,
cf. https://launchpad.net/ubuntu/+source/gnu-efi/3.0.8-0ubuntu1~16.04.1
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
2021-05-08 11:40:21 +00:00
..
aarch64 efibind: Fix usage of efi headers from C++ code 2019-11-27 17:03:49 -06:00
arm ARM: hide 'hidden' pragma for hosted build 2021-05-08 11:40:21 +00:00
ia32 efibind: Fix usage of efi headers from C++ code 2019-11-27 17:03:49 -06:00
ia64 efibind: Fix usage of efi headers from C++ code 2019-11-27 17:03:49 -06:00
mips64el efibind: Fix usage of efi headers from C++ code 2019-11-27 17:03:49 -06:00
protocol The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
riscv64 Initial support for RISCV64 2021-04-01 17:17:33 +02:00
x86_64 Always define HAVE_USE_MS_ABI for MSVC compilers 2021-02-18 10:13:46 -05:00
efi_nii.h Update global protocol GUIDs definitions to match EDK2 2016-08-18 08:42:11 -04:00
efi_pxe.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efi.h Merge /u/xypron/gnu-efi/ branch riscv64 into master 2021-04-05 14:13:03 +00:00
efiapi.h efiapi.h: fix EventGroup parameter of EFI_CREATE_EVENT_EX prototype 2019-05-14 07:44:28 +02:00
eficompiler.h Commit 3dd05c and subsequent ones introduced the use of the GNU 2016-03-25 13:32:54 -04:00
eficon.h Bridge more gaps between EDK and gnu-efi 2016-09-15 11:41:45 -04:00
eficonex.h Add Simple Text Input Ex Protocol support 2020-07-21 16:05:43 +08:00
efidebug.h GCC 4.8 (and others) const warnings 2017-01-08 06:52:33 -05:00
efidef.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efidevp.h Add Device Path Utilities Protocol support 2020-07-23 15:44:12 +08:00
efierr.h Re-add back the original symbol, typeo. 2020-01-16 14:35:56 -05:00
efifs.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efigpt.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efiip.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efilib.h Merge /u/xypron/gnu-efi/ branch riscv64 into master 2021-04-05 14:13:03 +00:00
efilink.h Merge /u/kagurazakakotor/gnu-efi/ branch shell-protocol into master 2021-04-05 14:11:15 +00:00
efinet.h Update global protocol GUIDs definitions to match EDK2 2016-08-18 08:42:11 -04:00
efipart.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efipciio.h Add support for PCI Root Bridge I/O protocol. 2016-09-15 12:50:48 -04:00
efipoint.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efiprot.h Use EFI_FILE_SYSTEM_VOLUME_LABEL rather than EFI_FILE_SYSTEM_VOLUME_LABEL_INFO 2021-03-08 14:59:46 -05:00
efipxebc.h Fix typedef of EFI_PXE_BASE_CODE 2018-03-14 14:50:23 -04:00
efirtlib.h Initial support for RISCV64 2021-04-01 17:17:33 +02:00
efiser.h Update global protocol GUIDs definitions to match EDK2 2016-08-18 08:42:11 -04:00
efisetjmp.h Redefine jmp_buf to comply with C calling convention. 2019-03-15 09:32:06 -04:00
efishell.h Add EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL definitions 2020-11-15 15:26:19 +08:00
efishellintf.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efistdarg.h Always prefer the external <stdarg.h> for MSVC compilation 2021-02-18 10:09:07 -05:00
efitcp.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efiudp.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
efiui.h Update global protocol GUIDs definitions to match EDK2 2016-08-18 08:42:11 -04:00
inc.mak The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
lib.h Remove the need for other include paths besides <gnu-efi>/inc 2021-02-18 10:15:22 -05:00
libsmbios.h Add SMBIOS 3.0 table support 2020-05-11 11:03:35 -04:00
make.inf The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
Makefile Enable out-of-tree building 2015-02-19 11:22:45 -05:00
makefile.hdr The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
pci22.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00
romload.h The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it. 2014-11-25 10:09:50 -05:00