patchelf - Modify ELF files
PatchELF is a simple utility for modifying existing ELF
executables and libraries. It can change the dynamic loader ("ELF
interpreter") of executables and change the RPATH of executables and
libraries.
The single option given operates on a given FILE, editing in
place.
- --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
RPATH
- Change the RPATH of the executable or library to RPATH.
- --remove-rpath
- Removes the DT_RPATH or DT_RUNPATH entry of the executable or library.
- --shrink-rpath
- Remove from the RPATH all directories that do not contain a library
referenced by DT_NEEDED fields of the executable 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 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 give 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 give 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 that the search for dependencies of this object will
ignore any default library search paths.
- --debug
- Prints details of the changes made to the input file.
- --version
- Shows the version of patchelf.
Eelco Dolstra <e.dolstra@tudelft.nl>