2002-02-07 15:06:07

by Florin Iucha

[permalink] [raw]
Subject: SIS900 driver unresolved dependency crc32_be in 2.5.3

I have a K7S5A with onboard LAN.

I am compiling the driver (SIS900) as module and I have crc32 lib built
in the kernel. When I run "make modules_install" or "modprobe sis900"
afterwards I get

bear:~# modprobe sis900
/lib/modules/2.5.3-xfs-k7/kernel/drivers/net/sis900.o: unresolved symbol
crc32_be
/lib/modules/2.5.3-xfs-k7/kernel/drivers/net/sis900.o: insmod
/lib/modules/2.5.3-xfs-k7/kernel/drivers/net/sis900.o failed
/lib/modules/2.5.3-xfs-k7/kernel/drivers/net/sis900.o: insmod sis900
failed

Relevant portions of .config:

# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
CONFIG_SIS900=m
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set

#
# Library routines
#
CONFIG_CRC32=y
CONFIG_ZLIB_INFLATE=m
# CONFIG_ZLIB_DEFLATE is not set

florin

--

"If it's not broken, let's fix it till it is."

41A9 2BDE 8E11 F1C5 87A6 03EE 34B3 E075 3B90 DFE4


Attachments:
(No filename) (890.00 B)
(No filename) (232.00 B)
Download all attachments

2002-02-07 19:33:02

by Matt Domsch

[permalink] [raw]
Subject: RE: SIS900 driver unresolved dependency crc32_be in 2.5.3

> /lib/modules/2.5.3-xfs-k7/kernel/drivers/net/sis900.o:
> unresolved symbol crc32_be

Ahh, yes. I see it now.

CONFIG_SIS900=m
CONFIG_CRC32=y

The makefile rules took the most stringent of =m and =y and made it =y.
But, nothing CONFIG_XXX=y in vmlinux needs the crc32 functions, so the
linker threw the code away.

Partial solution: CONFIG_CRC32=m

Is there a better way to handle this type of situation? Personally, I like
leaving CONFIG_CRC32=m set always (assuming you've got modules), and let the
makefile rules set it to =y if something else =y needs it.

Thanks,
Matt

--
Matt Domsch
Sr. Software Engineer
Dell Linux Solutions http://www.dell.com/linux
#1 US Linux Server provider with 24.5% (IDC Dec 2001)
#2 Worldwide Linux Server provider with 18.2% (IDC Dec 2001)