| # llvm-link - LLVM bitcode linker | |
| :::{program} llvm-link | |
| ::: | |
| ## SYNOPSIS | |
| {program}`llvm-link` \[*options*\] *filename ...* | |
| ## DESCRIPTION | |
| {program}`llvm-link` takes several LLVM bitcode files and links them together | |
| into a single LLVM bitcode file. It writes the output file to standard output, | |
| unless the {option}`-o` option is used to specify a filename. | |
| ## OPTIONS | |
| :::{option} -f | |
| Enable binary output on terminals. Normally, {program}`llvm-link` will refuse | |
| to write raw bitcode output if the output stream is a terminal. With this | |
| option, {program}`llvm-link` will write raw bitcode regardless of the output | |
| device. | |
| ::: | |
| :::{option} -o filename | |
| Specify the output file name. If `filename` is "`-`", then | |
| {program}`llvm-link` will write its output to standard output. | |
| ::: | |
| :::{option} -S | |
| Write output in LLVM intermediate language (instead of bitcode). | |
| ::: | |
| :::{option} -d | |
| If specified, {program}`llvm-link` prints a human-readable version of the | |
| output bitcode file to standard error. | |
| ::: | |
| :::{option} --help | |
| Print a summary of command line options. | |
| ::: | |
| :::{option} -v | |
| Verbose mode. Print information about what {program}`llvm-link` is doing. | |
| This typically includes a message for each bitcode file linked in and for each | |
| library found. | |
| ::: | |
| :::{option} --override <filename> | |
| Adds the passed-in file to the link and overrides symbols that have already | |
| been declared with the definitions in the file that is passed in. This flag | |
| can be specified multiple times to have multiple files act as overrides. If | |
| a symbol is declared more than twice, the definition from the file declared | |
| last takes precedence. | |
| ::: | |
| :::{option} --import <function:filename> | |
| Specify a function that should be imported from the specified file for | |
| linking with ThinLTO. This option can be specified multiple times to import | |
| multiple functions. | |
| ::: | |
| :::{option} --summary-index <filename> | |
| Specify the path to a file containing the module summary index with the | |
| results of an earlier ThinLTO link. This option is required when | |
| `--import` is used. | |
| ::: | |
| :::{option} --internalize | |
| Maintains existing linkage for symbols defined in the first input and | |
| converts linkage in all other inputs to internal linkage unless they are | |
| referenced by `llvm*.used` or are special-cased runtime functions (e.g. | |
| stack protector runtime). | |
| ::: | |
| :::{option} --disable-debug-info-type-map | |
| Disables the use of a uniquing type map for debug info. | |
| ::: | |
| :::{option} --only-needed | |
| Link only needed symbols. | |
| ::: | |
| :::{option} --disable-lazy-loading | |
| Disable lazy module loading. | |
| ::: | |
| :::{option} --suppress-warnings | |
| Suppress all linker warnings. | |
| ::: | |
| :::{option} --preserve-bc-uselistorder | |
| Preserve the use-list order when writing LLVM bitcode. | |
| ::: | |
| :::{option} --preserve-ll-uselistorder | |
| Preserve the use-list order when writing LLVM assembly. | |
| ::: | |
| :::{option} --ignore-non-bitcode | |
| Do not error out when a non-bitcode file is encountered while processing | |
| an archive. | |
| ::: | |
| ## EXIT STATUS | |
| If {program}`llvm-link` succeeds, it will exit with 0. Otherwise, if an error | |
| occurs, it will exit with a non-zero value. | |