An updated binutils package that fixes three bugs is now available for Red Hat Enterprise Linux 5.
Binutils is a collection of binary utilities for the manipulation of object code in various object file formats.
Prior to this update, got2 offset addends could, under certain circumstances, be wrongly incorporated into the trampoline if code at a PLTREL24 relocation with got2 offset addends referenced a symbol that was resolved locally instead of going through the Procedure Linkage Table (PLT). As a result, the trampoline transferred the code to the wrong target. With this update, the addend of the relocation is, where necessary, cleared. Now, the computation of the trampoline's target address is correct.
Prior to this update, the dl debug state RT_CONSISTENT incorrectly occurred before applying dynamic relocations. As a consequence, debugging tools could not correctly monitor this call. This update adds systemtap-probes at a superset of the locations where the state RT_CONSISTENT was called.
Prior to this update, the linker did not allow the local-exec Thread-local storage (TLS) model with -fPIC when creating an executable. As a consequence, the local-exec TLS model did not work with executables compiled with position-independent code (PIC) or position-independent executables (PIE) when creating an executable. This update modifies the underlying code to only disallow the local-exec TLS model when creating a shared library.
Users are advised to upgrade to this updated binutils package, which fixes these bugs.