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