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

From: LGW
Date: Wed Aug 27 2003 - 08:43:54 EST


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?

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

thanks,
Lars

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