Patch attached - with this, NetBSD boots off the USB stick. I've also
fixed multiboot64 which was broken in a similar way, but is untested.

Assuming this looks good, can we get this commited and pulled up to the
10.x branch?

-- 
Paul Ripke
"Great minds discuss ideas, average minds discuss events, small minds
 discuss people."
-- Disputed: Often attributed to Eleanor Roosevelt. 1948.
diff --git a/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c 
b/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
index feb51595eda2..b34505461bc4 100644
--- a/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
+++ b/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
@@ -30,14 +30,14 @@
 
 #include <sys/bootblock.h>
 
-void startprog64_start(physaddr_t, physaddr_t, physaddr_t, u_long,
+extern void startprog64_start(physaddr_t, physaddr_t, physaddr_t, u_long,
     void *, physaddr_t);
-extern void (*startprog64)(physaddr_t, physaddr_t, physaddr_t, u_long,
+void (*startprog64)(physaddr_t, physaddr_t, physaddr_t, u_long,
     void *, physaddr_t);
 extern u_int startprog64_size;
 
-void multiboot64_start(physaddr_t, physaddr_t, uint32_t);
-extern void (*multiboot64)(physaddr_t, physaddr_t, uint32_t);
+extern void multiboot64_start(physaddr_t, physaddr_t, uint32_t);
+void (*multiboot64)(physaddr_t, physaddr_t, uint32_t);
 extern u_int multiboot64_size;
 
 void
diff --git a/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S 
b/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S
index 96757aeccc03..cb040d27b86a 100644
--- a/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S
+++ b/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S
@@ -6,10 +6,6 @@
 #define DATA_SEGMENT    0x10
 
        .align  16
-       .globl _C_LABEL(multiboot64)
-_C_LABEL(multiboot64):
-       .quad 0
-
        .globl _C_LABEL(multiboot64_size)
 _C_LABEL(multiboot64_size):
        .long multiboot64_end - _C_LABEL(multiboot64_start)
diff --git a/sys/arch/i386/stand/efiboot/bootx64/startprog64.S 
b/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
index 050e3068a243..0c2643a7254d 100644
--- a/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
+++ b/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
@@ -66,10 +66,6 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #define        DATA_SEGMENT    0x10
 
        .align  16
-       .globl _C_LABEL(startprog64)
-_C_LABEL(startprog64):
-       .quad 0
-
        .globl _C_LABEL(startprog64_size)
 _C_LABEL(startprog64_size):
        .long startprog64_end - _C_LABEL(startprog64_start)

Reply via email to