Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove debug statement | Eelco Dolstra | 2013-01-16 | 1 | -2/+0 |
| | |||||
* | Add ‘--remove-needed’ option | Eelco Dolstra | 2013-01-16 | 1 | -2/+42 |
| | | | | | | | This allows removing the specified DT_NEEDED entries from the dynamic section. Closes #4. | ||||
* | Comment out overly verbose debug line | Eelco Dolstra | 2012-08-21 | 1 | -1/+1 |
| | |||||
* | Rewrite the st_shndx field in symbol tables | Eelco Dolstra | 2012-08-21 | 1 | -4/+29 |
| | | | | | | | The st_shndx field in symbol tables specifies the index of the section that contains the symbol. Since we reorder sections, we need to update this field as well. Otherwise programs like gdb won't be able to resolve addresses to symbol names (and will print "?? ()" instead). | ||||
* | Remove trailing whitespace | Eelco Dolstra | 2012-08-21 | 1 | -52/+52 |
| | |||||
* | * Support executables created by the Gold linker (NixOS/140). These | Eelco Dolstra | 2011-09-11 | 1 | -5/+40 |
| | | | | | | | | | | | | are marked as ET_DYN (not ET_EXEC) and have a starting virtual address of 0 so they cannot grow downwards. In order not to run into a Linux kernel bug, the virtual address and the offset of the new PT_LOAD segment have to be equal; otherwise ld-linux segfaults. To ensure this, it may be necessary to add some padding to the executable (potentially a lot of padding, if the executable has a large uninitialised data segment). * Use size_t rather than off_t in some places. | ||||
* | * Fix patching a little-endian binary on a big-endian machine. This | Eelco Dolstra | 2010-08-26 | 1 | -5/+5 |
| | | | | | fixes the no-rpath test on powerpc-linux. | ||||
* | * Update DT_RELA. | Eelco Dolstra | 2010-08-26 | 1 | -1/+2 |
| | |||||
* | I forgot in the last commit (enabling patchelf on the fuloong2f) to change some | Lluís Batlle i Rossell | 2010-07-29 | 1 | -2/+2 |
| | | | | | | 4096 to the pageSize decided at the top of the module. | ||||
* | Making patchelf work on a MIPS machine with 16KB page size (it's set in its ↵ | Lluís Batlle i Rossell | 2010-07-29 | 1 | -0/+5 |
| | | | | | | | | kernel defconfig), the Lemote Fuloong 2F. | ||||
* | * Segments can have a zero alignment, causing a divide-by-zero error. | Eelco Dolstra | 2010-04-06 | 1 | -1/+2 |
| | | | | | Ignore those. (Contributed by Zack Weinberg.) | ||||
* | * Remove macros defined in elf.h. | Eelco Dolstra | 2009-10-14 | 1 | -27/+0 |
| | |||||
* | * Include a copy of Glibc's elf.h so that we're not dependant on the | Eelco Dolstra | 2009-10-14 | 3 | -2/+2676 |
| | | | | | (lack of) elf.h on various platforms. | ||||
* | * Use the e_type field instead of trying to guess whether we’re | Eelco Dolstra | 2009-06-16 | 1 | -6/+6 |
| | | | | | dealing with an executable or dynamic library. Fixes NIXPKGS-98. | ||||
* | * When using --force-rpath and the executable already has a | Eelco Dolstra | 2009-05-07 | 1 | -0/+7 |
| | | | | | | | DT_RUNPATH, get rid of it. Sometimes you really want a DT_RPATH rather than a DT_RUNPATH, since the former is global (affects the search path of dependencies as well) while the latter is local. | ||||
* | * Implement --version, --help. | Eelco Dolstra | 2009-02-24 | 1 | -3/+18 |
| | |||||
* | * Handle PT_LOAD program headers that become unaligned after adding | Eelco Dolstra | 2009-01-30 | 1 | -1/+7 |
| | | | | | | an extra page to the start of the file. The dynamic loader doesn't like this (but the kernel doesn't mind). | ||||
* | * Don't clobber previously written sections. | Eelco Dolstra | 2008-06-03 | 1 | -3/+13 |
| | |||||
* | * Overwriting replaced sections with 'X's revealed a bug: we weren't | Eelco Dolstra | 2008-05-29 | 1 | -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 Dolstra | 2008-05-29 | 1 | -0/+4 |
| | |||||
* | * Support executables without a .dynamic section (klcc generates | Eelco Dolstra | 2008-05-28 | 1 | -33/+36 |
| | | | | | 'em). | ||||
* | * More duplicate code removal. | Eelco Dolstra | 2008-05-28 | 1 | -143/+120 |
| | |||||
* | * Removed some duplicate code (and work around an apparent g++ code | Eelco Dolstra | 2008-05-28 | 1 | -83/+40 |
| | | | | | generation bug). | ||||
* | * When reordering the section headers, the e_shstrndx field in the ELF | Eelco Dolstra | 2008-05-28 | 1 | -1/+7 |
| | | | | | header should be updated as well. | ||||
* | * Add the DT_RUNPATH (or DT_RPATH) entry to the top of the .dynamic | Eelco Dolstra | 2008-05-28 | 1 | -11/+8 |
| | | | | | section, otherwise "readelf" barfs for unknown reasons. | ||||
* | * A first attempt at --set-rpath support for libraries. This is very | Eelco Dolstra | 2008-05-28 | 1 | -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 unless | Eelco Dolstra | 2008-05-27 | 1 | -9/+49 |
| | | | | | --force-rpath is set). | ||||
* | * Sort the program headers. This makes "strip" contain less about | Eelco Dolstra | 2008-05-27 | 1 | -1/+27 |
| | | | | | | the resulting executables (but unfortunately doesn't fix NIXPKGS-85). | ||||
* | * Typos. | Eelco Dolstra | 2008-05-27 | 1 | -2/+2 |
| | |||||
* | * patchelf: fix compilation on GCC 4.3.0. | Eelco Dolstra | 2008-05-21 | 1 | -1/+1 |
| | |||||
* | * Compilation fixes for FreeBSD 4. | Eelco Dolstra | 2008-05-09 | 1 | -0/+22 |
| | |||||
* | * Remove debug lines. | Eelco Dolstra | 2007-12-07 | 1 | -3/+0 |
| | |||||
* | * Various 64-bit fixes. Computation of the first page to use was | Eelco Dolstra | 2007-12-07 | 1 | -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_link | Eelco Dolstra | 2007-02-01 | 1 | -10/+49 |
| | | | | | and sh_info fields. Tricky. | ||||
* | * Keep the section headers sorted by offset. If we don't, we won't | Eelco Dolstra | 2007-02-01 | 1 | -6/+50 |
| | | | | | | correctly find the sections to be moved and some might be overwritten. | ||||
* | * Support big endian binaries (such as on powerpc-linux). | Eelco Dolstra | 2007-01-31 | 1 | -88/+115 |
| | |||||
* | * .rel.plt is called .rela.plt on x86_64-linux. | Eelco Dolstra | 2007-01-31 | 1 | -2/+6 |
| | |||||
* | * Instantiate the right template depending on whether the file is 32 | Eelco Dolstra | 2007-01-31 | 1 | -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 as | Eelco Dolstra | 2007-01-31 | 1 | -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 Dolstra | 2007-01-31 | 1 | -35/+77 |
| | |||||
* | * Print error messages on stderr. | Eelco Dolstra | 2007-01-31 | 1 | -2/+2 |
| | |||||
* | * Hack: if we can't find .rel.dyn, use .rel.got. No idea if this | Eelco Dolstra | 2006-03-03 | 1 | -5/+20 |
| | | | | | makes sense. | ||||
* | * `--interpreter' -> `--set-interpreter'. | Eelco Dolstra | 2005-10-11 | 1 | -2/+2 |
| | |||||
* | * A `--debug' flag. | Eelco Dolstra | 2005-10-04 | 1 | -16/+36 |
| | |||||
* | * Fix computation of the new start page. | Eelco Dolstra | 2005-10-03 | 1 | -15/+22 |
| | |||||
* | * Use a bigger maximum size. | Eelco Dolstra | 2005-10-02 | 1 | -1/+2 |
| | |||||
* | * Handle the case where no RPATH is present, so the .dynamic table has | Eelco Dolstra | 2005-10-01 | 1 | -75/+129 |
| | | | | | to be increased. | ||||
* | * Handle `--set-rpath' for the growing case. | Eelco Dolstra | 2005-09-30 | 1 | -12/+39 |
| | |||||
* | * `patchelf --set-rpath': short case. | Eelco Dolstra | 2005-09-30 | 1 | -11/+28 |
| | |||||
* | * Refactoring continued: `--shrink-rpath' works again. | Eelco Dolstra | 2005-09-30 | 1 | -134/+61 |
| |