UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
5,284 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,252 Views
Registered: ‎11-10-2012

Re: R_MICROBLAZE_32_PCREL_LO

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