diff options
author | Matt Fleming <matt.fleming@intel.com> | 2014-06-21 19:30:53 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2014-06-24 22:25:31 +0100 |
commit | 1221f75d13fc1a5ca436ada6eb0cea17199a7bbe (patch) | |
tree | 96669c690495d9628d0bc5cbbf330fed1dc1e04c | |
parent | f9dad5340bcefe34d860e991e8743be01a4d6c3c (diff) | |
download | syslinux-1221f75d13fc1a5ca436ada6eb0cea17199a7bbe.tar.gz |
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@intel.com>
-rw-r--r-- | efi/main.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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 */ |