[syslinux:master] efi: Tag __syslinux_adv* with __export
syslinux-bot for Matt Fleming
matt.fleming at intel.com
Tue Jun 24 14:27:04 PDT 2014
Commit-ID: 1221f75d13fc1a5ca436ada6eb0cea17199a7bbe
Gitweb: http://www.syslinux.org/commit/1221f75d13fc1a5ca436ada6eb0cea17199a7bbe
Author: Matt Fleming <matt.fleming at intel.com>
AuthorDate: Sat, 21 Jun 2014 19:30:53 +0100
Committer: Matt Fleming <matt.fleming at intel.com>
CommitDate: Tue, 24 Jun 2014 22:25:31 +0100
efi: Tag __syslinux_adv* with __export
commit 415d571 ("adv: Remove double defintion") introduced a regression
for the EFI boot loader. The commit is correct, but should have tagged
the __syslinux_adv_ptr and __syslinux_adv_size data objects in the EFI
core as __export.
This change is required because symbols in the EFI code are not global
by default, and so, when ldlinux.{e32,e64} tries to bind to the adv
symbols it fails.
The following demonstrates the ELF symbol changes,
Before:
659: 0000000000034f40 8 OBJECT LOCAL DEFAULT 16 __syslinux_adv_ptr
After:
957: 0000000000036fe0 8 OBJECT GLOBAL DEFAULT 16 __syslinux_adv_ptr
Signed-off-by: Matt Fleming <matt.fleming at intel.com>
---
efi/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/efi/main.c b/efi/main.c
index 1cc2456..208fee4 100644
--- a/efi/main.c
+++ b/efi/main.c
@@ -141,8 +141,8 @@ void __cdecl core_farcall(uint32_t c, const com32sys_t *a, com32sys_t *b)
}
__export struct firmware *firmware = NULL;
-void *__syslinux_adv_ptr;
-size_t __syslinux_adv_size;
+__export void *__syslinux_adv_ptr;
+__export size_t __syslinux_adv_size;
char core_xfer_buf[65536];
struct iso_boot_info {
uint32_t pvd; /* LBA of primary volume descriptor */
More information about the Syslinux-commits
mailing list