Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

Chapter 3. Compiler and Tools

C exception handling no longer causes unexpected terminations

Previously, an incorrect unwind routine was called on the 32-bit Intel architecture because of an erroneous check in the code handling C exceptions. As a consequence, the pthread_cond_wait() function from the glibc library could write data out of bounds and applications written in the C programming language using glibc sometimes terminated unexpectedly. The erroneous check has been fixed and the unexpected termination no longer occurs. (BZ#1104812)

Executable files created using the -pie option now start correctly

Previously, the linker included in the binutils package produced incorrect dynamic relocations for position-independent binaries for the 32-bit Intel architecture. As a consequence, building code with the -pie compiler option produced binary files that failed to start. The linker has been fixed and now generates position-independent executable files that run correctly. (BZ#1427285)

Thread cancellation support for APIs depending on /etc/hosts.conf

A defect in thread-cancellation support for the setmntent() function could cause the function to fail and return an error where it was expected to succeed. Consequently, programs that rely on setmntent() could fail to start. The setmntent() function has been fixed, and now works as expected.
In addition, the setttyent() and setnetgrent() functions, and all APIs that rely on the /etc/hosts.conf file, have been enhanced to provide improved support for thread cancellation. (BZ#1437147)

ld no longer produces invalid executable files with code after initialized data

Previously, the binutils ld linker placed code at an incorrect location in memory when the code followed after data initialized to zero values. As a consequence, programs in the linked executable files terminated unexpectedly with a segmentation fault. The linker has been fixed to properly allocate space for the data and position the executable code at the correct starting address. As a result, the linked executable files now run correctly. (BZ#1476412)

The ss program no longer stops when providing a long list of filters

Previously, providing a long list of filters to the ss command caused an integer value overflow. As a consequence, the 'ss' tool could stop the program execution. With this update, faulty bits in the source code are corrected, and the described problem no longer occurs. (BZ#1476664)

SystemTap no longer causes kernel panic on systems under heavy load

Previously, when probes of the SystemTap tool were added and removed at the same time by multiple processes, a kernel panic occurred. As a consequence, unloading SystemTap modules on systems under heavy load in some cases caused kernel panics. The procedure for removing probes has now been fixed and SystemTap no longer causes a kernel panic in the described situation. (BZ#1525651)