Summary: | insmod failed for alsa-drivers because of unresolved symbol strlcpy | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | fasa <fasa> |
Component: | Current packages | Assignee: | Jeremy Huddleston (RETIRED) <eradicator> |
Status: | RESOLVED FIXED | ||
Severity: | minor | CC: | sound, x86-kernel |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
fasa
2004-03-25 13:28:02 UTC
I don't use 0.9.8, and we're going to be moving 1.0.3 into stable soon, so could you try installing alsa-driver-1.0.3 to see if that fixes the problem? /lib/modules/2.4.25-gentoo/kernel/sound/acore $ readelf -s snd.o | grep strlcpy 391: 000060c0 99 FUNC GLOBAL DEFAULT 1 snd_compat_strlcpy_Rb4409 No this doesn't solve the problem I keep geeting the strlcpy warning for example: In file included from seq_instr.c:1: ../../alsa-kernel/core/seq/seq_instr.c: In function `instr_put': ../../alsa-kernel/core/seq/seq_instr.c:481: warning: implicit declaration of function `strlcpy' depmod gives : siri alsa-driver # depmod -a depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/oss/snd-mixer-oss.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/seq/oss/snd-seq-oss.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/seq/snd-seq-device.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/seq/snd-seq-instr.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/seq/snd-seq.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/snd-hwdep.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/snd-pcm.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/snd-rawmidi.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/snd-timer.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/acore/snd.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/drivers/opl3/snd-opl3-synth.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/i2c/other/snd-ak4117.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/i2c/snd-i2c.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/isa/ad1848/snd-ad1848-lib.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/isa/sb/snd-sb-common.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/isa/sb/snd-sb16-csp.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/isa/snd-sscape.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/pci/emu10k1/snd-emu10k1.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/usb/snd-usb-audio.o depmod: *** Unresolved symbols in /lib/modules/2.4.25-gentoo/kernel/sound/usb/us428/snd-usb-us428. I alsao checked my kernel config. In the sound section I only have the "sound card support" in module that's all ... readelf give's : siri acore # readelf -s snd.o | grep strlcpy 306: 00000000 0 NOTYPE GLOBAL DEFAULT UND strlcpy Do you have CONFIG_HAVE_STRLCPY in config.h? /var/tmp/portage/alsa-driver-1.0.3/work/alsa-driver-1.0.3/include $ grep -C 5 strlcpy * adriver.h-#ifndef MODULE_LICENSE adriver.h-#define MODULE_LICENSE(license) adriver.h-#endif adriver.h- adriver.h-#ifndef CONFIG_HAVE_STRLCPY adriver.h:size_t snd_compat_strlcpy(char *dest, const char *src, size_t size); adriver.h:#define strlcpy(dest, src, size) snd_compat_strlcpy(dest, src, size) adriver.h-size_t snd_compat_strlcat(char *dest, const char *src, size_t size); adriver.h-#define strlcat(dest, src, size) snd_compat_strlcat(dest, src, size) adriver.h-#endif adriver.h- adriver.h-#ifndef CONFIG_HAVE_SNPRINTF In config.h I have: #define CONFIG_HAVE_STRLCPY 1 my config log show the following: configure:5187: checking for strlcpy configure:5216: gcc -c -Wall -Werror -march=i686 -O3 -pipe -fomit-frame-pointer -w -I/usr/src/linux/include conftest.c >&5 configure:5219: $? = 0 configure:5222: test -s conftest.o configure:5225: $? = 0 configure:5227: result: "yes" But I have found where the bug does come from. This so dumb that I should thought of it... When I compile i use the flag "-w". According to gcc : "-w Inhibit all warning messages." I did tehc ommand line manually "configure:5216: gcc -c -Wall -Werror -march=i686 -O3 -pipe -fomit-frame-pointer -w -I/usr/src/linux/include conftest.c " effectively -w inhibit all warnings but it also change the return value !!!! If i remove the -w switch everething works correctly. Sorry for wasting your time :( It's fixed now has told above ... Because og the -w flag of gcc |