ld: Nios II

1 
1 4.11 'ld' and the Altera Nios II
1 ================================
1 
1 Call and immediate jump instructions on Nios II processors are limited
1 to transferring control to addresses in the same 256MB memory segment,
1 which may result in 'ld' giving 'relocation truncated to fit' errors
1 with very large programs.  The command-line option '--relax' enables the
1 generation of trampolines that can access the entire 32-bit address
1 space for calls outside the normal 'call' and 'jmpi' address range.
1 These trampolines are inserted at section boundaries, so may not
1 themselves be reachable if an input section and its associated call
1 trampolines are larger than 256MB.
1 
1    The '--relax' option is enabled by default unless '-r' is also
1 specified.  You can disable trampoline generation by using the
1 '--no-relax' linker option.  You can also disable this optimization
1 locally by using the 'set .noat' directive in assembly-language source
1 files, as the linker-inserted trampolines use the 'at' register as a
1 temporary.
1 
1    Note that the linker '--relax' option is independent of assembler
1 relaxation options, and that using the GNU assembler's '-relax-all'
1 option interferes with the linker's more selective call instruction
1 relaxation.
1