LLVM-LINK(1)

πŸ“¦ version 23.1.3, in centos-stream 9

hey bestie πŸ’– welcome to the llvm-link(1) page, straight out of the LLVM universe. buckle up, we're linking bitcode and being iconic about it ✨

🌸 NAME 🌸

llvm-link β€” the LLVM bitcode linker, no cap 🧚

✨ SYNOPSIS ✨

llvm-link [options] filename ...

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the vibe: llvm-link takes a bunch of LLVM bitcode files and links them together into one single LLVM bitcode file πŸ’… it writes the output file to standard output, unless you use the -o option to specify a filename. that's literally the whole main character energy of this tool πŸŽ€

πŸ’– OPTIONS πŸ’–

  • -f β€” enables 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. slay, but respectfully 🫢
  • -o filename β€” picks the output file name. if filename is "-", then llvm-link will write its output to standard output ✨
  • -S β€” writes output in LLVM intermediate language instead of bitcode. fancy πŸ’…
  • -d β€” if specified, llvm-link prints a human-readable version of the output bitcode file to standard error πŸ‘€
  • --help β€” prints a summary of command line options. your little cheat sheet πŸŽ€
  • -v β€” verbose mode, bestie. prints information about what llvm-link is doing, which 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 πŸ‘‘ periodt.
  • --import <function:filename> β€” specifies 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> β€” specifies 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 ⚠️ like, mandatory mandatory.
  • --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) 🧚
  • --disable-debug-info-type-map β€” disables the use of a uniquing type map for debug info πŸ™ˆ
  • --only-needed β€” links only needed symbols. minimalism, but make it linker πŸ’œ
  • --disable-lazy-loading β€” disables lazy module loading. no more lazy bestie 😭
  • --suppress-warnings β€” suppresses all linker warnings 🀫
  • --preserve-bc-uselistorder β€” preserves the use-list order when writing LLVM bitcode ⭐
  • --preserve-ll-uselistorder β€” preserves 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. simple as that πŸ’…

πŸ‘‘ AUTHOR πŸ‘‘

maintained by the LLVM Team (https://llvm.org/) β€” iconic behavior, honestly 🫢

2003-2026, LLVM Project


bye bestie 🌸 this lil rewrite was served fresh from LLVM-LINK(1), source/version 23, dated 2026-10-06 β€” mwah πŸ’–

πŸ“¦ where this page comes from