LLVM-INSTALL-NAME-TOOL(1)

πŸ’– LLVM-INSTALL-NAME-TOOL πŸ’–

okay bestie, welcome to the LLVM manual page for llvm-install-name-tool β€” section 1, the "user commands" section, iykyk. this is the girlboss tool that rearranges install-names and rpaths in Mach-O binaries, and she is that girl. let's get into it ✨


🌸 NAME 🌸

llvm-install-name-tool β€” the LLVM tool for manipulating install-names and rpaths. no cap, that's literally her whole job description.


πŸŽ€ SYNOPSIS πŸŽ€

llvm-install-name-tool [options] input

πŸ¦‹ 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 the vibe. that's the whole thing. πŸ’…

and for most scenarios, it works as a drop-in replacement for Apple's install_name_tool. the way that it just slots right in?? iconic. no notes. 🫢


✨ OPTIONS ✨

okay so here's the thing: at least one of the following options are required, and some options can be combined with other options. specifically β€” -add_rpath, -delete_rpath, and -rpath can be combined in an invocation only if they do not share the same <rpath> value. that's the rule, bestie, don't fight it. 😌

  • -add_rpath <rpath> β€” adds an rpath named <rpath> to the specified binary. you can specify this multiple times to add multiple rpaths, go off πŸ‘‘. it throws an error if <rpath> is already listed in the binary. (rude, but fair.)
  • -change <old_install_name> <new_install_name> β€” changes an install name from <old_install_name> to <new_install_name> in the specified binary. specify it multiple times to change multiple dependent shared library install names, the more the merrier 🌈. this option is ignored if <old_install_name> is not listed in the specified binary β€” so it just kinda... shrugs and moves on πŸ™ˆ.
  • -delete_rpath <rpath> β€” deletes an rpath named <rpath> from the specified binary. can be specified multiple times to delete multiple rpaths, purge era πŸ’€. throws an error if <rpath> is not listed in the binary.
  • -delete_all_rpaths β€” deletes all rpaths from the binary. total wipeout. no survivors. 🧹✨
  • --help, -h β€” prints a summary of command line options. your little cheat sheet, bestie πŸ“
  • -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 β€” so, like, the final answer wins, periodt. this option is ignored if the specified Mach-O binary is not a dynamic shared library (she said not my department πŸ’…).
  • -rpath <old_rpath> <new_rpath> β€” changes 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 the drama, double the error 😭.
  • --version, -V β€” displays the version of the llvm-install-name-tool executable. slay, know your queen's birthday πŸŽ‚

πŸ’€ EXIT STATUS πŸ’€

llvm-install-name-tool exits with a non-zero exit code if there is an error. otherwise? she exits with code 0, flawless victory, main character energy. ⭐


πŸ› BUGS πŸ›

found a bug? to report bugs, please visit:

https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/

(the original page shows this URL broken across lines with a soft hyphen at the end of the first line β€” just paste it as one link, bestie, she's fine 🫢)


πŸ‘€ SEE ALSO πŸ‘€


πŸ‘‘ AUTHOR πŸ‘‘

maintained by the LLVM Team (https://llvm.org/). the whole squad, holding it down. πŸ’œ


2003-2025, LLVM Project


that's the whole page, bestie! every flag, every default, every error condition, every exit code β€” all present and accounted for. now go forth and manipulate those install names. you got this. πŸ¦‹βœ¨

LLVM-INSTALL-NAME-TOOL, page 14, dated 2025-05-22, brought to you by the LLVM Project β€” mwah, take care of her, she's precious πŸ’–πŸŽ€πŸŒΈ

πŸ“¦ where this page comes from