2003-01-12 13:04:02

by Adrian Bunk

[permalink] [raw]
Subject: 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

--

"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


2003-01-13 07:49:45

by Jan Kasprzak

[permalink] [raw]
Subject: Re: 2.5.56: Two global symbols "io"

Adrian 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]>
--- trivial-2.5-bk/drivers/net/wan/cosa.c.orig 2003-01-06 14:08:20.000000000 +1100
+++ trivial-2.5-bk/drivers/net/wan/cosa.c 2003-01-06 14:08:20.000000000 +1100
@@ -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

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

2003-01-13 10:01:33

by Adrian Bunk

[permalink] [raw]
Subject: Re: 2.5.56: Two global symbols "io"

On Mon, Jan 13, 2003 at 08:55:18AM +0100, Jan Yenya Kasprzak wrote:

>...
> by Arnd Bergmann from the Kernel Janitors Project. However: cosa.c
> can 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

--

"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