Linker Options

Linker options control linking operations. They can be placed on the command line or in a command file. Linker options must be preceded by a hyphen (-). Options can be separated from arguments (if they have them) by an optional space.

Table 8-1 Basic Options Summary

Option Alias Description Section
--run_linker -z Enables linking Section 8.3
--output_file -o Names the executable output module. The default filename is a.out. Section 8.4.23
--map_file -m Produces a map or listing of the input and output sections, including holes, and places the listing in filename Section 8.4.18
--stack_size -stack Sets C system stack size to sizebytes and defines a global symbol that specifies the stack size. Default = 1K bytes Section 8.4.28
--heap_size -heap Sets heap size (for the dynamic memory allocation in C) to sizebytes and defines a global symbol that specifies the heap size. Default = 1K bytes Section 8.4.14

Table 8-2 File Search Path Options Summary

Option Alias Description Section
--library -l Names an archive library or link command filename as linker input Section 8.4.16
--search_path -i Alters library-search algorithms to look in a directory named with pathname before looking in the default location. This option must appear before the --library option. Section 8.4.16.1
--priority -priority Satisfies unresolved references by the first library that contains a definition for that symbol Section 8.4.16.3
--reread_libs -x Forces rereading of libraries, which resolves back references Section 8.4.16.3
--disable_auto_rts Disables the automatic selection of a run-time-support library Section 8.4.8

Table 8-3 Command File Preprocessing Options Summary

Option Alias Description Section
--define Predefines name as a preprocessor macro. Section 8.4.10
--undefine Removes the preprocessor macro name. Section 8.4.10
--disable_pp Disables preprocessing for command files Section 8.4.10

Table 8-4 Diagnostic Options Summary

Option Alias Description Section
--diag_error Categorizes the diagnostic identified by num as an error Section 8.4.7
--diag_remark Categorizes the diagnostic identified by num as a remark Section 8.4.7
--diag_suppress Suppresses the diagnostic identified by num Section 8.4.7
--diag_warning Categorizes the diagnostic identified by num as a warning Section 8.4.7
--display_error_number Displays a diagnostic's identifiers along with its text Section 8.4.7
--emit_warnings_as_errors -pdew Treats warnings as errors Section 8.4.7
--issue_remarks Issues remarks (nonserious warnings) Section 8.4.7
--no_demangle Disables demangling of symbol names in diagnostics Section 8.4.20
--no_warnings Suppresses warning diagnostics (errors are still issued) Section 8.4.7
--set_error_limit Sets the error limit to num. The linker abandons linking after this number of errors. (The default is 100.) Section 8.4.7
--verbose_diagnostics Provides verbose diagnostics that display the original source with line-wrap Section 8.4.7
--warn_sections -w Displays a message when an undefined output section is created Section 8.4.33

Table 8-5 Linker Output Options Summary

Option Alias Description Section
--absolute_exe -a Produces an absolute, executable module. This is the default; if neither --absolute_exe nor --relocatable is specified, the linker acts as if --absolute_exe were specified. Section 8.4.3.1
--ecc={ on | off } Enable linker-generated Error Correcting Codes (ECC). The default is off. Section 8.4.11
Section 8.5.9
--ecc:data_error Inject the specified errors into the output file for testing Section 8.4.11
Section 8.5.9
--ecc:ecc_error Inject the specified errors into the Error Correcting Code (ECC) for testing Section 8.4.11
Section 8.5.9
--mapfile_contents Controls the information that appears in the map file. Section 8.4.19
--relocatable -r Produces a nonexecutable, relocatable output module Section 8.4.3.2
--rom -r Create a ROM object
--xml_link_info Generates a well-formed XML file containing detailed information about the result of a link Section 8.4.34

Table 8-6 Symbol Management Options Summary

