Technical Support
On-Line Manuals
Linker Reference Guide
Conventions and feedback
Linker command-line options
--any_contingency
--any_placement=algorithm
--any_sort_order=order
--api, --no_api
--arm_only
--autoat, --no_autoat
--be8
--be32
--bestdebug, --no_bestdebug
--branchnop, --no_branchnop
--callgraph, --no_callgraph
--callgraph_file=filename
--callgraph_output=fmt
--cgfile=type
--cgsymbol=type
--cgundefined=type
--combreloc, --no_combreloc
--comment_section, --no_comment_section
--compress_debug, --no_compress_debug
--cppinit, --no_cppinit
--cpu=list
--cpu=name
--crosser_veneershare, --no_crosser_veneershare
--datacompressor=opt
--debug, --no_debug
--diag_error=tag[,tag,...]
--diag_remark=tag[,tag,...]
--diag_style=arm|ide|gnu
--diag_suppress=tag[,tag,...]
--diag_warning=tag[,tag,...]
--eager_load_debug, --no_eager_load_debug
--edit=file_list
--emit_debug_overlay_relocs
--emit_debug_overlay_section
--emit_non_debug_relocs
--emit_relocs
--entry=location
--errors=filename
--exceptions, --no_exceptions
--exceptions_tables=action
--feedback=filename
--feedback_image=option
--feedback_type=type
--filtercomment, --no_filtercomment
--fini=symbol
--first=section_id
--force_explicit_attr
--fpu=list
--fpu=name
--help
--info=topic[,topic,...]
--info_lib_prefix=opt
--init=symbol
--inline, --no_inline
--inlineveneer, --no_inlineveneer
input-file-list
--keep=section_id
--keep_protected_symbols
--largeregions, --no_largeregions
--last=section_id
--ldpartial
--legacyalign, --no_legacyalign
--libpath=pathlist
--library_type=lib
--licretry
--list=filename
--list_mapping_symbols, --no_list_mapping_symbols
--load_addr_map_info, --no_load_addr_map_info
--locals, --no_locals
--ltcg
--mangled, --unmangled
--map, --no_map
--match=crossmangled
--max_veneer_passes=value
--max_visibility=type
--merge, --no_merge
--muldefweak, --no_muldefweak
--output=filename
--override_visibility
--pad=num
--paged
--pagesize=pagesize
--partial
--piveneer, --no_piveneer
--predefine="string"
--reduce_paths, --no_reduce_paths
--ref_cpp_init, --no_ref_cpp_init
--reloc
--remarks
--remove, --no_remove
--ro_base=address
--ropi
--rosplit
--rw_base=address
--rwpi
--scanlib, --no_scanlib
--scatter=filename
--section_index_display=type
--show_cmdline
--show_full_path
--show_parent_lib
--show_sec_idx
--sort=algorithm
--split
--startup=symbol, --no_startup
--strict
--strict_enum_size, --no_strict_enum_size
--strict_flags, --no_strict_flags
--strict_ph, --no_strict_ph
--strict_relocations, --no_strict_relocations
--strict_symbols, --no_strict_symbols
--strict_visibility, --no_strict_visibility
--strict_wchar_size, --no_strict_wchar_size
--symbols, --no_symbols
--symdefs=filename
--tailreorder, --no_tailreorder
--thumb2_library, --no_thumb2_library
--tiebreaker=option
--undefined=symbol
--undefined_and_export=symbol
--unresolved=symbol
--use_definition_visibility
--userlibpath=pathlist
--veneerinject,--no_veneerinject
--veneer_inject_type=type
--veneer_pool_size=size
--veneershare, --no_veneershare
--verbose
--version_number
--vfemode=mode
--via=filename
--vsn
--xref, --no_xref
--xrefdbg, --no_xrefdbg
--xref{from|to}=object(section)
--zi_base=address
Linker steering file command reference
Formal syntax of the scatter file
|
Linker Reference Guide
--sort=algorithm
This option specifies the sorting algorithm used to determine
the order of sections in an output image. The sorting algorithms
conform to the standard rules, placing input sections in ascending order
by attributes. Sort algorithms can also be specified in a scatter file for
individual execution regions using the SORTTYPE keyword. Syntax
--sort=algorithm
where algorithm is
one of the following: AlignmentSorts input sections by ascending order of alignment
value. AlignmentLexicalSorts input sections by ascending order of alignment
value, then sorts lexically. AvgCallDepthSorts all Thumb code before ARM code and then sorts according
to the approximated average call depth of each section in ascending
order. Use this algorithm to minimize the number of long branch veneers. NoteThe approximation of the average call depth depends on the
order of input sections. Therefore, this sorting algorithm is more
dependent on the order of input sections than using, say, RunningDepth. BreadthFirstCallTreeThis is similar to the CallTree algorithm
except that it uses a breadth-first traversal when flattening the
Call Tree into a list. CallTreeThe
linker flattens the call tree into a list containing the read-only
code sections from all execution regions that have CallTree sorting
enabled. Sections in this list are copied back into their execution
regions, followed by all the non read-only code sections, sorted
lexically. Doing this ensures that sections calling each other are
placed close together. NoteThis sorting algorithm is less dependent on the order of input
sections than using either RunningDepth or AvgCallDepth. LexicalSorts
according to the name of the section and then by input order if
the names are the same. LexicalAlignmentSorts input sections lexically, then according to
the name of the section, and then by input order if the names are
the same. LexicalStateSorts Thumb code before ARM code, then sorts lexically. ListProvides
a list of the available sorting algorithms. The linker terminates
after displaying the list. ObjectCodeSorts
code sections by tiebreaker. All other sections are sorted lexically.
This is most useful when used with --tiebreaker=cmdline because
it attempts to group all the sections from the same object together
in the memory map. RunningDepthSorts all Thumb code before ARM code and then sorts according
to the running depth of the section in ascending order. The running
depth of a section S is the average call depth of all the sections
that call S, weighted by the number of times that they call S. Use this algorithm to minimize the number of long branch veneers.
Default
The default algorithm is --sort=Lexical.
In large region mode, the default algorithm is --sort=AvgCallDepth. See also
|