FreeBSD Manual Pages
PATCHELF(1) User Manuals PATCHELF(1) NAME patchelf - Modify ELF files SYNOPSIS patchelf OPTION FILE ... DESCRIPTION PatchELF is a simple utility for modifying existing ELF executables and libraries. It can change the dynamic loader ("ELF interpreter") of ex- ecutables and change the RPATH of executables and libraries. OPTIONS The single option given operates on each FILE, editing in place. Any option taking a string argument can also take a file by prefixing the argument with the @ symbol. See EXAMPLES --page-size SIZE Uses the given page size instead of the default. --set-interpreter INTERPRETER Change the dynamic loader ("ELF interpreter") of executable given to INTERPRETER. --print-interpreter Prints the ELF interpreter of the executable. --print-soname Prints DT_SONAME entry of .dynamic section. Raises an error if DT_SONAME doesn't exist. --set-soname SONAME Sets DT_SONAME entry of a library to SONAME. --set-rpath RUNPATH Change the DT_RUNPATH of the executable or library to RUNPATH. --add-rpath RUNPATH Add RUNPATH to the existing DT_RUNPATH of the executable or li- brary. --remove-rpath Removes the DT_RPATH or DT_RUNPATH entry of the executable or library. --shrink-rpath Remove from the DT_RUNPATH or DT_RPATH all directories that do not contain a library referenced by DT_NEEDED fields of the exe- cutable or library. For instance, if an executable references one library libfoo.so, has an RPATH "/lib:/usr/lib:/foo/lib", and libfoo.so can only be found in /foo/lib, then the new RPATH will be "/foo/lib". --allowed-rpath-prefixes PREFIXES Combined with the "--shrink-rpath" option, this can be used for further rpath tuning. For instance, if an executable has an RPATH "/tmp/build-foo/.libs:/foo/lib", it is probably desirable to keep the "/foo/lib" reference instead of the "/tmp" entry. --print-rpath Prints the DT_RUNPATH or DT_RPATH for an executable or library. --force-rpath Forces the use of the obsolete DT_RPATH in the file instead of DT_RUNPATH. By default DT_RPATH is converted to DT_RUNPATH. --add-needed LIBRARY Adds a declared dependency on a dynamic library (DT_NEEDED). This option can be given multiple times. --replace-needed LIB_ORIG LIB_NEW Replaces a declared dependency on a dynamic library with another one (DT_NEEDED). This option can be given multiple times. --remove-needed LIBRARY Removes a declared dependency on LIBRARY (DT_NEEDED entry). This option can be given multiple times. --no-default-lib Marks the object so that the search for dependencies of this ob- ject will ignore any default library search paths. --output FILE Set the output file name. If not specified, the input will be modified in place. --debug Prints details of the changes made to the input file. --version Shows the version of patchelf. EXAMPLES To use the contents on an external file as a parameter: $ patchelf a.out --add-rpath @/tmp/generated-rpath.bin To change the RPATH of a binary. Note that $ORIGIN is a special symbol used by the loader, so must be quoted. patchelf --set-rpath '$ORIGIN/../lib64' a.out AUTHOR Eelco Dolstra <e.dolstra@tudelft.nl> SEE ALSO elf(5), ld.so(8) PATCHELF JUNE 2010 PATCHELF(1)
NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXAMPLES | AUTHOR | SEE ALSO
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=patchelf&sektion=1&manpath=FreeBSD+13.1-RELEASE+and+Ports>