cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
5,420 Views
Registered: ‎11-10-2012

R_MICROBLAZE_32_PCREL_LO

Hi

 

I am using XSDK from ISE 14.4 to compile a microblaze SW for Spartan-6.

Now i get this linker error:

./c5.base/diag/LinDiag.o: In function `LinDiag_AddListener':
(.text+0x988): relocation truncated to fit: R_MICROBLAZE_32_PCREL_LO against symbol `microblaze_disable_interrupts' defined in .text section in ../../standalone_bsp/microblaze_0/lib\libxil.a(microblaze_disable_interrupts.o)
collect2: ld returned 1 exit status

The first google hit is this Xilinx AR:

http://www.xilinx.com/support/answers/51605.html

 

But it is not helping, as I use version 14.4.

Is there a workaround?

 

 

 

0 Kudos
1 Reply
5,388 Views
Registered: ‎11-10-2012

Solved...

 

It turned out, GCC has this bug triggered by a weak function reference. The function used here was not mentioned.

It was from FreeRTOS, which uses:

extern void vApplicationExceptionRegisterDump( xPortRegisterDump *xRegisterDump ) __attribute__((weak));

After changing it to a normal function (non-weak), and having a single implementation, the linker error disappeared.

 

 

0 Kudos