Linking very large programs with inadequate branch displacements
Bill Yoder
byoder@cs.utexas.edu
Mon Sep 19 22:57:00 GMT 2005
Dear Hans-Peter, Alan, Nick, and HJ:
>> What we'd like to do is to open up a hole in the bfd output section
>> and insert a springboard in it, so that the offending instruction can
>> instead branch to that nearby springboard and then use an absolute
>> address embedded in the springboard to jump to the far-distant
>> target.
>>
>
> Usually referred to as a "trampoline" or "stub". For yet
> another implementation, see bfd/elf64-mmix.c, handling of
> R_MMIX_PUSHJ_STUBBABLE. See also gas/config/tc-mmix.c for when
> these relocs are generated.
We've now got our text sections relaxed, the trampolines inserted,
and are bouncing merrily across 140MB executables.
Thanks for your help!
Bill
More information about the Binutils
mailing list