summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Don't create a temporary copy to not break hardlinks (fixes #32)darealshinji2015-07-131-30/+9
|
* Quick fix for #47Eelco Dolstra2015-07-101-1/+1
|
* Merge pull request #35 from darealshinji/patch-2Eelco Dolstra2015-06-231-217/+847
|\ | | | | Update elf.h
| * comment out Glibc-specific linesdarealshinji2014-08-291-4/+4
| |
| * Update elf.hdarealshinji2014-08-281-217/+847
| |
* | Shut up some warningsEelco Dolstra2014-11-061-9/+5
| |
* | let's print compiler warningsdarealshinji2014-11-061-0/+2
| |
* | Add option --no-default-libChangli Gao2014-10-221-0/+50
|/ | | | | Marks the object that the search for dependencies of this object will ignore any default library search paths.
* Use libattr and libacl to copy permissions if availableJeremy Sanders2014-07-291-0/+17
|
* Merge branch 'master' of github.com:ext/patchelfEelco Dolstra2014-04-241-1/+1
|\
| * support -h in addition to --helpDavid Sveningsson2013-12-171-1/+1
| |
* | Merge branch 'master' of github.com:rgcjonas/patchelfEelco Dolstra2014-04-241-1/+111
|\ \
| * | Add ability to add and replace DT_NEEDED entriesJonas Kuemmerlin2013-04-281-1/+111
| |/
* | Clear help message for --print-soname and --set-soname optionsChingis Dugarzhapov2014-04-191-2/+2
| | | | | | | | Also fixed bad SONAME positioning in help output
* | Added assertion in TODO, removed some useless debug msgs...Chingis Dugarzhapov2014-04-101-6/+23
| |
* | raise error if no DT_SONAME foundChingis Dugarzhapov2014-04-101-1/+9
| |
* | --set-soname, fixed help messageChingis Dugarzhapov2014-04-101-1/+1
| |
* | --set-soname with .dynstr section resize, proper debug messagesChingis Dugarzhapov2014-04-101-3/+17
| |
* | --set-soname, first working prototypeChingis Dugarzhapov2014-04-091-5/+40
| |
* | Added --print-soname option, to print DT_SONAME entry of .dynamic sectionChingis Dugarzhapov2014-04-081-1/+33
| |
* | In symbol tables, rewrite st_value for STT_SECTION entriesEelco Dolstra2014-01-141-0/+4
| |
* | Handle invalid symbol table entries that refer to non-existent sectionsEelco Dolstra2014-01-141-3/+8
|/ | | | | | | | For instance, libcairo-swt.so from Eclipse SDK 4.2.2 has entries like: 30: 0000000000000000 0 SECTION LOCAL DEFAULT 30 even though there is no section 30. So ignore these.
* Remove debug statementEelco Dolstra2013-01-161-2/+0
|
* Add ‘--remove-needed’ optionEelco Dolstra2013-01-161-2/+42
| | | | | | | This allows removing the specified DT_NEEDED entries from the dynamic section. Closes #4.
* Comment out overly verbose debug lineEelco Dolstra2012-08-211-1/+1
|
* Rewrite the st_shndx field in symbol tablesEelco Dolstra2012-08-211-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 whitespaceEelco Dolstra2012-08-211-52/+52
|
* * Support executables created by the Gold linker (NixOS/140). TheseEelco Dolstra2011-09-111-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. ThisEelco Dolstra2010-08-261-5/+5
| | | | | fixes the no-rpath test on powerpc-linux.
* * Update DT_RELA. Eelco Dolstra2010-08-261-1/+2
|
* I forgot in the last commit (enabling patchelf on the fuloong2f) to change someLluís Batlle i Rossell2010-07-291-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 Rossell2010-07-291-0/+5
| | | | | | | | kernel defconfig), the Lemote Fuloong 2F.
* * Segments can have a zero alignment, causing a divide-by-zero error.Eelco Dolstra2010-04-061-1/+2
| | | | | Ignore those. (Contributed by Zack Weinberg.)
* * Remove macros defined in elf.h.Eelco Dolstra2009-10-141-27/+0
|
* * Include a copy of Glibc's elf.h so that we're not dependant on theEelco Dolstra2009-10-143-2/+2676
| | | | | (lack of) elf.h on various platforms.
* * Use the e_type field instead of trying to guess whether we’reEelco Dolstra2009-06-161-6/+6
| | | | | dealing with an executable or dynamic library. Fixes NIXPKGS-98.
* * When using --force-rpath and the executable already has aEelco Dolstra2009-05-071-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 Dolstra2009-02-241-3/+18
|
* * Handle PT_LOAD program headers that become unaligned after addingEelco Dolstra2009-01-301-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 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).