LLVM-INSTALL-NAME-TOOL(1)

πŸ“¦
version 16.0.6 Β· 3 versions
, in ubuntu noble

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

okay so real talk, this page is from the LLVM manual, and it's all about llvm-install-name-tool β€” the girlies who remix install-names and rpaths in Mach-O binaries. buckle up, we're getting into it πŸŽ€


✨ NAME ✨

llvm-install-name-tool β€” the LLVM tool for manipulating install-names and rpaths. that's it, that's the whole vibe πŸ¦‹


🫢 SYNOPSIS 🫢

llvm-install-name-tool [options] input

literally just options and then your input. no notes. periodt.


πŸ’– DESCRIPTION πŸ’–

llvm-install-name-tool is the tool that manipulates dynamic shared library install names and rpaths listed inside a Mach-O binary. it's giving surgeon but for library paths πŸ”₯

and for most scenarios? it works as a drop-in replacement for Apple's install_name_tool. no cap. it just slots right in there like it was always meant to be πŸ‘‘


🌸 OPTIONS 🌸

okay bestie, listen β€” you need at least one of these options, and some of them can be combined with each other. but here's the tea: -add_rpath, -delete_rpath, and -rpath can only be combined in one invocation if they do not share the same <rpath> value. so like, no fighting over the same rpath, mwah πŸ’…

  • -add_rpath <rpath> β€” adds an rpath named <rpath> to the specified binary. can be specified multiple times to add multiple rpaths, go off. but it throws an error if <rpath> is already listed in the binary πŸ’€
  • -change <old_install_name> <new_install_name> β€” changes an install name from <old_install_name> to <new_install_name> in the specified binary. can be specified multiple times to change multiple dependent shared library install names. and lowkey, the option is just ignored if <old_install_name> isn't listed in the specified binary πŸ™ˆ
  • -delete_rpath <rpath> β€” deletes an rpath named <rpath> from the specified binary. can be specified multiple times to delete multiple rpaths. throws an error if <rpath> isn't listed in the binary 😭
  • -delete_all_rpaths β€” deletes all the rpaths from the binary. all of them. gone. iconic destructive energy ⭐
  • --help, -h β€” prints a summary of command line options. your bestie when you're lost 🧚
  • -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 pick a favourite, she's monogamous πŸ’œ). the option is ignored if the specified Mach-O binary isn't a dynamic shared library
  • -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> isn't listed in the binary or if <new_rpath> is already listed in the binary πŸ”₯
  • --version, -V β€” displays the version of the llvm-install-name-tool executable πŸŽ€

πŸ¦‹ EXIT STATUS πŸ¦‹

if there's an error, llvm-install-name-tool exits with a non-zero exit code. otherwise? it exits with code 0. clean, simple, slay ✨


πŸ’€ BUGS πŸ’€

got bugs to report? pls don't suffer in silence bestie, visit:

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

🌈 SEE ALSO 🌈

  • llvm-objcopy(1) β€” the sibling, the companion, the other main character 🫢

πŸ‘‘ AUTHOR πŸ‘‘

maintained by the LLVM Team (https://llvm.org/). the girlies behind the curtain πŸ’…


2003-2024, LLVM Project


no cap, that's the whole page. go remix those install names bestie πŸŽ€

mwah πŸ’‹ β€” this was page 15 of the LLVM-INSTALL-NAME-TOOL(1) manual, dated 2024-04-14, brought to you by the LLVM manual fam. take care of her, she's iconic 🌸

πŸ“¦ where this page comes from