Bug 15632
Summary: | sd_mod cannot be loaded: unresolved symbols | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | Bernhard Ege <bme> |
Component: | kernel | Assignee: | Arjan van de Ven <arjanv> |
Status: | CLOSED DUPLICATE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | high | ||
Version: | 7.0 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2001-02-21 17:27:14 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Bernhard Ege
2000-08-07 12:52:54 UTC
I think I know what it is, and I think that it was fixed in some test kernels I built a few days ago. Please check and see if the kernels at ftp://people.redhat.com/johnsonm/testkernels/ fix the problem for you. I have downloaded the source, installed it, edited the SPEC file to only build the normal kernel, changed kernel-2.2.16-i386.config with my own (which compiles sd as a module), did a rpm -bc SPECS/kernel-2.2.spec and compiling proceeded until here: kgcc -D__KERNEL__ -I/usr/src/redhat/BUILD/linux/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2 -DCPU=686 -DMODULE -c -o sd.o sd.c {standard input}: Assembler messages: {standard input}:9: Warning: Ignoring changed section attributes for .modinfo sd.c: In function `cleanup_module': sd.c:1835: `major_gendisks' undeclared (first use in this function) sd.c:1835: (Each undeclared identifier is reported only once sd.c:1835: for each function it appears in.) make[2]: *** [sd.o] Error 1 make[2]: Leaving directory `/usr/src/redhat/BUILD/linux/drivers/scsi' make[1]: *** [_modsubdir_scsi] Error 2 make[1]: Leaving directory `/usr/src/redhat/BUILD/linux/drivers' make: *** [_mod_drivers] Error 2 Bad exit status from /var/tmp/rpm-tmp.94723 (%build) This is the same bug as 15233. I fixed it, did a "make bzImage" and "make modules". I then checked the sd_mod.o module and it did not require the blkelv_ioctl_R40cc2807 symbol anymore, just blkelv_ioctl. It still requires the req_finished_io. Both symbol are defined in the new System.map file. I will now install and reboot and let you know if it loads ok. Nope, it doesn't load. Here is the log: modprobe sd_mod /lib/modules/2.2.16-17.1/scsi/sd_mod.o: unresolved symbol req_finished_io /lib/modules/2.2.16-17.1/scsi/sd_mod.o: insmod /lib/modules/2.2.16-17.1/scsi/sd_mod.o failed /lib/modules/2.2.16-17.1/scsi/sd_mod.o: insmod sd_mod failed The blkelv_ioctl problem has gone, but req_finished_io is still missing. It does exist in System.map, but not in /proc/ksyms, even though it does exist in vmlinux (I am using arch/i386/boot/bzImage). These are my SCSI config lines: CONFIG_SCSI=m CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_SG=m CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_PPA=m CONFIG_SCSI_IZIP_EPP16=y CONFIG_SCSI_SYM53C416=m As far as I can tell, req_finished_io is defined in drivers/block/ll_rw_blk.c (.o) but is not shared. nm -s on drivers/block/block.a shows req_finished_io to be defined in ll_rw_blk.o. Is this enough info? regards, Bernhard Ege Still broken in 2.2.17-14. Needs only a one-line fix to export the symbol. (How hard can it be?) See also bug #19862. |