# llvm-install-name-tool - LLVM tool for manipulating install-names and rpaths

```{program} llvm-install-name-tool
```

## SYNOPSIS

{program}`llvm-install-name-tool` \[*options*\] *input*

## DESCRIPTION

{program}`llvm-install-name-tool` is a tool to manipulate dynamic shared library
install names and rpaths listed in a Mach-O binary.

For most scenarios, it works as a drop-in replacement for Apple's
{program}`install_name_tool`.

## OPTIONS

At least one of the following options are required, and some options can be
combined with other options. Options {option}`-add_rpath`, {option}`-delete_rpath`,
and {option}`-rpath` can be combined in an invocation only if they do not share
the same `<rpath>` value.

:::{option} -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.
:::

:::{option} -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.
:::

:::{option} -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.
:::

:::{option} -delete_all_rpaths
Deletes all rpaths from the binary.
:::

:::{option} --help, -h
Print a summary of command line options.
:::

:::{option} -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 {option}`-id` option is
selected. Option is ignored if the specified Mach-O binary is not a dynamic shared library.
:::

:::{option} -o <file>, --output <file>
Write the modified binary to `<file>` instead of updating the input file in place.
:::

:::{option} -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.
:::

:::{option} --version, -V
Display the version of the {program}`llvm-install-name-tool` executable.
:::

## EXIT STATUS

{program}`llvm-install-name-tool` exits with a non-zero exit code if there is an error.
Otherwise, it exits with code 0.

## BUGS

To report bugs, please visit \<<https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy/strip/>>.

## SEE ALSO

{manpage}`llvm-objcopy(1)`

