aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2013-06-19 13:56:19 +0100
committerMatt Fleming <matt.fleming@intel.com>2013-06-19 14:26:19 +0100
commitbb9e70f847a290973945665d8abe717b9e2a18f8 (patch)
tree9fd270b0f995c0271974b847cd76a4af426d127f
parent9b8f1d3f3bfa72e8375c16137cc15eac579ed256 (diff)
downloadsyslinux-bb9e70f847a290973945665d8abe717b9e2a18f8.tar.gz
syslinux-bb9e70f847a290973945665d8abe717b9e2a18f8.tar.xz
syslinux-bb9e70f847a290973945665d8abe717b9e2a18f8.zip
efi: Turn on symbol export whitelist
Reduce the default visibility of objects in efi/ as was done for BIOS in commit e4b3ce2dd82c ("Symbol export whitelist"). Signed-off-by: Matt Fleming <matt.fleming@intel.com>
-rw-r--r--core/bios.c2
-rw-r--r--core/isolinux-c.c2
-rw-r--r--core/ldlinux-c.c2
-rw-r--r--core/pxelinux-c.c2
-rw-r--r--efi/console.c2
-rw-r--r--efi/derivative.c2
-rw-r--r--efi/main.c10
-rw-r--r--mk/efi.mk3
8 files changed, 13 insertions, 12 deletions
diff --git a/core/bios.c b/core/bios.c
index aca764b1..3972e00c 100644
--- a/core/bios.c
+++ b/core/bios.c
@@ -12,7 +12,7 @@
#include <sys/vesa/debug.h>
#include <minmax.h>
-struct firmware *firmware = NULL;
+__export struct firmware *firmware = NULL;
extern struct ansi_ops bios_ansi_ops;
diff --git a/core/isolinux-c.c b/core/isolinux-c.c
index bdc7df5a..b987b68c 100644
--- a/core/isolinux-c.c
+++ b/core/isolinux-c.c
@@ -9,7 +9,7 @@ extern uint16_t bios_cdrom;
extern uint8_t DriveNumber;
extern uint8_t spec_packet;
-void get_derivative_info(union syslinux_derivative_info *di)
+__export void get_derivative_info(union syslinux_derivative_info *di)
{
di->iso.filesystem = SYSLINUX_FS_ISOLINUX;
di->iso.sector_shift = SectorShift;
diff --git a/core/ldlinux-c.c b/core/ldlinux-c.c
index 3d15cefb..8c49e0ea 100644
--- a/core/ldlinux-c.c
+++ b/core/ldlinux-c.c
@@ -7,7 +7,7 @@ extern far_ptr_t PartInfo;
extern far_ptr_t OrigESDI;
extern uint64_t Hidden;
-void get_derivative_info(union syslinux_derivative_info *di)
+__export void get_derivative_info(union syslinux_derivative_info *di)
{
di->disk.filesystem = SYSLINUX_FS_SYSLINUX;
di->disk.sector_shift = SectorShift;
diff --git a/core/pxelinux-c.c b/core/pxelinux-c.c
index a0f0bc84..69c9aac3 100644
--- a/core/pxelinux-c.c
+++ b/core/pxelinux-c.c
@@ -11,7 +11,7 @@ extern far_ptr_t InitStack;
struct syslinux_ipinfo IPInfo;
uint16_t APIVer; /* PXE API version found */
-void get_derivative_info(union syslinux_derivative_info *di)
+__export void get_derivative_info(union syslinux_derivative_info *di)
{
di->pxe.filesystem = SYSLINUX_FS_PXELINUX;
di->pxe.apiver = APIVer;
diff --git a/efi/console.c b/efi/console.c
index 1f09c5a6..a2585c54 100644
--- a/efi/console.c
+++ b/efi/console.c
@@ -3,7 +3,7 @@
extern EFI_GUID GraphicsOutputProtocol;
-void writechr(char data)
+__export void writechr(char data)
{
efi_write_char(data, 0);
}
diff --git a/efi/derivative.c b/efi/derivative.c
index aa72fb11..4391d4c5 100644
--- a/efi/derivative.c
+++ b/efi/derivative.c
@@ -14,7 +14,7 @@
struct syslinux_ipinfo IPInfo;
uint16_t APIVer; /* PXE API version found */
-void get_derivative_info(union syslinux_derivative_info *di)
+__export void get_derivative_info(union syslinux_derivative_info *di)
{
di->disk.filesystem = SYSLINUX_FS_SYSLINUX;
}
diff --git a/efi/main.c b/efi/main.c
index 81a84a46..16810acd 100644
--- a/efi/main.c
+++ b/efi/main.c
@@ -10,10 +10,10 @@
#include "efi.h"
#include "fio.h"
-uint16_t PXERetry;
-char copyright_str[] = "Copyright (C) 2011\n";
+__export uint16_t PXERetry;
+__export char copyright_str[] = "Copyright (C) 2011\n";
uint8_t SerialNotice = 1;
-char syslinux_banner[] = "Syslinux 5.x (EFI)\n";
+__export char syslinux_banner[] = "Syslinux 5.x (EFI)\n";
char CurrentDirName[CURRENTDIR_MAX];
struct com32_sys_args __com32;
@@ -131,7 +131,7 @@ void __cdecl core_farcall(uint32_t c, const com32sys_t *a, com32sys_t *b)
{
}
-struct firmware *firmware = NULL;
+__export struct firmware *firmware = NULL;
void *__syslinux_adv_ptr;
size_t __syslinux_adv_size;
char core_xfer_buf[65536];
@@ -180,7 +180,7 @@ void sem_up(struct semaphore *sem)
/* EFI is single threaded */
}
-volatile uint32_t __ms_timer = 0;
+__export volatile uint32_t __ms_timer = 0;
volatile uint32_t __jiffies = 0;
void efi_write_char(uint8_t ch, uint8_t attribute)
diff --git a/mk/efi.mk b/mk/efi.mk
index 3c134450..24ac811f 100644
--- a/mk/efi.mk
+++ b/mk/efi.mk
@@ -40,7 +40,8 @@ CFLAGS = -I$(EFIINC) -I$(EFIINC)/$(EFI_SUBARCH) \
-I$(core)/include -I$(core)/ $(CARCHOPT) \
-I$(com32)/lib/ -I$(com32)/libutil/include -std=gnu99 \
-DELF_DEBUG -DSYSLINUX_EFI -I$(objdir) \
- $(GCCWARN) -D__COM32__ -mno-red-zone -DLDLINUX=\"$(LDLINUX)\"
+ $(GCCWARN) -D__COM32__ -mno-red-zone \
+ -DLDLINUX=\"$(LDLINUX)\" -fvisibility=hidden
# gnuefi sometimes installs these under a gnuefi/ directory, and sometimes not
CRT0 := $(shell find $(LIBDIR) -name crt0-efi-$(EFI_SUBARCH).o 2>/dev/null | tail -n1)