Re: porting driver to 2.6, still unknown relocs... :(

From: Randy.Dunlap
Date: Wed Aug 27 2003 - 10:19:14 EST


On Wed, 27 Aug 2003 15:38:26 +0200 LGW <large@xxxxxxxxxxxxxx> wrote:

| Hi again.
|
| As I described before, I try to port an audio driver from 2.4.x to 2.6.x.
|
| It compiles, but on load I get "module snd_echoaudio: Unknown
| relocation: 0" from dmesg.
|
| I looked into arch/*/kernel/module.c, and this error appears if the
| loaded module contains a relocation other than R_386_32 or R_386_PC32
| (for intel).
|
| Now I wonder, what would be an relocation type 0? The printk should also
| print the type in clear text I think, but it just prints 0. 0 also does
| not look very much like a valid value at all, or does it?

Maybe g++ generates something different?
Are parts of your driver in c++?

| These are the commands used to build the modules (taken from the .*.cmd
| files):
|
| // for the main module file:
| gcc -Wp,-MD,sound/pci/echoaudio/.echoaudio.o.d -Wall -Wstrict-prototypes
| -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -pipe
| -mpreferred-stack-boundary=2 -march=athlon
| -Iinclude/asm-i386/mach-default -D__KERNEL__ -Iinclude -Wall
| -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
| -pipe -mpreferred-stack-boundary=2 -march=athlon
| -Iinclude/asm-i386/mach-default -nostdinc -iwithprefix include -DMODULE
| -I/usr/include -Isound/pci/echoaudio/DSP -Isound/pci/echoaudio/ASIC
| -DGINA_20 -DECHO_LINUX -DECHOGALS_FAMILY -DKBUILD_BASENAME=echoaudio
| -DKBUILD_MODNAME=snd_echoaudio -c
| -o sound/pci/echoaudio/echoaudio.o sound/pci/echoaudio/echoaudio.c
|
| // for the c++ helper files:
| g++ -fno-rtti -Wall -Wstrict-prototypes -Wno-trigraphs -O2
| -fno-strict-aliasing -pipe -mpreferred-stack-boundary=2 -march=athlon
| -Iinclude/asm-i386/mach-default -D__KERNEL__ -Iinclude -Wall
| -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -nostdinc
| -iwithprefix include -DMODULE -Isound/pci/echoaudio/DSP
| -Isound/pci/echoaudio/ASIC -DGINA_20 -DECHO_LINUX -DECHOGALS_FAMILY
| -DKBUILD_BASENAME=echoaudio -DKBUILD_MODNAME=snd_echoaudio
| -I/usr/include -o $@.o $@.cpp
|
| // linking echoaudio.o
| ld -m elf_i386 -r -o sound/pci/echoaudio/snd-echoaudio.o
| sound/pci/echoaudio/echoaudio.o sound/pci/echoaudio/OsSupportLinux.o
| sound/pci/echoaudio/CDaffyDuck.o sound/pci/echoaudio/CEchoGals_info.o
| sound/pci/echoaudio/CEchoGals_transport.o
| sound/pci/echoaudio/CPipeOutCtrl.o sound/pci/echoaudio/CEchoGals_mixer.o
| sound/pci/echoaudio/CMidiInQ.o sound/pci/echoaudio/CEchoGals_midi.o
| sound/pci/echoaudio/CEchoGals_power.o sound/pci/echoaudio/CEchoGals.o
| sound/pci/echoaudio/CLineLevel.o sound/pci/echoaudio/CMonitorCtrlL.o
| sound/pci/echoaudio/CChannelMask.o
| sound/pci/echoaudio/CGdDspCommObject.o
| sound/pci/echoaudio/CDspCommObject.o
| sound/pci/echoaudio/CGinaDspCommObject.o sound/pci/echoaudio/CGina.o
|
| // linking snd-echoaudio.o
| ld -m elf_i386 -r -o sound/pci/echoaudio/snd-echoaudio.o
| sound/pci/echoaudio/echoaudio.o sound/pci/echoaudio/OsSupportLinux.o
| sound/pci/echoaudio/CDaffyDuck.o sound/pci/echoaudio/CEchoGals_info.o
| sound/pci/echoaudio/CEchoGals_transport.o
| sound/pci/echoaudio/CPipeOutCtrl.o sound/pci/echoaudio/CEchoGals_mixer.o
| sound/pci/echoaudio/CMidiInQ.o sound/pci/echoaudio/CEchoGals_midi.o
| sound/pci/echoaudio/CEchoGals_power.o sound/pci/echoaudio/CEchoGals.o
| sound/pci/echoaudio/CLineLevel.o sound/pci/echoaudio/CMonitorCtrlL.o
| sound/pci/echoaudio/CChannelMask.o
| sound/pci/echoaudio/CGdDspCommObject.o
| sound/pci/echoaudio/CDspCommObject.o
| sound/pci/echoaudio/CGinaDspCommObject.o sound/pci/echoaudio/CGina.o
|
| // linking snd-echoaudio.ko
| ld -m elf_i386 -r -o sound/pci/echoaudio/snd-echoaudio.ko
| sound/pci/echoaudio/snd-echoaudio.o sound/pci/echoaudio/snd-echoaudio.mod.o
|
| I have no idea why those commands should lead to a file with broken
| relocations. Please help me...


--
~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/