1

I'm trying to compile tensorflow on an embedded linux device and i keep running into this error,

/usr/lib/gcc/arm-linux-gnueabihf/4.9/libgcc.a(fp16.o): In function `__gnu_h2f_ieee':
(.text+0x11a): relocation truncated to fit: R_ARM_THM_JUMP11 against symbol `__gnu_h2f_internal' defined in .text section in /usr/lib/gcc/arm-linux-gnueabihf/4.9/libgcc.a(fp16.o)

From what i gather, the linker is trying to statically link a part of libgcc and the addresses run out of the range of the jump instruction. The problem as i see it is that libgcc has been compiled with thumb enabled because the R_ARM_THM_JUMP11 is a Thumb16 instruction. Am i looking at this the correct way? What can i do to get past this issue? I believe compiling a compiler is a big process and I'd like to avoid it. Could i possibly use a different libgcc which was compiled without thumb? Can i recompile only the libgcc components of gcc?

edit: I tried forcing -shared-libgcc which from my understanding should fix the problem but it didnt make any difference

normad
  • 115
  • 1
  • 10

0 Answers0