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