LLVM-INSTALL-NAME-TOOL(1)

πŸ¦‹ LLVM-INSTALL-NAME-TOOL β€” the llvm-install-name-tool era πŸ¦‹

okay bestie, welcome to llvm-install-name-tool(1), LLVM's very own tool for messing with install-names and rpaths. she's from the LLVM manual pages, she's gorgeous, and she's about to make your Mach-O binaries behave. πŸ’…


✨ SYNOPSIS ✨

llvm-install-name-tool [options] input

literally that's it. options + your input file. slay.


πŸ’– DESCRIPTION πŸ’–

so llvm-install-name-tool is a tool to manipulate dynamic shared library install names and rpaths listed in a Mach-O binary. that's her whole job. she's locked in. πŸ”’

and here's the tea πŸ«–: for most scenarios, it works as a drop-in replacement for Apple's install_name_tool. like, you can just swap her in. no cap. iconic behavior tbh.


🌸 OPTIONS 🌸

okay so the rules first, because there are rules:

  • At least one of the following options are required
  • some options can be combined with other options
  • -add_rpath, -delete_rpath, and -rpath can be combined in an invocation only if they do not share the same <rpath> value

got it? got it. now let's go option by option, i'm obsessed with each of them: πŸŽ€

  • -add_rpath <rpath> β€” Add an rpath named <rpath> to the specified binary. Can be specified multiple times to add multiple rpaths. Throws an error if <rpath> is already listed in the binary. like hello we don't do duplicates?? πŸ’€
  • -change <old_install_name> <new_install_name> β€” Change an install name <old_install_name> to <new_install_name> in the specified binary. Can be specified multiple times to change multiple dependent shared library install names. Option is ignored if <old_install_name> is not listed in the specified binary. so chill. no drama. it just gets ignored. πŸ™ˆ
  • -delete_rpath <rpath> β€” Delete an rpath named <rpath> from the specified binary. Can be specified multiple times to delete multiple rpaths. Throws an error if <rpath> is not listed in the binary. she's not here, so there's nothing to delete, and she WILL tell you about it.
  • -delete_all_rpaths β€” Deletes all rpaths from the binary. all of them. every single one. goodbye rpaths 🫢
  • --help, -h β€” Print a summary of command line options. classic. love her for that.
  • -id <name> β€” Change shared library's identification name under LC_ID_DYLIB to <name> in the specified binary. If specified multiple times, only the last -id option is selected (last one wins, main character energy πŸ‘‘). Option is ignored if the specified Mach-O binary is not a dynamic shared library. she knows what she's doing, don't worry.
  • -rpath <old_rpath> <new_rpath> β€” Change 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> is not listed in the binary or <new_rpath> is already listed in the binary. double ✨error✨ conditions, so read them: old one must exist, new one must NOT already exist. no cap.
  • --version, -V β€” Display the version of the llvm-install-name-tool executable. pop off, version string. πŸŽ‰

⭐ EXIT STATUS ⭐

llvm-install-name-tool exits with a non-zero exit code if there is an error. Otherwise, it exits with code 0.

so: 0 = we ate πŸ“, non-zero = something went sideways 😭.


πŸ› BUGS πŸ›

To report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/>. tell them everything bestie, they wanna know. πŸ™


🌈 SEE ALSO 🌈

  • llvm-objcopy(1) <llvm-objcopy.html> β€” her sibling. go say hi. πŸ’œ

πŸ‘‘ Author πŸ‘‘

Maintained by the LLVM Team (<https://llvm.org/>). slay.


2003-2026, LLVM Project


and that's the whole page! πŸ’– this was issue 15, dated 2026-09-09, from the LLVM girlies themselves β€” take care of her, she's iconic, and she exits 0 when she's happy. bye bestie!! πŸ¦‹βœ¨

πŸ“¦ where this page comes from