Skip to contentSkip to conversation

Compile error (starfire ethernet) on 2.5.25 for crc32_le

DISCUSSION Martin J. Bligh 2 participants 3 messages Jul 10, 2002 – Jul 11, 2002 Network drivers

lore
Share & tools
lore
#0 lore raw

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.

#1 lore raw
Quoted 10 lines · Martin J. Bligh

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

#2 lore raw
Quoted 7 lines
Quoted 7 lines

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)
Quoted 7 lines
Quoted 3 lines

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.

drivers/net/Makefile.lib +1 -1
@@ -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