LLVM-LINK(1)

okay bestie, welcome to the LLVM-LINK(1) page from the LLVM manual fam ✨ this one is literally about linking bitcode, and yes it ate πŸ’…

πŸ’– NAME πŸ’–

llvm-link β€” the LLVM bitcode linker πŸŽ€

✨ SYNOPSIS ✨

bestie, the whole vibe is:

llvm-link [options] filename ...

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so 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 -o option is used to specify a filename. slay ✨

πŸ’… OPTIONS πŸ’…

  • -f β€” enable binary output on terminals. Normally, llvm-link will refuse to write raw bitcode output if the output stream is a terminal. With this option, llvm-link will write raw bitcode regardless of the output device. terminal go brrr 😭
  • -o filename β€” specify the output file name. If filename is -, then llvm-link will write its output to standard output.
  • -S β€” write output in LLVM intermediate language instead of bitcode. cute assembly moment πŸŽ€
  • -d β€” if specified, llvm-link prints a human-readable version of the output bitcode file to standard error. it's giving debug-info realness πŸ‘€
  • --help β€” print a summary of command line options.
  • -v β€” verbose mode. Print information about what llvm-link is doing. This typically includes a message for each bitcode file linked in and for each library found.
  • --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. last one wins, periodt πŸ’…
  • --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.
  • --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. no summary index, no import, iykyk 🫢
  • --internalize β€” internalize the linked symbols.
  • --disable-debug-info-type-map β€” disables the use of a uniquing type map for debug info.
  • --only-needed β€” link only needed symbols.
  • --disable-lazy-loading β€” disable lazy module loading.
  • --suppress-warnings β€” suppress all linker warnings. shhh bestie 🀫
  • --preserve-bc-uselistorder β€” preserve the use-list order when writing LLVM bitcode.
  • --preserve-ll-uselistorder β€” preserve the use-list order when writing LLVM assembly.
  • --ignore-non-bitcode β€” do not error out when a non-bitcode file is encountered while processing an archive.

πŸ”₯ EXIT STATUS πŸ”₯

If llvm-link succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value. iconic behavior, honestly 🌈

πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). shoutout to the maintainers, fr fr 🫢

2003-2025, LLVM Project


okay that's the whole page bestie πŸ’– the footer lines up as 19, 2025-01-17, and LLVM-LINK(1) β€” so this cute lil manual page is dated 2025-01-17 and version 19. mwah πŸ’‹

πŸ“¦ where this page comes from