Hello,
We define –b and then even --symdebug:none. There is little improvement in speed, and we saw warnings like
“relocation from function "xxx" to symbol overflowed; the 31-bit relocated address 0xdff96810 is too large to encode in the 25-bit signed PC-Relative field”
appear many times (for ARMv5).
With symdebug:none, it is not evident that the relocations might cause the long link time. It is likely that the linker needed to insert trampolines many times, which at each time entails somewhat a reshuffle of the data structure, and probably the debugging information maintained alongside, so the speed is that slow.
- Q1: at compiling time, is there a way to force generating trampoline calls instead of PC-relative call? I searched and didn’t find that in the document for ARM compiler.
- Q2: I tried partial(incremental) linking but this helped little. Any other ways to speed up linker?
- Q3: TI has many different lines of processors. The compiler at grammar level follow http://processors.wiki.ti.com/index.php/TI_Compilers_and_Industry_Standards, and I believe they at binary level follow IA-64 conventions. Could you list any open-source tools that could like the object files? Do they handle details like trampolines, and do they have proven quality?
Dave