LLVM-INSTALL-NAME-TOOL(1)

πŸ’… NAME πŸ’…

llvm-install-name-tool β€” the LLVM tool for manipulating install-names and rpaths, bestie. Like, the whole manual is LLVM, and this page is section 1, but you already knew that 🫢


✨ SYNOPSIS ✨

llvm-install-name-tool [options] input

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so picture this: llvm-install-name-tool is the tool you use to manipulate dynamic shared library install names and rpaths that are listed in a Mach-O binary. That's it, that's the vibe πŸ’…

And for most scenarios, it works as a drop-in replacement for Apple's install_name_tool. No cap, it just slides right in πŸ”₯


πŸŽ€ OPTIONS πŸŽ€

At least one of the following options is required, and some options can be combined with other options, iykyk. Options -add_rpath, -delete_rpath, and -rpath can be combined in an invocation only if they do not share the same <rpath> value. Read that twice, bestie πŸ™ˆ

  • -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, it's already there, girl πŸ’€
  • -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. Glow-up for one library at a time ✨
  • -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. You can't delete what was never there, bestie 😭
  • -delete_all_rpaths β€” Deletes all rpaths from the binary. Main character energy: total wipeout πŸ‘‘
  • --help, -h β€” Print a summary of command line options. The classic "help me help you" moment 🫢
  • -id <name> β€” Change the 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 (the others are lowkey ignored, sorry πŸ’€). Option is ignored if the specified Mach-O binary is not a dynamic shared library.
  • -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. Both sides gotta be valid, periodt πŸ”₯
  • --version, -V β€” Display the version of the llvm-install-name-tool executable. Vibe check the build 🌸

🌈 EXIT STATUS 🌈

llvm-install-name-tool exits with a non-zero exit code if there is an error. Otherwise, it exits with code 0. Simple as that, slay πŸ’…


πŸ’€ BUGS πŸ’€

To report bugs, please visit https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/. Go off, tell them everything πŸ™ˆ


⭐ SEE ALSO ⭐

llvm-objcopy(1) β€” the sibling, the icon, the reference πŸŽ€


πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). They're literally carrying the whole toolchain, honestly 🫢


2003-2025, LLVM Project


Okay bestie, that's the whole page πŸ¦‹ this was LLVM-INSTALL-NAME-TOOL(1), LLVM version 19, dated 2025-01-17 β€” go forth and manipulate those install names, no cap πŸ’œβœ¨

πŸ“¦ where this page comes from