LLVM-INSTALL-NAME-TOOL(1)

πŸ’… LLVM-INSTALL-NAME-TOOL β€” the gen z breakdown

okay so bestie, this is llvm-install-name-tool(1), part of the LLVM fam ✨ β€” and it's literally the tool you want when you need to mess with the install names and rpaths chillin' inside a Mach-O binary. πŸ¦‹


🌸 SYNOPSIS 🌸

llvm-install-name-tool [options] input

πŸŽ€ DESCRIPTION πŸŽ€

So llvm-install-name-tool is the tool that manipulates dynamic shared library install names and the rpaths listed inside a Mach-O binary. It's giving surgical precision, no cap πŸ’…

And for most scenarios? It works as a drop-in replacement for Apple's install_name_tool. Iconic behavior honestly, we ate. πŸ‘‘


✨ OPTIONS ✨

Okay so vibe check first: at least one of the options below is required, and some of them can be combined with other options. But lowkey there's a rule β€” -add_rpath, -delete_rpath, and -rpath can be combined in one invocation only if they don't share the same <rpath> value. fr fr, that's the boundary. 🫢

  • -add_rpath <rpath> β€” Adds an rpath named <rpath> to the binary you specified. You can throw this flag multiple times to add multiple rpaths. It throws an error if <rpath> is already listed in the binary (no duplicates allowed bestie πŸ’€).
  • -change <old_install_name> <new_install_name> β€” Changes an install name from <old_install_name> to <new_install_name> in the specified binary. Can be specified multiple times to change multiple dependent shared library install names. This option is ignored if <old_install_name> isn't listed in the binary β€” like, it just shrugs and moves on πŸ™ˆ.
  • -delete_rpath <rpath> β€” Deletes an rpath named <rpath> from the specified binary. Can be specified multiple times to delete multiple rpaths. Throws an error if <rpath> isn't listed in the binary 😭
  • -delete_all_rpaths β€” Deletes all rpaths from the binary. Clean slate energy, periodt 🌈
  • --help, -h β€” Prints a summary of the command line options. Your lil cheat sheet πŸŽ€
  • -id <name> β€” Changes the shared library's identification name under LC_ID_DYLIB to <name> in the specified binary. If you specify it multiple times, only the last -id option is selected (last one wins, main character energy πŸ‘‘). This option is ignored if the specified Mach-O binary isn't a dynamic shared library.
  • -o <file>, --output <file> β€” Writes the modified binary to <file> instead of updating the input file in place. Non-destructive queen behavior πŸ’–
  • -rpath <old_rpath> <new_rpath> β€” Changes an rpath named <old_rpath> to <new_rpath> in the specified binary. Can be specified multiple times to change multiple rpaths. Throws an error if <old_rpath> isn't listed in the binary or <new_rpath> is already listed in the binary ✨
  • --version, -V β€” Displays the version of the llvm-install-name-tool executable. Slay, know your build πŸ¦‹

πŸ’€ EXIT STATUS πŸ’€

llvm-install-name-tool exits with a non-zero exit code if there's an error. Otherwise? It exits with code 0. Simple as that, no drama πŸ“

πŸ™ˆ BUGS πŸ™ˆ

Wanna report a bug? Please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/>

omg please actually report them, the LLVM team wants to know πŸ‘€

⭐ SEE ALSO ⭐


Author β€” Maintained by the LLVM Team (<https://llvm.org/>) 🫢

Copyright β€” 2003-2026, LLVM Project


okay that's the whole page bestie, ily, go forth and manipulate those install names πŸ’œ β€” this was LLVM-INSTALL-NAME-TOOL(1) from LLVM, version 23, dated 2026-10-20. mwah πŸ§šβ€β™€οΈβœ¨

πŸ“¦ where this page comes from
  • arch rolling: llvm 23.1.4-1 Β· Apache-2.0 WITH LLVM-exception
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms