LLVM-INSTALL-NAME-TOOL(1)

πŸ’… NAME

okay so bestie, welcome to llvm-install-name-tool β€” the LLVM tool for manipulating install-names and rpaths. that's it, that's the whole vibe ✨


πŸŽ€ SYNOPSIS

llvm-install-name-tool [options] input

one binary, a pile of options, let's GO πŸ¦‹


🌸 DESCRIPTION

llvm-install-name-tool is literally the tool you reach for when you wanna manipulate dynamic shared library install names and the rpaths listed inside a Mach-O binary. no cap.

and for most scenarios? it works as a drop-in replacement for Apple's install_name_tool. so you can just slide in and nobody will even notice πŸ‘‘


✨ OPTIONS ✨

okay first things first: at least one of the following options is required. yes, minimum one. and some options can be combined with other options β€” but hear me out: -add_rpath, -delete_rpath, and -rpath can be combined in a single invocation only if they do not share the same <rpath> value. that's the rule, respect it πŸ™ˆ

  • -add_rpath <rpath> β€” adds an rpath named <rpath> to the specified binary. you can specify it multiple times to stack up multiple rpaths, iconic. throws an error if <rpath> is already listed in the binary β€” no duplicates allowed, periodt πŸ’€
  • -change <old_install_name> <new_install_name> β€” changes an install name <old_install_name> to <new_install_name> in the specified binary. specify it multiple times to change multiple dependent shared library install names, go off. option is ignored if <old_install_name> is not listed in the specified binary β€” it's giving "no notes, we move on" 🫢
  • -delete_rpath <rpath> β€” deletes an rpath named <rpath> from the specified binary. multiple times = multiple deletions, slay. throws an error if <rpath> is not listed in the binary 😭
  • -delete_all_rpaths β€” deletes all rpaths from the binary. every single one. main character energy, zero survivors πŸ’…
  • --help, -h β€” print a summary of command line options. the glow-up 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, always). option is ignored if the specified Mach-O binary is not a dynamic shared library β€” know your audience πŸŽ€
  • -rpath <old_rpath> <new_rpath> β€” changes an rpath named <old_rpath> to <new_rpath> in the specified binary. multiple times = multiple rpath glow-ups. throws an error if <old_rpath> is not listed in the binary or <new_rpath> is already listed in the binary β€” both ways, it's a no 😀
  • --version, -V β€” display the version of the llvm-install-name-tool executable. gotta know what you're working with ⭐

🌈 EXIT STATUS

llvm-install-name-tool exits with a non-zero exit code if there is an error. otherwise? it exits with code 0. clean, flawless, no drama πŸ’œ


πŸ’€ BUGS

found a bug? to report bugs, please visit https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/ β€” the LLVM team wants to hear from you fr fr πŸ›


πŸ‘‘ SEE ALSO

  • llvm-objcopy(1) <llvm-objcopy.html> β€” its bestie, its partner in crime πŸ¦‹

🧚 Author

Maintained by the LLVM Team (https://llvm.org/). absolute icons, honestly 🌸


2003-2026, LLVM Project. all the rights, all the years πŸ’–


okay that's the whole page bestie, you're officially caught up 🫢 LLVM, version 21, dated 2026-05-15 β€” mwah, go manipulate some install names πŸ’…βœ¨

πŸ“¦ where this page comes from