2003-05-10 01:08:36

by Olivier Dragon

[permalink] [raw]
Subject: Linking error in sounddrivers.o (2.4.20)

Greetings,

In the 2.4.20 kernel I have encountered a linking error happening in
sounddrivers.o. It happens with the following config file when doing
"make bzImage". It first happened with a ck6 patched kernel but I have
verified on two different computers (laptop running knoppix 3.2 and
desktop running Debian unstable) that it also happens in the unpatched
vanilla kernel.

http://dragon.homelinux.org/linux-2.4.20-ck6-config

Here is the few last lines before the error occurs, during a
"make bzImage":
<<<<<<<<<<<<<<<<
ld -m elf_i386 -T /home/oli/src/linux2.4/linux-laptop/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
drivers/acpi/acpi.o drivers/parport/driver.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/agp/agp.o drivers/ide/idedriver.o drivers/scsi/scsidrv.o drivers/cdrom/driver.o drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/video/video.o drivers/usb/usbdrv.o drivers/input/inputdrv.o \
net/network.o \
/home/oli/src/linux2.4/linux-laptop/arch/i386/lib/lib.a /home/oli/src/linux2.4/linux-laptop/lib/lib.a /home/oli/src/linux2.4/linux-laptop/arch/i386/lib/lib.a \
--end-group \
-o vmlinux
drivers/sound/sounddrivers.o(.text.init+0x63a): In function `trident_probe':
: undefined reference to `pcigame_attach'
make: *** [vmlinux] Error 1
>>>>>>>>>>>>>>>>>


Here is the output from ver_linux script on my desktop machine:
Linux trinity 2.4.20-ck6 #4 Fri Apr 25 15:20:53 EDT 2003 i686 unknown unknown GNU/Linux
Gnu C 3.2.3
Gnu make 3.80
util-linux 2.11z
mount 2.11z
modutils 2.4.21
e2fsprogs 1.33
Linux C Library 2.3.1
Dynamic linker (ldd) 2.3.1
Procps 3.1.8
Net-tools 1.60
Console-tools 0.2.3
Sh-utils 5.0
Modules Loaded radeon


If I have forgotten any information please let me know and I will gladly
and promptly answer.

Thank you very much,
-Olivier


2003-05-10 07:39:48

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: Linking error in sounddrivers.o (2.4.20)

On Fri, May 09, 2003 at 09:28:05PM -0400, Olivier Dragon wrote:
> Greetings,
>
> In the 2.4.20 kernel I have encountered a linking error happening in
> sounddrivers.o. It happens with the following config file when doing
> "make bzImage". It first happened with a ck6 patched kernel but I have
> verified on two different computers (laptop running knoppix 3.2 and
> desktop running Debian unstable) that it also happens in the unpatched
> vanilla kernel.
>
> http://dragon.homelinux.org/linux-2.4.20-ck6-config

Does it still happen with 2.4.21-rc2? Also, could you please send me
in private the .config? I get a 504 gateway error when trying to wget
it.

> Gnu C 3.2.3

That's a fairly experimental kernel for compiling kernels. You might
want to stick with 2.95 for the time being.
--
Muli Ben-Yehuda
http://www.mulix.org


Attachments:
(No filename) (847.00 B)
(No filename) (189.00 B)
Download all attachments

2003-05-10 12:50:21

by Olivier Dragon

[permalink] [raw]
Subject: Re: Linking error in sounddrivers.o (2.4.20)

On Sat, May 10, 2003 at 10:52:20AM +0300, Muli Ben-Yehuda wrote:
> On Fri, May 09, 2003 at 09:28:05PM -0400, Olivier Dragon wrote:
> > In the 2.4.20 kernel I have encountered a linking error happening in
> > sounddrivers.o. It happens with the following config file when doing
> > "make bzImage". It first happened with a ck6 patched kernel but I have
> > verified on two different computers (laptop running knoppix 3.2 and
> > desktop running Debian unstable) that it also happens in the unpatched
> > vanilla kernel.
> >
> > http://dragon.homelinux.org/linux-2.4.20-ck6-config

