Re: relocation truncated to fit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

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.


--Kumba

--
"Such is oft the course of deeds that move the wheels of the world: small hands do them because they must, while the eyes of the great are elsewhere." --Elrond



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux