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.
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | |
| 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 | 
| 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 |