Re: Latest Debian package online (including sources)
Bas van Schaik <[email protected]> Mon, 03 Jul 2006 20:52:49 +0200
| Newsgroups | gmane.linux.enbd.general |
|---|---|
| Message-ID | <[email protected]> |
Peter T. Breuer wrote: > "Also sprach Bas van Schaik:" > [Charset ISO-8859-1 unsupported, filtering to ASCII...] > >>>debian:/var/cache/apt/archives# modprobe enbd >>>FATAL: Error inserting enbd (/lib/modules/2.6.16-2-686/enbd/enbd.ko): Unknown symbol in module, or unknown parameter (see dmesg) >> >>And dmesg says: >> >>>enbd: Unknown symbol strcpy > > > strcpy is not used in my code. > > % find kernel/linux-2.6.x/ -type f | xargs grep strcpy > betty:/usr/oboe/ptb/lang/c/nbd/nbd-2.4.33% > > >>Don't have time to investigate it right now, but please tell me the >>solution when you know! > > > If it's been introduced, you'll have to tell me how. Show me the > compile lines used for compiling the enbd.ko components and I'll tell > you what to do next. Or, anyway, you can do something like nm > --print-file-name *.o | grep -w strcpy in the place where the .o files > are compiled to see what component has had the strcpy introduced into > it. Then show me the compile line for that. I didn't introduce it, and indeed, I can't find the string "strcpy" in the module sources. Here's the compile output (just a make "module"): > /bin/sh: line 0: [: -lt: unary operator expected > make[1]: Entering directory `/usr/src/linux-headers-2.6.16-2-686' > *** Warning: Overriding SUBDIRS on the command line can cause > *** inconsistencies > mkdir -p /tmp/linux-2.6.x/.tmp_versions > make -f /usr/src/linux-headers-2.6.16-2-686/scripts/Makefile.build obj=/tmp/linux-2.6.x/drivers/block/enbd > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_base.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_base)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_base.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_base.c > /tmp/linux-2.6.x/drivers/block/enbd/enbd_base.c: In function 'enbd_ioctl': > /tmp/linux-2.6.x/drivers/block/enbd/enbd_base.c:4520: warning: pointer targets in passing argument 1 of 'remote_ioctl->convert_inplace' differ in signedness > /tmp/linux-2.6.x/drivers/block/enbd/enbd_base.c: At top level: > /tmp/linux-2.6.x/drivers/block/enbd/enbd_base.c:4628: warning: 'enbd_read_block_0' defined but not used > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_ioctl_stub.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_ioctl_stub)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_ioctl_stub.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl_stub.c > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_seqno.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_seqno)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_seqno.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_seqno.c > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_md.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_md)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_md.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_md.c > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_speed.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_speed)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_speed.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_speed.c > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_proc.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_proc)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_proc.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_proc.c > ld -m elf_i386 -r -o /tmp/linux-2.6.x/drivers/block/enbd/enbd.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_base.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl_stub.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_seqno.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_md.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_speed.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_proc.o > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_ioctl.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_ioctl)" -D"KBUILD_MODNAME=KBUILD_STR(enbd_ioctl)" -c -o /tmp/linux-2.6.x/drivers/block/enbd/.tmp_enbd_ioctl.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.c > Building modules, stage 2. > make -rR -f /usr/src/linux-headers-2.6.16-2-686/scripts/Makefile.modpost VPATH=/usr/src/linux-headers-2.6.16-2-686 > scripts/mod/modpost -m -o /tmp/Module.symvers /tmp/linux-2.6.x/drivers/block/enbd/enbd.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.o > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd.mod.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd)" -D"KBUILD_MODNAME=KBUILD_STR(enbd)" -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -c -o /tmp/linux-2.6.x/drivers/block/enbd/enbd.mod.o /tmp/linux-2.6.x/drivers/block/enbd/enbd.mod.c > ld -m elf_i386 -r -o /tmp/linux-2.6.x/drivers/block/enbd/enbd.ko /tmp/linux-2.6.x/drivers/block/enbd/enbd.o /tmp/linux-2.6.x/drivers/block/enbd/enbd.mod.o > gcc -I/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include -Wp,-MD,/tmp/linux-2.6.x/drivers/block/enbd/.enbd_ioctl.mod.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -msoft-float -march=i686 -Iinclude/asm-i386/mach-default -Os -fomit-frame-pointer -Wdeclaration-after-statement -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(enbd_ioctl)" -D"KBUILD_MODNAME=KBUILD_STR(enbd_ioctl)" -DMODULE -I"/home/bas/temp/modules/enbd-module/kernel/linux-2.6.x/include" -c -o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.mod.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.mod.c > ld -m elf_i386 -r -o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.ko /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.o /tmp/linux-2.6.x/drivers/block/enbd/enbd_ioctl.mod.o > make[1]: Leaving directory `/usr/src/linux-headers-2.6.16-2-686' I've noticed the weird "unary operator expected" error, but can't find the cause of it. There's only line in your code (somewhere in kernel/Makefile) which contains the "-lt" test, but the error keeps appearing even if this line is commented out. I've also noticed the build warnings, but I don't think those can cause the "unknown symbol"-error. I hope you can tell me what to do, because I really don't know... I'v executed nm ask you requested: > $ nm -l --debug-syms --print-file-name /tmp/*.ko | grep strcpy > /tmp/enbd.ko: U strcpy enbd_proc.c:0 Note that I didn't change anything in the upstream sources! -- Bas