LLVM-INSTALL-NAME-TOOL(1)

✨ LLVM-INSTALL-NAME-TOOL(1) ✨

okay bestie, so this is a page from the LLVM manual set, and it's all about llvm-install-name-tool πŸ’… buckle up


πŸŽ€ NAME πŸŽ€

llvm-install-name-tool β€” the LLVM tool for messing with install-names and rpaths, no cap


🌸 SYNOPSIS 🌸

llvm-install-name-tool [options] input

πŸ¦‹ DESCRIPTION πŸ¦‹

So like, llvm-install-name-tool is a tool that manipulates dynamic shared library install names and rpaths that are listed inside a Mach-O binary. that's the whole vibe πŸ’–

And for most scenarios?? it literally works as a drop-in replacement for Apple's install_name_tool. iconic behaviour honestly πŸ‘‘


πŸ’… OPTIONS πŸ’…

Real talk: you need at least one of these options, and some of them can be combined with the others. But here's the tea β˜• β€” -add_rpath, -delete_rpath, and -rpath can only be combined in a single invocation if they do not share the same <rpath> value. periodt.

  • -add_rpath <rpath> β€” adds an rpath named <rpath> to the binary you specified. you can pass this multiple times to stack up multiple rpaths, slay ✨ but heads up: it throws an error if <rpath> is already listed in the binary πŸ™ˆ
  • -change <old_install_name> <new_install_name> β€” swaps an install name from <old_install_name> to <new_install_name> in the binary you specified. pass it multiple times to change a whole bunch of dependent shared library install names at once πŸ’– and ngl, this option is ignored if <old_install_name> isn't even listed in the binary you gave it. it's giving "no thoughts, head empty" 😭
  • -delete_rpath <rpath> β€” deletes an rpath named <rpath> from the binary you specified. multiple times = multiple rpaths gone bye bye 🫢 but it throws an error if <rpath> isn't listed in the binary
  • -delete_all_rpaths β€” deletes every single rpath from the binary. cleanse era 🌈
  • --help, -h β€” prints a summary of the command line options πŸ“œ
  • -id <name> β€” changes the shared library's identification name under LC_ID_DYLIB to <name> in the binary you specified. if you specify it multiple times, only the last -id option gets picked, sorry to the others πŸ’€ and this option is ignored if the Mach-O binary you specified isn't a dynamic shared library. wrong binary, no service 🚫
  • -rpath <old_rpath> <new_rpath> β€” changes an rpath named <old_rpath> to <new_rpath> in the binary you specified. multiple times = multiple rpaths changed πŸ”₯ but it throws an error if <old_rpath> isn't listed in the binary, or if <new_rpath> is already listed in the binary. double trouble fr fr
  • --version, -V β€” displays the version of the llvm-install-name-tool executable ⭐

πŸ”₯ EXIT STATUS πŸ”₯

llvm-install-name-tool exits with a non-zero exit code if there's an error. otherwise?? it exits with code 0 and we celebrate πŸŽ‰


😭 BUGS 😭

to report bugs, please visit https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/ πŸ›


πŸ‘‘ SEE ALSO πŸ‘‘


πŸ’œ Author πŸ’œ

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

2003-2026, LLVM Project


and that's the whole page bestie 🫢 this was the LLVM llvm-install-name-tool page, page 22, dated 2026-07-16, brought to you by the LLVM Project β€” iykyk πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from