Updated valgrind packages that fix several bugs are now available for Red Hat Enterprise Linux 6.
The valgrind packages provide the Valgrind programming tool that helps detect memory-management problems in programs. Valgrind is used for debugging memory, detecting memory leaks, and profiling.
- Previously, the Valgrind tool did not recognize that certain older i386 AMD Athlon processors supported the PREFETCH instruction from the MmxExt instruction set. As a consequence, Valgrind displayed an error message about an unsupported instruction after running an application under Valgrind on the i386 architecture that used PREFETCH. Valgrind has been updated to recognize which processors implement the MmxExt instruction set. As a result, applications now run as expected under Valgrind on i386 using PREFETCH.
- Prior to this update, on the IBM System z architecture, Valgrind could incorrectly report that it supported the KIMD Message-Security Assist (MSA) instruction extension even when it was the host machine that supported MSA, not Valgrind. Consequently, a program could use some instructions that Valgrind did not support, which caused the system to terminate that program. With this update, Valgrind no longer considers the instruction sets supported by the host machine. As a result, programs executed under Valgrind now run as expected in the described situation.
- Previously, Valgrind did not support the [lf]setxattr system calls on Linux kernels for the 32-bit PowerPC and 64-bit PowerPC architectures. Consequently, programs using [lf]setxattr displayed warning and error messages. With this patch, Valgrind has been updated to recognize [lf]setxattr, and programs using [lf]setxattr now run under Valgrind on 32-bit PowerPC and 64-bit PowerPC without displaying warnings or errors.
- Prior to this update, Valgrind did not correctly recognize the MOVNTDQA instruction from the Intel Streaming SIMD Extension 4 (Intel SSE4) instruction set. As a consequence, programs using MOVNTDQA terminated unexpectedly when executed under Valgrind. With this update, the problem has been fixed, and programs using MOVNTDQA now run as expected under Valgrind.
- Prior to this update, Red Hat Enterprise Linux 6 signal handlers were executed on a misaligned stack when used on the AMD64 and Intel 64 architectures. Consequently, instructions that require 16-byte data alignment terminated unexpectedly. This update fixes the stack pointer alignment, and invoking a signal on the AMD64 and Intel 64 architectures is now executed properly.
- Previously, Valgrind did not support the dup3 system calls on the PowerPC architecture kernels. As a consequence, programs using dup3 displayed warning and error messages when running under Valgrind. A patch has been applied to fix this problem, and Valgrind now handles dup3 properly. Programs using dup3 now run under Valgrind on PowerPC without displaying warnings or errors.
- Previously, the Memcheck memory error detector on i386 did not correctly handle some address accesses used by the bcopy() function, a converted version of the memcpy() function, which is contained in the GNU C Library (glibc). Consequently, using glibc bcopy() in i386 binary files running under Valgrind could report an invalid address access. Memcheck has now been updated to handle this instance of bcopy() correctly. Programs using bcopy() or memcpy() no longer display warnings about an invalid access in the described situation.
- Prior to this update, Valgrind did not support the prctl system calls on 64-bit PowerPC Linux kernels. As a consequence, programs using prctl displayed warning and error messages when running under Valgrind. Valgrind has now been updated to recognize prctl, and programs using prctl no longer display warnings or errors in the described situation.
Users of valgrind are advised to upgrade to these updated packages, which fix these bugs.