update_prebinding(1)

NAME
update_prebinding - Update prebinding information when new system libraries or frameworks are installed

SYNOPSIS
update_prebinding [-root directory] [-force] [-debug]

DESCRIPTION
update_prebinding ensures that prebinding information is up-to-date after new versions of system libraries are installed. Prebinding information is pre-calculated address information for libraries used by a given library. By pre-determining where a function in another library is destined to be placed, the dynamic linker does not have to resolve symbols at application startup time, and the application can launch faster.

Because each recompilation of a library may place functions at different addresses, a newly installed library's prebinding information might not match the libraries already on the disk. When the dynamic linker determines that prebinding information for a library could be invalid, it defaults to resolving all the names for that library, and for all libraries referenced by that library, losing any advantage of having the prebinding information.

The -root option specifies the directory tree to search for changed files. This is usually the root directory. update_prebinding will look for dependent libraries within this directory hierarchy, but will not go to different file systems. The argument allows you to update prebinding information for a specific file to match a non-running version of the operating system on another partition. update_prebinding uses the root to find the system libraries for that version of the OS. The root argument is not intended to limit update_prebinding's effect to a particular set of libraries. By default, update_prebinding only changes a file if the prebinding is out of date.

The -force option ensures that all files examined are re-prebound, even if the prebinding is otherwise up-to-date. The command update_prebinding -root / -force will prebind all binaries on the root volume, even if otherwise correct.

The -debug option prints out additional information while the prebinding is being updated.

Issues
update_prebinding only work on libraries that have been compiled and linked with the prebinding information added. Applications still gain the benefits of prebinding as long as the system libraries used by the application have been correctly prebound.

Updating prebinding for a given library can fail if any of its dependent libraries are invalid -- not prebound, expected load address conflicting with other loaded libraries, or missing architecture in a fat library. To test if an application is able to use prebinding information, set the environment variable DYLD_PREBIND_DEBUG. (See dyld(1) for details on this option.)

SEE ALSO
dyld(1)