Sorry about that. It's on my home machine and I turn it off at night to
save power (and money). It should be online all day.

> Does it still happen with 2.4.21-rc2? Also, could you please send me
> in private the .config? I get a 504 gateway error when trying to wget
> it.

Actually now I get a different error, and it happens before the final
linkage step at which I used to get an error. But I think it might be an
error with GCC. There's a little blurb about submitting a bug report.

> > Gnu C 3.2.3
>
> That's a fairly experimental kernel for compiling kernels. You might
> want to stick with 2.95 for the time being.

I've compiled quite a few kernels with a 3.2.x gcc and I've never run
into problems before. I'll change that to 2.95 and see what happens.

I've attached my .config to a private email following this one.

Thanks for your input,
-Olivier

--
__-/| ? ? |\-__
__--/ / \ (^^) / \ \--__
_-/ / / \ / ( ) / \ \ \-_
/ / / / ( ^^ ~ \ \ \ \
/ Oli Dragon [email protected] \
/ Sfwr Eng IV ( McMaster University \
/ / / __--_ ( ) __--__ \ \ \
| / / _/ \_ \_ \_ \ \ |
\/ / _/ \_ \_ \_ \ \/
\_/ / -\_\ \ \_/
\/ -) \/
*~
___--<****************>--___
[http://dragon.homelinux.org/]
~~~--<****************>--~~~

2003-05-10 13:11:05

by Olivier Dragon

[permalink] [raw]
Subject: Re: Linking error in sounddrivers.o (2.4.20)

On Sat, May 10, 2003 at 10:52:20AM +0300, Muli Ben-Yehuda wrote:
> Does it still happen with 2.4.21-rc2? Also, could you please send me
> in private the .config? I get a 504 gateway error when trying to wget
> it.
> That's a fairly experimental kernel for compiling kernels. You might
> want to stick with 2.95 for the time being.

Ok, I've compiled 2.4.21-rc2 (make dep; make bzImage) with 2.95 and I
got rid of the compilation error (most likely gcc bug) but I still get
the same linking error as previously mentioned. See below:

-Olivier

Linux trinity 2.4.20-ck6 #4 Fri Apr 25 15:20:53 EDT 2003 i686 unknown unknown GNU/Linux
Gnu C 2.95.4
Gnu make 3.80
util-linux 2.11z
mount 2.11z
modutils 2.4.21
e2fsprogs 1.33
Linux C Library 2.3.1
Dynamic linker (ldd) 2.3.1
Procps 3.1.8
Net-tools 1.60
Console-tools 0.2.3
Sh-utils 5.0
Modules Loaded radeon



gcc -D__KERNEL__ -I/home/oli/src/linux2.4/linux-laptop/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -malign-functions=4 -nostdinc -iwithprefix include -DKBUILD_BASENAME=mmx -c -o mmx.o mmx.c
rm -f lib.a
ar rcs lib.a checksum.o old-checksum.o delay.o usercopy.o getuser.o memcpy.o strstr.o mmx.o
make[2]: Leaving directory `/home/oli/src/linux2.4/linux-laptop/arch/i386/lib'
make[1]: Leaving directory `/home/oli/src/linux2.4/linux-laptop/arch/i386/lib'
ld -m elf_i386 -T /home/oli/src/linux2.4/linux-laptop/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
drivers/acpi/acpi.o drivers/parport/driver.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/char/agp/agp.o drivers/ide/idedriver.o drivers/scsi/scsidrv.o drivers/cdrom/driver.o drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/video/video.o drivers/usb/usbdrv.o drivers/media/media.o drivers/input/inputdrv.o \
net/network.o \
/home/oli/src/linux2.4/linux-laptop/arch/i386/lib/lib.a /home/oli/src/linux2.4/linux-laptop/lib/lib.a /home/oli/src/linux2.4/linux-laptop/arch/i386/lib/lib.a \
--end-group \
-o vmlinux
drivers/sound/sounddrivers.o(.text.init+0x823): In function `trident_probe':
: undefined reference to `pcigame_attach'
make: *** [vmlinux] Error 1


--
__-/| ? ? |\-__
__--/ / \ (^^) / \ \--__
_-/ / / \ / ( ) / \ \ \-_
/ / / / ( ^^ ~ \ \ \ \
/ Oli Dragon [email protected] \
/ Sfwr Eng IV ( McMaster University \
/ / / __--_ ( ) __--__ \ \ \
| / / _/ \_ \_ \_ \ \ |
\/ / _/ \_ \_ \_ \ \/
\_/ / -\_\ \ \_/
\/ -) \/
*~
___--<****************>--___
[http://dragon.homelinux.org/]
~~~--<****************>--~~~

2003-05-10 15:41:11

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: Linking error in sounddrivers.o (2.4.20)

On Sat, May 10, 2003 at 09:30:29AM -0400, Olivier Dragon wrote:
> On Sat, May 10, 2003 at 10:52:20AM +0300, Muli Ben-Yehuda wrote:
> > Does it still happen with 2.4.21-rc2? Also, could you please send me
> > in private the .config? I get a 504 gateway error when trying to wget
> > it.
> > That's a fairly experimental kernel for compiling kernels. You might
> > want to stick with 2.95 for the time being.
>
> Ok, I've compiled 2.4.21-rc2 (make dep; make bzImage) with 2.95 and I
> got rid of the compilation error (most likely gcc bug) but I still get
> the same linking error as previously mentioned. See below:

The linking error happens because you have

CONFIG_SOUND_TRIDENT=y
and
CONFIG_INPUT_PCIGAME=m

trident.c will call pcigame_attach(), which is either defined or a
nop, depending on whether CONFIG_INPUT_PCIGAME is defined or not. In
your .config it's defined, but as a module. So the call to
pcigame_attach() is trident is defined. But trident is built in, so
when the linker tries to link everything together, it fails because it
cannot find the code for pcigame_attach. It can't find it, since it's
compiled as a module, and thus not linked into the bzImage.

As a quick fix, you can either make trident a module, or make pcigame
built in, or remove pcigame, if you don't have a joystick
attached. This fairly ugly untested patch against 2.4.21-rc2 should
enforce the dependencies between trident and pcigame.

diff -Naur 2.4.21-rc2.vanilla/drivers/sound/Config.in 2.4.21-rc2.mx/drivers/sound/Config.in
--- 2.4.21-rc2.vanilla/drivers/sound/Config.in 2003-05-10 18:44:54.000000000 +0300
+++ 2.4.21-rc2.mx/drivers/sound/Config.in 2003-05-10 18:40:15.000000000 +0300
@@ -70,7 +70,14 @@
dep_tristate ' Au1000 Sound' CONFIG_SOUND_AU1000 $CONFIG_SOUND
fi

-dep_tristate ' Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' CONFIG_SOUND_TRIDENT $CONFIG_SOUND $CONFIG_PCI $CONFIG_INPUT_PCIGAME
+# This is fairly ugly. If pcigame is off, we have no dependency on it.
+# However, if it's on and modular, we need to be modular too
+if [ "$CONFIG_INPUT_PCIGAME" = "n" ]; then
+ dep_tristate ' Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' CONFIG_SOUND_TRIDENT $CONFIG_SOUND $CONFIG_PCI
+else
+ dep_tristate ' Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' CONFIG_SOUND_TRIDENT $CONFIG_SOUND $CONFIG_PCI $CONFIG_INPUT_PCIGAME
+fi
+

dep_tristate ' Support for Turtle Beach MultiSound Classic, Tahiti, Monterey' CONFIG_SOUND_MSNDCLAS $CONFIG_SOUND
if [ "$CONFIG_SOUND_MSNDCLAS" = "y" -o "$CONFIG_SOUND_MSNDCLAS" = "m" ]; then
--
Muli Ben-Yehuda
http://www.mulix.org


Attachments:
(No filename) (2.58 kB)
(No filename) (189.00 B)
Download all attachments