linux-mips
[Top] [All Lists]

Re: relocation truncated to fit

To: Kumba <kumba@gentoo.org>
Subject: Re: relocation truncated to fit
From: Ralf Baechle <ralf@linux-mips.org>
Date: Wed, 25 May 2005 14:07:41 +0100
Cc: Jerry <jerry@wicomtechnologies.com>, linux-mips <linux-mips@linux-mips.org>
In-reply-to: <429471EE.3090307@gentoo.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1399568766.20050525115143@wicomtechnologies.com> <20050525104905.GI4383@linux-mips.org> <429471EE.3090307@gentoo.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.4.1i
On Wed, May 25, 2005 at 08:39:10AM -0400, Kumba wrote:
> Date: Wed, 25 May 2005 08:39:10 -0400
> From: Kumba <kumba@gentoo.org>
> To:   Jerry <jerry@wicomtechnologies.com>
> CC:   Ralf Baechle <ralf@linux-mips.org>,
>       linux-mips <linux-mips@linux-mips.org>
> Subject: Re: relocation truncated to fit
> Content-Type: text/plain; charset=UTF-8;
> 
> Ralf Baechle wrote:
> > On Wed, May 25, 2005 at 11:51:43AM +0300, Jerry wrote:
> > 
> > 
> >>drivers/sound/sounddrivers.o: In function `sound_insert_unit':
> >>sound_core.c:(.text+0x1ac): undefined reference to `strcpy'
> >>sound_core.c:(.text+0x1ac): relocation truncated to fit: R_MIPS_26 against 
> >>`strcpy'
> >>make[1]: *** [vmlinux] Ошибка 1
> >>make[1]: Leaving directory `/work/video/kernel'
> >>make: *** [vmlinux] Ошибка 2
> >>
> >>It's not a "sound drivers" problem, howewer without it kernel compiles
> >>and run succesfully. Seems like gcc/bunitils bug/feature. What have to
> >>be done to eliminate this error?
> >>
> >>GNU ld version 2.15.96 20050308
> >>gcc version 3.4.3
> > 
> > 
> > Don't use gcc 3.4 to compile Linux 2.4.  It may work for some kernel
> > configurations but it will fail for others.
> > 
> >   Ralf
> 
> I would've thought this was fixed in 2.4.x now.  You might try using newer 
> sources.  The below patch fixes the issue:
> 
> http://dev.gentoo.org/~kumba/tmp/gcc-strcpy-fix.patch
> 
> 
> As the original patch I found stated about gcc-3.4.x:
> 
> From: Jan Hubicka <jh@suse.cz>
> 
> GCC now converts sprintf (a,"%s",b) to strcpy.  This lose on kernel as
> strcpy is not inlined and not present in library, so one gets linker
> failure.  It seems to make sense to apply this optimization by hand.

That fixes just the tip of the iceberg.  You want to rebuild with
-ffreestanding which 2.6 already does.  With that applied still some
2.4 kernel configurations will run into a bunch of other gcc 3.4-related
bug and not last loads of warnings.

  Ralf

<Prev in Thread] Current Thread [Next in Thread>