The release combines the 0.15.1 through 0.15.4 backports with 0.16.1.
- Code quality and infra changes just like 0.15.{1,2}
- Update to a later glibc
elf.h, just like 0.15.4
This release only fixes the incorrect reported version by the 0.16.0 release.
Changes from 0.15.3:
- Add
--print-os-abiand--set-os-abioptions by @dmsck in #381 - Sync
.note.gnu.propertytoPT_GNU_PROPERTYby @Bo98 in #414 - Rework file shifting to avoid sections crossing multiple segments by @Bo98 in #415
(These notes are the remainder of 0.16.0 that was not backported to 0.15.3. Originally, 0.16.0 was branched from 0.15.0, and those changes were fresh in this release, having never been backported.)
Bugfix backports from 0.18.0:
- Adjust
roundUpfor 0 as input by @cgzones in #466
Bugfix backports from 0.17.{0, 1}:
- Fix page size constants for Itanium and SPARC.
- Fix Out-of-bounds read in the function
modifySonameby @yairKoskas in #451
-
Update to a later glibc
elf.h.This should not result in any behavioral changes, except for possibly better architecture-specific support.
This is a backport release made from the simplest fixes from 0.16.0.
- Handle
glibc-hwcapsonppc64leon CentOS/RHEL/Rocky 8 fortests/replace-add-needed.sh(fixes #406) by @robert-scheck in #407 - Fix Out-of-bounds read in the function
modifyRPathby @xiaoxiaoafeifei in #419 - Fix out of bounds access when increasing program header table by @Bo98 in #411
-
In the autotools build system for the tests, pass a few more tool env vars in
TESTS_ENVIRONMENT.Some of them are not used yet (at all, or at least not in this backport to the
0.15-maintenancebranch), but at leastSTRIPis.
The objective is to prepare a very conservative patch release which can be bumped in Nixpkgs immediately.
- Backport infra changes from later master (August 2025)
- Backport shellcheck fixes to test suite
- Backport C++ code quality fixes (all of #464 but the final two commits)
The behavior of this version should be essentially the same as 0.15.0.
- Add
--add-debugoption by @deadw00d in #367 - Add
O_BINARY flagwhen opening files to allow compilation for Windows by @JagoGyselinck in #372 - Document
--print-neededby @klemensn in #375 - modifyRPath: return early if new and old rpath are empty by @ehmry in #376
- Add comment explaining calculation for
DT_MIPS_RLD_MAP_RELby @amjoseph-nixpkgs in #379 - Add
--no-sort optionby @amjoseph-nixpkgs in #378 - Handle
DT_MIPS_XHASHand.MIPS.xhashby @amjoseph-nixpkgs in #380
- fix faulty version in 0.14.4
- Several test fixes to fix patchelf test suite on openbsd by @klemensn
- Allow multiple modifications in same call by @fzakaria in #361
- Add support to build with musl by @fzakaria in #362
- Fix typo: s/folllow/follow/ by @bjornfor in #366
- mips: fix incorrect polarity on
dyn_offset; closes #364 by @a-m-joseph in #365
- this release adds support for static, pre-compiled patchelf binaries
- make version number in tarball easier to use for packagers
- build fix: add missing include
Changes compared to 0.13:
- Bug fixes:
- Fix corrupted library names when using
--replace-neededmultiple times - Fix setting an empty rpath
- Don't try to parse
.dynamic sectionof typeNOBITS - Fix use-after-free in
normalizeNoteSegments - Correct
EINTRhandling in writeFile - MIPS: Adjust
PT_MIPS_ABIFLAGSsegment andDT_MIPS_RLD_MAP_RELdynamic section if present - Fix binaries without
.gnu.hashsection
- Fix corrupted library names when using
- Support loongarch architecture
- Remove limits on output file size for elf files
- Allow reading rpath from file
- Requires now C++17 for building
- Bug fixes:
- fix setting empty rpath
- use memcpy instead of strcpy to set rpath
- Don't try to parse
.dynamic sectionof typeNOBITS - fix use-after-free in
normalizeNoteSegments - correct
EINTRhandling in writeFile - Adjust
PT_MIPS_ABIFLAGSsegment if present - Adjust
DT_MIPS_RLD_MAP_RELdynamic section entry if present - fix binaries without
.gnu.hashsection
-
New
--add-rpathflag. -
Bug fixes.
-
New
--clear-symbol-versionflag. -
Better support for relocating NOTE sections/segments.
-
Improved the default section alignment choice.
-
Bug fixes.
-
New
--outputflag. -
Some bug fixes.
-
Many bug fixes. Please refer to the Git commit log:
https://github.com/NixOS/patchelf/commits/0.10
This release has contributions from Adam Trhoň, Benjamin Hipple, Bernardo Ramos, Bjørn Forsman, Domen Kožar, Eelco Dolstra, Ezra Cooper, Felipe Sateler, Jakub Wilk, James Le Cuirot, Karl Millar, Linus Heckemann, Nathaniel J. Smith, Richard Purdie, Stanislav Markevich and Tuomas Tynkkynen.
-
Lots of new features. Please refer to the Git commit log:
https://github.com/NixOS/patchelf/commits/0.9
This release has contributions from Aaron D. Marasco, Adrien Devresse, Alexandre Pretyman, Changli Gao, Chingis Dugarzhapov, darealshinji, David Sveningsson, Eelco Dolstra, Felipe Sateler, Jeremy Sanders, Jonas Kuemmerlin, Thomas Tuegel, Tuomas Tynkkynen, Vincent Danjean and Vladimír Čunát.
- Fix a segfault caused by certain illegal entries in symbol tables.
-
Rewrite section indices in symbol tables. This for instance allows gdb to show proper backtraces.
-
Added
--remove-neededoption.
-
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).
-
Various bugfixes.
-
--force-rpathnow deletes theDT_RUNPATHif it is present.
-
Support for growing the RPATH on dynamic libraries.
-
IA-64 support (not tested) and related 64-bit fixes.
-
FreeBSD support.
-
--set-rpath,--shrink-rpathand--print-rpathnow preferDT_RUNPATHoverDT_RPATH, which is obsolete. When updating, if both are present, both are updated. If onlyDT_RPATHis present, it is converted toDT_RUNPATHunless--force-rpathis specified. If neither is present, aDT_RUNPATHis added unless--force-rpathis specified, in which case aDT_RPATHis added.
-
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.
- Provides a hack to get certain programs (such as the Belastingaangifte 2005) to work.
- Initial release.