summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | flake.nix: Set epochEelco Dolstra2019-05-281-0/+2
| |/ / / |/| | |
* | | | Update flake.lockEelco Dolstra2019-05-091-0/+1
| | | |
* | | | Fix missing revCountEelco Dolstra2019-05-081-1/+1
| | | |
* | | | DohEelco Dolstra2019-05-081-1/+1
| | | |
* | | | Add flake.nixEelco Dolstra2019-05-083-4/+34
| | | |
* | | | Update release.nix0.10Eelco Dolstra2019-03-281-27/+14
| | | |
* | | | Update READMEEelco Dolstra2019-03-281-3/+14
| | | |
* | | | Merge pull request #149 from ezquat/fix-66Eelco Dolstra2019-03-061-2/+3
|\ \ \ \ | | | | | | | | | | Fix issue #66: ignore 0th section header when sorting, don't overwrite NOBITS
| * | | | Fix issue #66 by ignoring the first section header when sorting, and not ↵Ezra Cooper2018-06-211-2/+3
|/ / / / | | | | | | | | | | | | overwriting NOBITS entries.
* | | | Merge pull request #148 from stmarkevich/bigfileEelco Dolstra2018-05-091-2/+12
|\ \ \ \ | | | | | | | | | | fix reading and writing big files (e.g. > 2Gb)
| * | | | fix reading and writing big files (e.g. > 2Gb)stanislav.markevich2018-05-081-2/+12
|/ / / /
* | | | Merge pull request #123 from lheckemann/multiple-argsEelco Dolstra2018-01-291-13/+16
|\ \ \ \ | | | | | | | | | | Allow multiple filenames to patch
| * | | | Allow multiple filenames to patchLinus Heckemann2017-05-281-13/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes behaviour less confusing when multiple filenames are passed — previously, any extra filenames would be ignored completely, as would any options passed after a filename. Now these are taken into account.
* | | | | Fix indentationEelco Dolstra2018-01-081-5/+5
| | | | |
* | | | | Merge branch 'strict_ordering' of https://github.com/kmillar/patchelfEelco Dolstra2018-01-081-3/+6
|\ \ \ \ \
| * | | | | Simplify ordering code as suggested in PR comments.Karl Millar2018-01-081-6/+6
| | | | | |
| * | | | | Modified CompPhdr::operator() so that it provides a strictKarl Millar2017-12-071-1/+4
| | |_|_|/ | |/| | | | | | | | | | | | | weak ordering as required by std::sort.
* | | | | Merge pull request #121 from dezgeg/better-error-messagesEelco Dolstra2018-01-051-4/+11
|\ \ \ \ \ | | | | | | | | | | | | Better error messages when run on statically-linked (or otherwise weird) binaries
| * | | | | Give a better error message if the file lacks a section header tableTuomas Tynkkynen2017-04-191-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, patchelf outputs this when run on a UPX-compressed ELF file: patchelf: patchelf.cc:420: ElfFile<Elf_Ehdr, Elf_Phdr, Elf_Shdr, Elf_Addr, Elf_Off, Elf_Dyn, Elf_Sym, Elf_Verneed>::ElfFile(FileContents): Assertion `shstrtabIndex < shdrs.size()' failed. Make it give a nicer error message: patchelf: no section headers. The input file is probably a statically linked, self-decompressing binary Fixes #63
| * | | | | Improve error message when run on statically linked binariesTuomas Tynkkynen2017-04-191-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If .dynamic, .dynstr or .interp sections aren't found, give an extra hint to the user that the input file is statically linked.
* | | | | | Merge pull request #129 from bjornfor/posixDomen Kožar2018-01-051-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | configure.ac: use "command -v" instead of "type -p"
| * | | | | | configure.ac: use "command -v" instead of "type -p"Bjørn Forsman2017-08-011-1/+1
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | "type -p" is a Bash thing, whereas "command -v" is specified by POSIX (more portable).
* | | | | | Merge pull request #141 from adam-trhon/patch-1Domen Kožar2018-01-051-0/+4
|\ \ \ \ \ \ | | | | | | | | | | | | | | Mention --set-soname in README
| * | | | | | Mention --set-soname in READMEAdam Trhoň2017-12-121-0/+4
| |/ / / / / | | | | | | | | | | | | Changing shared library SONAME is not a usual task and patchelf may be the only utility that can do it. As README does not mention this feature at all, one can easily miss it when searching for a suitable tool.
* | | | | | Merge pull request #140 from bhipple/feature/centos-7.4-releaseDomen Kožar2018-01-051-0/+3
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Add CentOS 7.4 to release RPM builds
| * | | | | Add CentOS 7.4 to release RPM buildsBenjamin Hipple2017-12-091-0/+3
|/ / / / / | | | | | | | | | | | | | | | | | | | | This provides RPMs for CentOS 7.4 users, and their counterparts on the enterprise release RHEL 7.4.
* | | | | Merge pull request #125 from kroggen/patch-1Domen Kožar2017-06-151-0/+10
|\ \ \ \ \ | |_|/ / / |/| | | | added compillation steps on README
| * | | | added compillation steps on READMEBernardo Ramos2017-06-131-0/+10
|/ / / / | | | | | | | | It is lacking info on how to run the tests
* | | | Fix multiple --add-neededEelco Dolstra2017-05-031-0/+1
| | | | | | | | | | | | | | | | Reported by Jannis Harder.
* | | | Merge branch 'master' of https://github.com/rpurdie/patchelfEelco Dolstra2017-04-211-32/+40
|\ \ \ \ | |/ / / |/| / / | |/ /
| * | Avoid inflating file sizes needlessly and allow binaries to be strippedRichard Purdie2017-03-071-32/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current approach to changing sections in ET_DYN executables is to move the INTERP section to the end of the file. +This means changing PT_PHDR to add an extra PT_LOAD section so that the new section is mmaped into memory by the elf loader in the kernel. In order to extend PHDR, this means moving it to the end of the file. Its documented in BUGS there is a kernel 'bug' which means that if you have holes in memory between the base load address and the PT_LOAD segment that contains PHDR, it will pass an incorrect PHDR address to ld.so and fail to load the binary, segfaulting. To avoid this, the code currently inserts space into the binary to ensure that when loaded into memory there are no holes between the PT_LOAD sections. This inflates the binaries by many MBs in some cases. Whilst we could make them sparse, there is a second issue which is that strip can fail to process these binaries: $ strip fixincl Not enough room for program headers, try linking with -N [.note.ABI-tag]: Bad value This turns out to be due to libbfd not liking the relocated PHDR section either (https://github.com/NixOS/patchelf/issues/10). Instead this patch implements a different approach, leaving PHDR where it is but extending it in place to allow addition of a new PT_LOAD section. This overwrites sections in the binary but those get moved to the end of the file in the new PT_LOAD section. This is based on patches linked from the above github issue, however whilst the idea was good, the implementation wasn't correct and they've been rewritten here. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* | | Fix Debian 7 buildEelco Dolstra2017-04-141-0/+1
| | | | | | | | | | | | http://hydra.nixos.org/build/49825195
* | | Merge pull request #119 from jwilk/spellingDomen Kožar2017-04-043-3/+3
|\ \ \ | | | | | | | | Fix typos
| * | | Fix typosJakub Wilk2017-04-043-3/+3
|/ / /
* | | ARM hackEelco Dolstra2017-03-081-1/+1
| | |
* | | Use newer Fedora/Ubuntu releasesEelco Dolstra2017-03-081-16/+12
| | |
* | | Test on aarch64-linuxEelco Dolstra2017-03-081-1/+1
|/ /
* | Don't check whether DT_STRTAB matches .dynstrEelco Dolstra2017-02-171-23/+2
| | | | | | | | | | | | | | We don't really care whether DT_STRTAB is correct, since we overwrite it anyway. https://github.com/NixOS/nixpkgs/issues/22333
* | Mark the build job as reproducibleEelco Dolstra2016-12-081-0/+1
| |
* | Bump versionEelco Dolstra2016-09-201-1/+1
| |
* | Use exceptionsEelco Dolstra2016-09-191-16/+64
| |
* | --shrink-rpath: Ignore libraries for different architecturesEelco Dolstra2016-09-192-7/+17
| | | | | | | | Fixes #93.
* | Factor out fetching ELF typeEelco Dolstra2016-09-191-24/+34
| |
* | Remove apparently incorrect usage of "static"Eelco Dolstra2016-09-191-5/+3
| |
* | Some C++11 cleanupEelco Dolstra2016-09-191-22/+15
| |
* | Cleanup: Remove "using namespace std"Eelco Dolstra2016-09-191-108/+104
| |
* | Use a std::vector for holding the file contentsEelco Dolstra2016-09-192-59/+60
| |
* | Remove tabEelco Dolstra2016-09-191-1/+1
| |
* | Merge pull request #98 from dezgeg/shrink-prefixEelco Dolstra2016-09-015-16/+107
|\ \ | |/ |/| Add '--allowed-rpath-prefixes' option to '--shrink-rpath' …
| * Add '--allowed-rpath-prefixes' option to '--shrink-rpath'Tuomas Tynkkynen2016-06-035-7/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #97. In essence, the problem is that some packages in Nixpkgs have RPATHs pointing to both $NIX_BUILD_TOP and $out, e.g.: /tmp/nix-build-openldap-2.4.44.drv-0/openldap-2.4.44/libraries/libldap_r/.libs /tmp/nix-build-openldap-2.4.44.drv-0/openldap-2.4.44/libraries/liblber/.libs /nix/store/bfkmdxmv3a3f0g3d2q8jkdz2wam93c5z-openldap-2.4.44/lib /nix/store/bfkmdxmv3a3f0g3d2q8jkdz2wam93c5z-openldap-2.4.44/lib64 Currently, running `patchelf --shrink-rpath` does the wrong thing by keeping the /tmp/ paths and deleting the /nix/store ones. Now we can fix the problem by using patchelf --shrink-rpath --allowed-rpath-prefixes $NIX_STORE_DIR in the Nixpkgs fixupPhase instead.