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 12-1 Basic Options Summary

Option Alias Description Section
--run_linker -z Enables linking Section 12.3
--output_file -o Names the executable output module. The default filename is a.out. Section 12.4.22
--map_file -m Produces a map or listing of the input and output sections, including holes, and places the listing in filename Section 12.4.17
--stack_size -stack Sets C system stack size to sizebytes and defines a global symbol that specifies the stack size. Default = 1K bytes Section 12.4.27
--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 12.4.13

Table 12-2 File Search Path Options Summary

Option Alias Description Section
--library -l Names an archive library or link command filename as linker input Section 12.4.15
--disable_auto_rts Disables the automatic selection of a run-time-support library Section 12.4.8
--priority -priority Satisfies unresolved references by the first library that contains a definition for that symbol Section 12.4.15.3
--reread_libs -x Forces rereading of libraries, which resolves back references Section 12.4.15.3
--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 12.4.15.1

Table 12-3 Command File Preprocessing Options Summary

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

Table 12-4 Diagnostic Options Summary

Option Alias Description Section
--diag_error Categorizes the diagnostic identified by num as an error Section 12.4.7
--diag_remark Categorizes the diagnostic identified by num as a remark Section 12.4.7
--diag_suppress Suppresses the diagnostic identified by num Section 12.4.7
--diag_warning Categorizes the diagnostic identified by num as a warning Section 12.4.7
--display_error_number Displays a diagnostic's identifiers along with its text Section 12.4.7
--emit_references:file[=file] Emits a file containing section information. The information includes section size, symbols defined, and references to symbols. Section 12.4.7
--emit_warnings_as_errors -pdew Treats warnings as errors Section 12.4.7
--issue_remarks Issues remarks (nonserious warnings) Section 12.4.7
--no_demangle Disables demangling of symbol names in diagnostics Section 12.4.19
--no_warnings Suppresses warning diagnostics (errors are still issued) Section 12.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 12.4.7
--verbose_diagnostics Provides verbose diagnostics that display the original source with line-wrap Section 12.4.7
--warn_sections -w Displays a message when an undefined output section is created Section 12.4.32

Table 12-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 12.4.3.1
--mapfile_contents Controls the information that appears in the map file. Section 12.4.18
--relocatable -r Produces a nonexecutable, relocatable output module Section 12.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 12.4.33

Table 12-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 12.4.11
--globalize Changes the symbol linkage to global for symbols that match pattern Section 12.4.16
--hide Hides global symbols that match pattern Section 12.4.14
--localize Changes the symbol linkage to local for symbols that match pattern Section 12.4.16
--make_global -g Makes symbol global (overrides -h) Section 12.4.16.1
--make_static -h Makes all global symbols static Section 12.4.16.1
--no_sym_merge -b Disables merge of symbolic debugging information Section 12.4.20
--no_symtable -s Strips symbol table information and line number entries from the output module Section 12.4.21
--retain Retains a list of sections that otherwise would be discarded Section 12.4.25
--scan_libraries -scanlibs Scans all libraries for duplicate symbol definitions Section 12.4.26
--symbol_map Maps symbol references to a symbol definition of a different name Section 12.4.29
--undef_sym -u Places an unresolved external symbol into the output module's symbol table Section 12.4.31
--unhide Reveals (un-hides) global symbols that match pattern Section 12.4.14

Table 12-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 12.4.4
--fill_value -f Sets default fill values for holes within output sections; fill_value is a 64-bit constant Section 12.4.12
--ram_model -cr Initializes variables at load time Section 12.4.24
--rom_model -c Autoinitializes variables at run time Section 12.4.24
--trampolines Generates far call trampolines; on by default Section 12.4.30

Table 12-8 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; algorithm is postorder by default) Section 12.4.30.2
--preferred_order Prioritizes placement of functions Section 12.4.23
--strict_compatibility Performs more conservative and rigorous compatibility checking of input object files Section 12.4.28
--zero_init Controls preinitialization of uninitialized variables. Default is on. Section 12.4.34