Option Alias Description Section
--entry_point -e Defines a global symbol that specifies the primary entry point for the output module Section 8.4.12
--globalize Changes the symbol linkage to global for symbols that match pattern Section 8.4.17
--hide Hides global symbols that match pattern Section 8.4.15
--localize Changes the symbol linkage to local for symbols that match pattern Section 8.4.17
--make_global -g Makes symbol global (overrides -h) Section 8.4.17.1
--make_static -h Makes all global symbols static Section 8.4.17.1
--no_symtable -s Strips symbol table information and line number entries from the output module Section 8.4.22
--retain Retains a list of sections that otherwise would be discarded Section 8.4.26
--scan_libraries -scanlibs Scans all libraries for duplicate symbol definitions Section 8.4.27
--symbol_map Maps symbol references to a symbol definition of a different name Section 8.4.30
--undef_sym -u Places an unresolved external symbol into the output module's symbol table Section 8.4.32
--unhide Reveals (un-hides) global symbols that match pattern Section 8.4.15

Table 8-7 Run-Time Environment Options Summary

Option Alias Description Section
--arg_size --args Allocates memory to be used by the loader to pass arguments Section 8.4.4
--fill_value -f Sets default fill values for holes within output sections; fill_value is a 32-bit constant Section 8.4.13
--multithread Causes the linker to choose a thread-safe version of the RTS library when auto-selecting an RTS library or resolving a reference to libc.a, even if none of the input object files contain the TI build attribute placed by the --multithread compiler option. If you used the --openmp compiler option to create any of the object files, the --multithread option is enabled automatically. Section 8.4.8
--ram_model -cr Initializes variables at load time Section 8.4.25
--rom_model -c Autoinitializes variables at run time Section 8.4.25
--trampolines Generates far call trampolines; on by default Section 8.4.31

Table 8-8 Link-Time Optimization Options Summary

Option Alias Description Section
--cinit_compression [=compression_kind] Specifies the type of compression to apply to the c auto initialization data (default is rle) Section 8.4.5
--compress_dwarf Aggressively reduces the size of DWARF information from input object files Section 8.4.6
--copy_compression [=compression_kind] Compresses data copied by linker copy tables Section 8.4.5
--unused_section_elimination Eliminates sections that are not needed in the executable module; on by default Section 8.4.9

Table 8-9 Dynamic Linking Options Summary

Option Alias Description Section
--dsbt_index Specifies the Data Segment Base Table (DSBT) index to be assumed for the dynamic shared object or dynamic library being linked Section 8.12.4.3
--dsbt_size Specifies the number of entries to be reserved for the Data Segment Base Table (DSBT) Section 8.12.4.3
--dynamic Generates a bare-metal dynamic executable or library (argument is optional; if no argument is specified, then a dynamic executable (exe) is generated) Section 8.12.4.3
--export Exports the specified function symbol (sym) Section 8.12.3.1
--fini Specifies function symbol (sym) of the termination code Section 8.12.4.3
--import Imports the specified symbol Section 8.12.4.1
--init Specifies the function symbol (sym) of the initialization code Section 8.12.4.3
--linux Generates code for Linux Section 8.12.4.3
--pic Generates position independent addressing for a shared object. Default is near. Section 8.12.4.3
--rpath Adds specified directory to the beginning of the dynamic library search path Section 8.12.4.3
--runpath Adds specified directory to the end of the dynamic library search path Section 8.12.4.3
--shared Generates an ELF dynamically shared object (DSO) Section 8.12.4.3
--soname Specifies the name to be associated with this linked dynamic output; this name is stored in the file's dynamic table Section 8.12.4.3
--sysv Generates SysV ELF output file Section 8.12.4.3

Table 8-10 Miscellaneous Options Summary

Option Alias Description Section
--linker_help -help Displays information about syntax and available options
--minimize_trampolines Selects the trampoline minimization algorithm (argument is optional; algoriithm is postorder by default) Section 8.4.31.2
--preferred_order Prioritizes placement of functions Section 8.4.24
--strict_compatibility Performs more conservative and rigorous compatibility checking of input object files Section 8.4.29
--trampoline_min_spacing When trampoline reservations are spaced more closely than the specified limit, tries to make them adjacent Section 8.4.31.3
--zero_init Controls preinitialization of uninitialized variables. Default is on. Section 8.4.35