2.5.56: Two global symbols "io"
I got the following compile error in 2.5.56:
<-- snip -->
...
ld -m elf_i386 -e stext -T arch/i386/vmlinux.lds.s
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/built-in.o --start-group usr/built-in.o arch/i386/kernel/built-in.o arch/i386/mm/built-in.o arch/i386/mach-default/built-in.o kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o crypto/built-in.o lib/lib.a arch/i386/lib/lib.a drivers/built-in.o sound/built-in.o arch/i386/math-emu/built-in.o arch/i386/pci/built-in.o arch/i386/oprofile/built-in.o net/built-in.o --end-group -o .tmp_vmlinux1
sound/built-in.o(.data+0x7b30): multiple definition of `io' drivers/built-in.o(.data+0x738a0):
...
ld: Warning: size of symbol `io' changed from 68 to 4 in sound/built-in.o
...
make: *** [.tmp_vmlinux1] Error 1
<-- snip -->
The offending files are:
sound/oss/awe_wave.c
drivers/net/wan/cosa.c
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedAdrian Bunk wrote:
: I got the following compile error in 2.5.56:
:
[...]
: sound/built-in.o(.data+0x7b30): multiple definition of `io'
: drivers/built-in.o(.data+0x738a0):
: ...
: ld: Warning: size of symbol `io' changed from 68 to 4 in sound/built-in.o : ...
: make: *** [.tmp_vmlinux1] Error 1
[...]
: The offending files are:
: sound/oss/awe_wave.c
: drivers/net/wan/cosa.c
Just change it to "static". This has been reported before
by Arnd Bergmann from the Kernel Janitors Project. However: cosa.c can be built as a module only. Linus, please apply this.
From: Arnd Bergmann <[email protected]>
drivers/net/wan/cosa.c renamed from drivers/net/wan/cosa.c.orig +2 -2
@@ -227,8 +227,8 @@/* NOTE: DMA is not autoprobed!!! */ static int dma[MAX_CARDS +1 ] = {1 ,7 ,1 ,7 ,1 ,7 ,1 ,7 ,0 , };#else -int io[MAX_CARDS +1 ] = {0 , }; -int dma[MAX_CARDS +1 ] = {0 , }; +static int io[MAX_CARDS +1 ]; +static int dma[MAX_CARDS +1 ];#endif /* IRQ can be safely autoprobed */ static int irq[MAX_CARDS +1 ] = {-1 ,-1 ,-1 ,-1 ,-1 ,-1 ,0 , };
-Yenya
Signature · 5 lines
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839 Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/ Czech Linux Homepage: http://www.linux.cz/ |
|-- If you start doing things because you hate others and want to screw --|
|-- them over the end result is bad. --Linus Torvalds to the BBC News --|Quoted 4 lines · Jan Yenya Kasprzak
...
by Arnd Bergmann from the Kernel Janitors Project. However:cosa.ccan be built as a module only.
...
Ups, sorry, that was again the "Kconfig doesn't handle && m in kernels without module support" bug (#269 at bugzilla.kernel.org).
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed