I dealt with the 'jump out of range' linking errors by adding to LDFLAGS -T 10000000 -D 12000000 (or the equivalent -Wl,'...' if you link through cc). to get text and data close enough. Make sure your text segment is not bigger than 0x2000000 bytes or bump up the difference a bit. This got my dynamic linking code to run.