I've tried to update my kernel from gentoo-sources-2.4.20-r1 to r2. I used exactly the same config file, but when compiling it failed to build cs4281 sound card. It was complaining about unresolved symbols in cs4281* someting. When I tried to build it as a module the make modules step was passed fine, but at the modules_install step it gave the same unresolved symbol error in cs4281* . I would like to point out once more that this config worked for me on r1 release. Reproducible: Always Steps to Reproduce: 1. Select support of CS4281 sound card to be compiled into kernel. 2. Run make dep && make clean bzImage 3. Select support of CS4281 sound card to be compiled as a module. 4. Run make dep && make clean bzImage modules modules_install Actual Results: Either bzImage or modules_install steps fail with unresolved symbols error in the cs4281 module. Expected Results: Obvious: to get kernel compiled. Portage 2.0.47-r10 (default-x86-1.4, gcc-3.2.2, glibc-2.3.1-r4) ================================================================= System uname: 2.4.20 i686 Celeron (Coppermine) GENTOO_MIRRORS="http://distro.ibiblio.org/pub/Linux/distributions/gentoo http://gentoo.oregonstate.edu" CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config /usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config /usr/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="" USE="x86 3dnow encode libg++ mikmod gdbm berkdb slang readline sdl tcpd perl python opengl -aalib alsa apm arts avi -bonobo cdr crypt cups dga directfb -dvd -esd fbcon flash gif -gnome gphoto2 gpm gtk -gtk2 -gtkhtml -guile imlib -java jpeg kde lcms -libwww mmx motif mozilla mpeg ncurses nls odbc oggvorbis oss pam pcmcia pdflib png pnp -qt quicktime samba spell ssl -tcltk tetex truetype usb wmf X xml xml2 xmms xv zlib -svga" COMPILER="gcc3" CHOST="i686-pc-linux-gnu" CFLAGS="-march=i686 -O3 -pipe" CXXFLAGS="-march=i686 -O3 -pipe" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache"
*** Bug 18582 has been marked as a duplicate of this bug. ***
Bug 18582 was (correctly) marked as a dup, but it contains some more info which I've copied here: Compiling gentoo-sources-2.4.20 (r1 & r2) with the cs4281 sound module enabled, gives a cs4281.o that contains an undefined __bad_udelay symbol. Digging a bit deeper, this seems to be a bug in the cs4281 driver itself which is exposed by compiling with -finline-functions on (the default with -03). The function delayus() in this module gets inlined, exposing some calls to udelay() with over-long timeouts. I can work around it by turning the optimisation level in the kernel down to - O2.
In Bug 18582 it says that the problem exists with both r1 & r2, however, I DID compile r1 release with no trouble whatsoever.
I'll wave my hands and offer a possible explanation for that. I suspect the bug is more dependent on gcc version than kernel version. As I mentioned in #18582, the bug seems to be exposed by some pretty aggressive optimisation done on the code in cs4281m.c. Did you perchance upgrade gcc between 2.4.20-gentoo-r1 and 2.4.20-gentoo-r2?
get the patch from bug 18969. apply, and this should fix the unresolved symbols issue. Jay