summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/interface/syslinux
diff options
context:
space:
mode:
authorJoshua Oreman2010-05-27 02:52:44 +0200
committerMichael Brown2010-05-27 11:19:14 +0200
commit2aad3fab233f0235f9a8f677ae7bb402f1647eb6 (patch)
treec4630d1f9e5a2c9d21b7018c63fe20878d1c00af /src/arch/i386/interface/syslinux
parent[efi] Fix link order for elf2efi (diff)
downloadipxe-2aad3fab233f0235f9a8f677ae7bb402f1647eb6.tar.gz
ipxe-2aad3fab233f0235f9a8f677ae7bb402f1647eb6.tar.xz
ipxe-2aad3fab233f0235f9a8f677ae7bb402f1647eb6.zip
[build] Use weak definitions instead of weak declarations
This removes the need for inline safety wrappers, marginally reducing the size penalty of weak functions, and works around an apparent binutils bug that causes undefined weak symbols to not actually be NULL when compiling with -fPIE (as EFI builds do). A bug in versions of binutils prior to 2.16 (released in 2005) will cause same-file weak definitions to not work with those toolchains. Update the README to reflect our new dependency on binutils >= 2.16. Signed-off-by: Joshua Oreman <oremanj@rwcr.net> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/i386/interface/syslinux')
-rw-r--r--src/arch/i386/interface/syslinux/comboot_call.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/arch/i386/interface/syslinux/comboot_call.c b/src/arch/i386/interface/syslinux/comboot_call.c
index b1489efd0..0c52b28a8 100644
--- a/src/arch/i386/interface/syslinux/comboot_call.c
+++ b/src/arch/i386/interface/syslinux/comboot_call.c
@@ -319,6 +319,20 @@ static __asmcall void int21 ( struct i386_all_regs *ix86 ) {
/**
+ * Dispatch PXE API call weakly
+ *
+ * @v ix86 Registers for PXE call
+ * @ret present Zero if the PXE stack is present, nonzero if not
+ *
+ * A successful return only indicates that the PXE stack was available
+ * for dispatching the call; it says nothing about the success of
+ * whatever the call asked for.
+ */
+__weak int pxe_api_call_weak ( struct i386_all_regs *ix86 __unused ) {
+ return -1;
+}
+
+/**
* SYSLINUX API
*/
static __asmcall void int22 ( struct i386_all_regs *ix86 ) {