Re: 2.5.14-dj1: misc.o: undefined reference to `__io_virt_debug'

From: Martin J. Bligh (Martin.Bligh@us.ibm.com)
Date: Tue May 07 2002 - 18:42:25 EST


>> Compiling misc.c with -O0 gives a better error message:
>>
>> <-- snip -->
>>
>> ...
>> ld -m elf_i386 -Ttext 0x100000 -e startup_32 -o bvmlinux head.o misc.o
>> piggy.o
>> misc.o: In function `outb_quad':
>> misc.o(.text+0x289c): undefined reference to `__io_virt_debug'
>> make[2]: *** [bvmlinux] Error 1
>> make[2]: Leaving directory
>> `/home/bunk/linux/kernel-2.5/linux-2.5.14-modular/arch/i386/boot/compressed'
>
> Seems like you're not linking in lib/iodebug.c for some reason.
>
> outb_quad calls readb, which calls __io_virt, which calls __io_virt_debug,
> which is defined in iodebug.c

Does this fix it ? (completely untested, and against an old version ... sorry).

--- virgin-2.5.9-dj1/arch/i386/boot/compressed/misc.c Mon Apr 22 15:29:26 2002
+++ virgin-2.5.9-dj1/arch/i386/boot/compressed/misc.c.local Tue May 7 16:39:39 2002
@@ -202,10 +202,10 @@
         SCREEN_INFO.orig_y = y;
 
         pos = (x + cols * y) * 2; /* Update cursor position */
- outb_p(14, vidport);
- outb_p(0xff & (pos >> 9), vidport+1);
- outb_p(15, vidport);
- outb_p(0xff & (pos >> 1), vidport+1);
+ outb_p_local(14, vidport);
+ outb_p_local(0xff & (pos >> 9), vidport+1);
+ outb_p_local(15, vidport);
+ outb_p_local(0xff & (pos >> 1), vidport+1);
 }
 
 static void* memset(void* s, int c, size_t n)
--- virgin-2.5.9-dj1/include/asm-i386/io.h Tue Apr 23 14:19:39 2002
+++ virgin-2.5.9-dj1/include/asm-i386/io.h.local Tue May 7 16:38:56 2002
@@ -371,6 +371,15 @@
         __asm__ __volatile__("in" #bwl " %w1, %" #bw "0" : "=a"(value) : "Nd"(port)); \
         return value; \
 } \
+static inline void out##bwl##_local_p(unsigned type value, int port) { \
+ out##bwl##_local(value, port); \
+ slow_down_io(); \
+} \
+static inline unsigned type in##bwl##_local_p(int port) { \
+ unsigned type value = in##bwl##_local(port); \
+ slow_down_io(); \
+ return value; \
+} \
 __BUILDIO(bwl,bw,type) \
 static inline void out##bwl##_p(unsigned type value, int port) { \
         out##bwl(value, port); \

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue May 07 2002 - 22:00:31 EST