[syslinux:firmware] efi: Turn on symbol export whitelist

syslinux-bot for Matt Fleming matt.fleming at intel.com
Thu Jun 20 06:51:08 PDT 2013


Commit-ID:  bb9e70f847a290973945665d8abe717b9e2a18f8
Gitweb:     http://www.syslinux.org/commit/bb9e70f847a290973945665d8abe717b9e2a18f8
Author:     Matt Fleming <matt.fleming at intel.com>
AuthorDate: Wed, 19 Jun 2013 13:56:19 +0100
Committer:  Matt Fleming <matt.fleming at intel.com>
CommitDate: Wed, 19 Jun 2013 14:26:19 +0100

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 at intel.com>

---
 core/bios.c       |  2 +-
 core/isolinux-c.c |  2 +-
 core/ldlinux-c.c  |  2 +-
 core/pxelinux-c.c |  2 +-
 efi/console.c     |  2 +-
 efi/derivative.c  |  2 +-
 efi/main.c        | 10 +++++-----
 mk/efi.mk         |  3 ++-
 8 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/core/bios.c b/core/bios.c
index aca764b..3972e00 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 bdc7df5..b987b68 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 3d15cef..8c49e0e 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 a0f0bc8..69c9aac 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 1f09c5a..a2585c5 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 aa72fb1..4391d4c 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 81a84a4..16810ac 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 3c13445..24ac811 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)


More information about the Syslinux-commits mailing list