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

Martin J. Bligh (Martin.Bligh@us.ibm.com)
Tue, 07 May 2002 17:14:19 -0700


>>> 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).

There was a typo in this between outb_p_local and outb_local_p inconsistency
fixed below:

--- 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_local_p(14, vidport);
+ outb_local_p(0xff & (pos >> 9), vidport+1);
+ outb_local_p(15, vidport);
+ outb_local_p(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/