2010-06-10 16:55:30 +08:00
|
|
|
.\" Process this file with
|
|
|
|
.\" groff -man -Tascii foo.1
|
|
|
|
.\"
|
|
|
|
.TH PATCHELF 1 "JUNE 2010" PATCHELF "User Manuals"
|
|
|
|
.SH NAME
|
|
|
|
patchelf - Modify ELF files
|
|
|
|
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B patchelf
|
|
|
|
.I OPTION
|
|
|
|
.B
|
|
|
|
.I FILE
|
|
|
|
.B
|
|
|
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
.SH OPTIONS
|
|
|
|
|
|
|
|
The single option given operates on a given FILE, editing in place.
|
|
|
|
|
2016-01-15 09:56:04 +08:00
|
|
|
.IP "--page-size SIZE"
|
|
|
|
Uses the given page size instead of the default.
|
|
|
|
|
2010-06-10 16:55:30 +08:00
|
|
|
.IP "--set-interpreter INTERPRETER"
|
|
|
|
Change the dynamic loader ("ELF interpreter") of executable given to
|
|
|
|
INTERPRETER.
|
|
|
|
|
2014-03-29 02:26:33 +08:00
|
|
|
.IP --print-interpreter
|
2010-06-10 16:55:30 +08:00
|
|
|
Prints the ELF interpreter of the executable.
|
|
|
|
|
2015-07-25 02:34:42 +08:00
|
|
|
.IP --print-soname
|
|
|
|
Prints DT_SONAME entry of .dynamic section.
|
|
|
|
Raises an error if DT_SONAME doesn't exist.
|
|
|
|
|
|
|
|
.IP "--set-soname SONAME"
|
|
|
|
Sets DT_SONAME entry of a library to SONAME.
|
|
|
|
|
2010-06-10 16:55:30 +08:00
|
|
|
.IP "--set-rpath RPATH"
|
|
|
|
Change the RPATH of the executable or library to RPATH.
|
|
|
|
|
2015-07-25 02:34:42 +08:00
|
|
|
.IP --remove-rpath
|
|
|
|
Removes the DT_RPATH or DT_RUNPATH entry of the executable or library.
|
|
|
|
|
2010-06-10 16:55:30 +08:00
|
|
|
.IP --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".
|
|
|
|
|
2016-06-04 05:25:02 +08:00
|
|
|
.IP "--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.
|
|
|
|
|
2010-06-10 16:55:30 +08:00
|
|
|
.IP --print-rpath
|
|
|
|
Prints the RPATH for an executable or library.
|
|
|
|
|
|
|
|
.IP --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.
|
|
|
|
|
2014-06-03 21:51:53 +08:00
|
|
|
.IP "--add-needed LIBRARY"
|
|
|
|
Adds a declared dependency on a dynamic library (DT_NEEDED).
|
|
|
|
This option can be give multiple times.
|
|
|
|
|
|
|
|
.IP "--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.
|
|
|
|
|
2014-03-19 02:04:17 +08:00
|
|
|
.IP "--remove-needed LIBRARY"
|
|
|
|
Removes a declared depency on LIBRARY (DT_NEEDED entry). This
|
|
|
|
option can be given multiple times.
|
2013-12-18 04:05:16 +08:00
|
|
|
|
2014-10-23 01:41:47 +08:00
|
|
|
.IP "--no-default-lib"
|
|
|
|
Marks the object that the search for dependencies of this object will ignore any
|
|
|
|
default library search paths.
|
|
|
|
|
2010-06-10 16:55:30 +08:00
|
|
|
.IP --debug
|
|
|
|
Prints details of the changes made to the input file.
|
|
|
|
|
|
|
|
.IP --version
|
|
|
|
Shows the version of patchelf.
|
|
|
|
|
|
|
|
.SH AUTHOR
|
|
|
|
Eelco Dolstra <e.dolstra@tudelft.nl>
|
|
|
|
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR elf (5),
|
|
|
|
.BR ld.so (8)
|
|
|
|
|
|
|
|
|