summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* * Don't clobber previously written sections.Eelco Dolstra2008-06-031-3/+13
|
* * Overwriting replaced sections with 'X's revealed a bug: we weren'tEelco Dolstra2008-05-291-1/+7
| | | | | | updating the DT_GNU_HASH field in the .dynamic section, which is a problem when we move the .gnu.hash section.
* * Ancient FreeBSD compat.Eelco Dolstra2008-05-291-0/+4
|
* * Support executables without a .dynamic section (klcc generatesEelco Dolstra2008-05-281-33/+36
| | | | | 'em).
* * More duplicate code removal.Eelco Dolstra2008-05-281-143/+120
|
* * Removed some duplicate code (and work around an apparent g++ codeEelco Dolstra2008-05-281-83/+40
| | | | | generation bug).
* * When reordering the section headers, the e_shstrndx field in the ELFEelco Dolstra2008-05-281-1/+7
| | | | | header should be updated as well.
* * Add the DT_RUNPATH (or DT_RPATH) entry to the top of the .dynamicEelco Dolstra2008-05-281-11/+8
| | | | | section, otherwise "readelf" barfs for unknown reasons.
* * A first attempt at --set-rpath support for libraries. This is veryEelco Dolstra2008-05-281-3/+170
| | | | | | | | | | useful for the NVIDIA libGL.so, since setting an RPATH on libGL.so to include its dependencies (like libXext and libGLcore) makes it unnecessary to set an RPATH on the executables that use it. This is especially important for executables that use RUNPATH (like Wine) since there the paths in RUNPATH are ignored when resolving the dependencies of dependencies (i.e. RUNPATH is scoped).
* * Support DT_RUNPATH (in fact, prefer DT_RUNPATH over DT_RPATH unlessEelco Dolstra2008-05-271-9/+49
| | | | | --force-rpath is set).
* * Sort the program headers. This makes "strip" contain less aboutEelco Dolstra2008-05-271-1/+27
| | | | | | the resulting executables (but unfortunately doesn't fix NIXPKGS-85).
* * Typos.Eelco Dolstra2008-05-271-2/+2
|
* * patchelf: fix compilation on GCC 4.3.0.Eelco Dolstra2008-05-211-1/+1
|
* * Compilation fixes for FreeBSD 4.Eelco Dolstra2008-05-091-0/+22
|
* * Remove debug lines.Eelco Dolstra2007-12-071-3/+0
|
* * Various 64-bit fixes. Computation of the first page to use wasEelco Dolstra2007-12-071-24/+28
| | | | | | | | | incorrect if the ELF image maps everything above 2^32 (which seems to be the case for IA-64, which has the code starting at 0x4000000000000000). * IA-64 support. Not tested since I don't have an IA-64 machine, but readelf doesn't complain about the resulting executable.
* * When sorting the sections, make sure that we maintain the sh_linkEelco Dolstra2007-02-011-10/+49
| | | | | and sh_info fields. Tricky.
* * Keep the section headers sorted by offset. If we don't, we won'tEelco Dolstra2007-02-011-6/+50
| | | | | | correctly find the sections to be moved and some might be overwritten.
* * Support big endian binaries (such as on powerpc-linux).Eelco Dolstra2007-01-311-88/+115
|
* * .rel.plt is called .rela.plt on x86_64-linux.Eelco Dolstra2007-01-311-2/+6
|
* * Instantiate the right template depending on whether the file is 32Eelco Dolstra2007-01-311-16/+39
| | | | | | or 64 bits. (This is done at runtime, so patchelf can patch 32 *and* 64-bit executables on both 32 and 64-bit platforms).
* * Templatise the ElfFile class to take the Elf32_* types asEelco Dolstra2007-01-311-59/+74
| | | | | | arguments. The idea is that we can just pass the Elf64_* types to get a 64-bit version of the class.
* * Put the ELF operations in a class.Eelco Dolstra2007-01-311-35/+77
|
* * Print error messages on stderr.Eelco Dolstra2007-01-311-2/+2
|
* * Hack: if we can't find .rel.dyn, use .rel.got. No idea if thisEelco Dolstra2006-03-031-5/+20
| | | | | makes sense.
* * `--interpreter' -> `--set-interpreter'.Eelco Dolstra2005-10-111-2/+2
|
* * A `--debug' flag.Eelco Dolstra2005-10-041-16/+36
|
* * Fix computation of the new start page.Eelco Dolstra2005-10-031-15/+22
|
* * Use a bigger maximum size.Eelco Dolstra2005-10-021-1/+2
|
* * Handle the case where no RPATH is present, so the .dynamic table hasEelco Dolstra2005-10-011-75/+129
| | | | | to be increased.
* * Handle `--set-rpath' for the growing case.Eelco Dolstra2005-09-301-12/+39
|
* * `patchelf --set-rpath': short case.Eelco Dolstra2005-09-301-11/+28
|
* * Refactoring continued: `--shrink-rpath' works again.Eelco Dolstra2005-09-301-134/+61
|
* * Clear out trailing and padding space.Eelco Dolstra2005-09-301-1/+6
|
* * Refactoring continued: `--set-interpreter' works again.Eelco Dolstra2005-09-301-49/+91
|
* * Start of refactoring to support growing the RPATH.Eelco Dolstra2005-09-301-28/+207
|
* * C++-ify.Eelco Dolstra2005-09-301-96/+92
|
* * Use a real programming language.Eelco Dolstra2005-09-302-5/+5
|
* * Add an operation `--print-rpath' to print the RPATH of the libraryEelco Dolstra2005-09-291-2/+12
| | | | | or executable and exit.
* * Added a flag `--print-interpreter' that prints the path of theEelco Dolstra2005-09-291-3/+16
| | | | | executable's ELF interpreter on standard output and exits.
* * Add tests.Eelco Dolstra2005-09-292-0/+413