LLVM-INSTALL-NAME-TOOL(1)

πŸ’… LLVM-INSTALL-NAME-TOOL(1) β€” the LLVM manual, bestie edition πŸŽ€

okay so real talk: this is the man page for llvm-install-name-tool, a tool from LLVM, and I'm gonna walk you through it like we're texting at 2am. no cap, it's actually not that deep once you get the vibe. πŸ¦‹


✨ NAME ✨

llvm-install-name-tool β€” the LLVM tool for manipulating install-names and rpaths. that's the whole job. iconic, honestly. πŸ‘‘


🌸 SYNOPSIS 🌸

llvm-install-name-tool [options] input

that's it. options, then your input binary. she's lowkey simple like that. πŸ’–


πŸ’« DESCRIPTION πŸ’«

llvm-install-name-tool is a tool to manipulate dynamic shared library install names and rpaths listed in a Mach-O binary. mach-o binaries, specifically. not vibing with anything else. πŸ“

for most scenarios, it works as a drop-in replacement for Apple's install_name_tool. yes bestie, the way it just slots in β€” we love a seamless swap. ✨


πŸ‘‘ OPTIONS πŸ‘‘

okay so here's the deal: at least one of the following options are required, and some options can be combined with other options. (not all of them though β€” read the fine print, i gotchu.) πŸ“–

specifically: options -add_rpath, -delete_rpath, and -rpath can be combined in an invocation only if they do not share the same <rpath> value. like, they can hang out together, just not wearing the same outfit. πŸ’…

  • -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. (rude of it to already be there, honestly πŸ’€)
  • -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 β€” she just shrugs and moves on, no drama. πŸ™ˆ
  • -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. (can't delete what isn't there, bestie 😭)
  • -delete_all_rpaths β€” deletes all rpaths from the binary. all of them. the whole collection. gone. πŸ”₯
  • --help, -h β€” print a summary of command line options. the classic. the icon. 🫢
  • -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.
  • -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 jeopardy, no cap. ⚠️
  • --version, -V β€” display the version of the llvm-install-name-tool executable. say hi to her for me. 🌈

⭐ 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 like, 0 = slay, anything else = something went sideways. πŸ’€


πŸ¦‹ BUGS πŸ¦‹

to report bugs, please visit <https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/>. found a problem? tell the devs, don't suffer in silence bestie 🫢


🧚 SEE ALSO 🧚

llvm-objcopy(1) β€” go read that one too, iykyk πŸ’œ


🌸 AUTHOR 🌸

maintained by the LLVM Team (https://llvm.org/). legends, honestly. πŸŽ€


2003-2023, LLVM Project


ngl that's the whole page. every flag, every quirk, every "throws an error if". nothing skipped, nothing invented. periodt. πŸ’…βœ¨

okay bye bestie β€” this page was page 17, dated 2023-12-01, from the LLVM-INSTALL-NAME-TOOL(1) manual, and you absolutely ate that read. πŸ“πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from