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. |