ld: SPU ELF
1
1 4.15 'ld' and SPU ELF Support
1 =============================
1
1 '--plugin'
1 This option marks an executable as a PIC plugin module.
1
1 '--no-overlays'
1 Normally, 'ld' recognizes calls to functions within overlay
1 regions, and redirects such calls to an overlay manager via a stub.
1 'ld' also provides a built-in overlay manager. This option turns
1 off all this special overlay handling.
1
1 '--emit-stub-syms'
1 This option causes 'ld' to label overlay stubs with a local symbol
1 that encodes the stub type and destination.
1
1 '--extra-overlay-stubs'
1 This option causes 'ld' to add overlay call stubs on all function
1 calls out of overlay regions. Normally stubs are not added on
1 calls to non-overlay regions.
1
1 '--local-store=lo:hi'
1 'ld' usually checks that a final executable for SPU fits in the
1 address range 0 to 256k. This option may be used to change the
1 range. Disable the check entirely with '--local-store=0:0'.
1
1 '--stack-analysis'
1 SPU local store space is limited. Over-allocation of stack space
1 unnecessarily limits space available for code and data, while
1 under-allocation results in runtime failures. If given this
1 option, 'ld' will provide an estimate of maximum stack usage. 'ld'
1 does this by examining symbols in code sections to determine the
1 extents of functions, and looking at function prologues for stack
1 adjusting instructions. A call-graph is created by looking for
1 relocations on branch instructions. The graph is then searched for
1 the maximum stack usage path. Note that this analysis does not
1 find calls made via function pointers, and does not handle
1 recursion and other cycles in the call graph. Stack usage may be
1 under-estimated if your code makes such calls. Also, stack usage
1 for dynamic allocation, e.g. alloca, will not be detected. If a
1 link map is requested, detailed information about each function's
1 stack usage and calls will be given.
1
1 '--emit-stack-syms'
1 This option, if given along with '--stack-analysis' will result in
1 'ld' emitting stack sizing symbols for each function. These take
1 the form '__stack_<function_name>' for global functions, and
1 '__stack_<number>_<function_name>' for static functions.
1 '<number>' is the section id in hex. The value of such symbols is
1 the stack requirement for the corresponding function. The symbol
1 size will be zero, type 'STT_NOTYPE', binding 'STB_LOCAL', and
1 section 'SHN_ABS'.
1