Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

UsuallyGO/patchelf

Repository files navigation

PatchELF is a simple utility for modifing existing ELF executables and
libraries. In particular, it can do the following:
* Change the dynamic loader ("ELF interpreter") of executables:
 $ patchelf --set-interpreter /lib/my-ld-linux.so.2 my-program
* Change the RPATH of executables and libraries:
 $ patchelf --set-rpath /opt/my-libs/lib:/other-libs my-program
* Shrink the RPATH of executables and libraries:
 $ patchelf --shrink-rpath my-program
 This removes 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".
* Remove declared dependencies on dynamic libraries (DT_NEEDED
 entries):
 $ patchelf --remove-needed libfoo.so.1 my-program
 This option can be given multiple times.
* Add a declared dependency on a dynamic library (DT_NEEDED):
 $ patchelf --add-needed libfoo.so.1 my-program
 This option can be give multiple times.
* Replace a declared dependency on a dynamic library with another one
 (DT_NEEDED):
 $ patchelf --replace-needed liboriginal.so.1 libreplacement.so.1 my-program
 This option can be give multiple times.
AUTHOR
Copyright 2004-2013 Eelco Dolstra <eelco.dolstra@logicblox.com>.
LICENSE
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
HOMEPAGE
http://nixos.org/patchelf.html
BUGS
The `strip' command from binutils generated broken executables when
applied to the output of patchelf (if `--set-rpath' or
`--set-interpreter' with a larger path than the original is used).
This appears to be a bug in binutils
(http://bugs.strategoxt.org/browse/NIXPKGS-85).
RELEASE HISTORY
0.8 (January 15, 2014):
* Fix a segfault caused by certain illegal entries in symbol tables.
0.7 (January 7, 2014):
* Rewrite section indices in symbol tables. This for instance allows
 gdb to show proper backtraces.
* Added `--remove-needed' option.
0.6 (November 7, 2011):
* Hacky support for executables created by the Gold linker.
* Support segments with an alignment of 0 (contributed by Zack
 Weinberg).
* Added a manual page (contributed by Jeremy Sanders
 <jeremy@jeremysanders.net>).
0.5 (November 4, 2009):
* Various bugfixes.
* `--force-rpath' now deletes the DT_RUNPATH if it is present.
0.4 (June 4, 2008):
* Support for growing the RPATH on dynamic libraries.
* IA-64 support (not tested) and related 64-bit fixes.
* FreeBSD support.
* `--set-rpath', `--shrink-rpath' and `--print-rpath' now prefer
 DT_RUNPATH over DT_RPATH, which is obsolete. When updating, if both
 are present, both are updated. If only DT_RPATH is present, it is
 converted to DT_RUNPATH unless `--force-rpath' is specified. If
 neither is present, a DT_RUNPATH is added unless `--force-rpath' is
 specified, in which case a DT_RPATH is added.
0.3 (May 24, 2007):
* Support for 64-bit ELF binaries (such as on x86_64-linux).
* Support for big-endian ELF binaries (such as on powerpc-linux).
* Various bugfixes.
0.2 (January 15, 2007):
* Provides a hack to get certain programs (such as the
 Belastingaangifte 2005) to work.
0.1 (October 11, 2005):
* Initial release.

About

A small utility to modify the dynamic linker and RPATH of ELF executables

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 63.4%
  • C++ 28.5%
  • Shell 4.1%
  • Nix 4.0%

AltStyle によって変換されたページ (->オリジナル) /