Re: [PATCH] 2.4.20 unresolved symbols with K7/3DNOW

From: Keith Owens (kaos@ocs.com.au)
Date: Sat Mar 22 2003 - 23:10:57 EST


On Sun, 23 Mar 2003 04:49:35 +0100,
"dose" <dose@infernum.com> wrote:
>This one seems to have been around for quite a while (2.4.0-textX ?)...when
>compiling with CONFIG_MK7=y ("Athlon/Duron/K7" as Processor family) a lot of
>modules aren't able to resolve the symbol _mmx_memcpy. This is caused by
>CONFIG_X86_USE_3DNOW=y and the problem lies in a wrong symbol export in
>arch/i386/kernel/i386_ksyms.c - I wonder why this still hasn't been fixed as
>it doesn't seem like a hard thing to do for someone who's into kernel
>patching...being new to that, it took me about 3 hours.
>
>diff -urN linux-2.4.20/arch/i386/kernel/i386_ksyms.c.orig
>linux-2.4.20/arch/i386/kernel/i386_ksyms.c
>--- linux-2.4.20/arch/i386/kernel/i386_ksyms.c.orig Sun Mar 23 04:24:06
>2003
>+++ linux-2.4.20/arch/i386/kernel/i386_ksyms.c Sun Mar 23 04:24:18 2003
>@@ -120,7 +120,7 @@
> #endif
>
> #ifdef CONFIG_X86_USE_3DNOW
>-EXPORT_SYMBOL(_mmx_memcpy);
>+EXPORT_SYMBOL_NOVERS(_mmx_memcpy);
> EXPORT_SYMBOL(mmx_clear_page);
> EXPORT_SYMBOL(mmx_copy_page);
> #endif

2.4 has a broken build system. With CONFIG_MODVERSIONS=y, you must
make mrproper when changing any config option that changes the list of
exported symbols. Adding _NOVERS is just papering over the cracks in
the kernel build system, the only time _NOVERS should be used is when
the exported symbol is in ASM code and not in C.

-
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 : Sun Mar 23 2003 - 22:00:43 EST