2002-07-10 23:19:15

by Martin J. Bligh

[permalink] [raw]
Subject: Compile error (starfire ethernet) on 2.5.25 for crc32_le

I get the following compile error if I try to use the starfire
driver.

ld -m elf_i386 -T arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/init.o --start-group arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o /home/mbligh/linux-2.5.25/arch/i386/lib/lib.a lib/lib.a /home/mbligh/linux-2.5.25/arch/i386/lib/lib.a drivers/built-in.o sound/sound.o arch/i386/pci/pci.o net/network.o --end-group -o vmlinux
drivers/built-in.o: In function `set_rx_mode':
drivers/built-in.o(.text+0x2138c): undefined reference to `crc32_le'
make: *** [vmlinux] Error 1

starfire.c calls ether_crc_le which is defined in include/linux/crc32.h as
#define ether_crc_le(length, data) crc32_le(~0, data, length)

crc32_le is defined in lib/crc32.c .... which is only compiled if CONFIG_CRC32
is set ... setting this fixes the problem ... shouldn't drivers that need this turn it
on automatically somehow?

M.


2002-07-10 23:44:07

by Jeff Garzik

[permalink] [raw]
Subject: Re: Compile error (starfire ethernet) on 2.5.25 for crc32_le

Martin J. Bligh wrote:
> drivers/built-in.o: In function `set_rx_mode':
> drivers/built-in.o(.text+0x2138c): undefined reference to `crc32_le'
> make: *** [vmlinux] Error 1
>
> starfire.c calls ether_crc_le which is defined in include/linux/crc32.h as
> #define ether_crc_le(length, data) crc32_le(~0, data, length)
>
> crc32_le is defined in lib/crc32.c .... which is only compiled if CONFIG_CRC32
> is set ... setting this fixes the problem ... shouldn't drivers that need this turn it
> on automatically somehow?

They do already. drivers/net/Makefile.lib. The culprit is a typo.
Wanna submit the obvious patch that does
s/CONFIG_STARFIRE/CONFIG_ADAPTEC_STARFIRE/ in dr/ne/Makefile.lib?

Jeff



2002-07-11 00:04:18

by Martin J. Bligh

[permalink] [raw]
Subject: Re: Compile error (starfire ethernet) on 2.5.25 for crc32_le

>> drivers/built-in.o: In function `set_rx_mode':
>> drivers/built-in.o(.text+0x2138c): undefined reference to `crc32_le'
>> make: *** [vmlinux] Error 1
>>
>> starfire.c calls ether_crc_le which is defined in include/linux/crc32.h as
>> # define ether_crc_le(length, data) crc32_le(~0, data, length)
>>
>> crc32_le is defined in lib/crc32.c .... which is only compiled if CONFIG_CRC32
>> is set ... setting this fixes the problem ... shouldn't drivers that need this turn it
>> on automatically somehow?
>
> They do already. drivers/net/Makefile.lib. The culprit is a typo. Wanna submit
> the obvious patch that does s/CONFIG_STARFIRE/CONFIG_ADAPTEC_STARFIRE/
> in dr/ne/Makefile.lib?

Done. Tested. Works. Thankyou!
Could you forward to Linus so it looks blessed?

Thanks,

M.

--- virgin-2.5.25/drivers/net/Makefile.lib Fri Jul 5 16:42:33 2002
+++ linux-2.5.25-starfire/drivers/net/Makefile.lib Wed Jul 10 16:55:07 2002
@@ -25,7 +25,7 @@
obj-$(CONFIG_PCNET32) += crc32.o
obj-$(CONFIG_SIS900) += crc32.o
obj-$(CONFIG_SMC9194) += crc32.o
-obj-$(CONFIG_STARFIRE) += crc32.o
+obj-$(CONFIG_ADAPTEC_STARFIRE) += crc32.o
obj-$(CONFIG_SUNBMAC) += crc32.o
obj-$(CONFIG_SUNDANCE) += crc32.o
obj-$(CONFIG_SUNGEM) += crc32.o