relocation truncated to fit: R_ARM_THM_PC22

Vincent Rubiolo vincent.rubiolo@st.com
Thu Jul 31 11:40:00 GMT 2003


Hello Dietmar,

I ran into the same problem.
You are probably using interworking and to allow it, gcc puts call_via_rX stubs 
between calls to functions. Such stubs may be located far away in memory hence 
the impossibility to reach them and the linker outputting errors.

Please look at the pointers below:

gcc interworking explanation in the gcc source dir :
gcc_src_dir/gcc/config/arm/README-interworking

my posts concerning the problem
http://sources.redhat.com/ml/binutils/2003-06/msg00221.html
http://sources.redhat.com/ml/binutils/2003-06/msg00412.html

The patch works for me but I had to patch by hand since I had problems with the 
context of the patch.

HTH,

Vincent


dernst@testo.de wrote:

> **********************************************************************
> Diese E-Mail wurde auf Viren untersucht.
> This e-mail has been scanned for viruses.
> **********************************************************************
> 
> Hi,
> 
> We try to compile an application for the AT91M55800A. The code is mainly
> located in Flash, but some functions have to be in RAM. Flash uses address
> space 0x1000000 upwards, RAM 0x2000000 upwards. We use arm-elf-gcc version
> 3.2.1 and binutils version 2.13. There are a lot of error messages like the
> following:
> 
> /cygdrive/D/SRC/CS/V24/SRC/sioframe.c:522: relocation truncated to fit:
> R_ARM_THM_PC22 IORead
> 
> Flags "-mlong-calls" or "-relax" did not help. I found some Information in
> the www, but no solution. Did anyone manage this problem?
> 
> Dietmar Ernst
> 
> 
> ------
> Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
> Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
> 



More information about the Binutils mailing list