Chapter 27. Compiler and Tools
GDB registers unaligned watchpoint hits on the 64-bit ARM architecture
Previously, the
GDB
debugger provided only limited support for unaligned hardware watchpoints used by the watch
, rwatch
, and awatch
GDB
commands on the 64-bit ARM architecture. As a consequence, GDB
running on such systems failed to register some watchpoint hits and subsequently did not stop the debugged program.
GDB
has been extended to handle this situation. As a result, it can correctly handle any hardware watchpoints on the 64-bit ARM architecture, including unaligned ones. (BZ#1347993)
Retpoline support in GCC on IBM Z architecture
This update adds support for retpoline generation in the GNU Compiler Collection (GCC) on IBM Z architecture. Retpolines are a technique used by the kernel to reduce the overhead of mitigating Spectre Variant 2 attacks described in CVE-2017-5715. (BZ#1552021)
binutils linker no longer terminates unexpectedly when encountering relocations against absolute address
Previously, the linker from the binutils package could not properly handle relocations against an absolute address. As a consequence, encountering such relocations caused a segmentation fault of the linker.
The linker has been extended to handle relocations against absolute addresses and the problem no longer occurs. (BZ#1557346)
The helper to store credentials in a GNOME keyring is now available in the git-gnome-keyring subpackage
Previously, installing
git
automatically installed GNOME components as a dependency, because the helper to store credentials in a GNOME keyring was part of the git
package. With this update, the helper has been moved into the separate git-gnome-keyring subpackage. As a result, the size of a git
installation is reduced.
To install the subpackage:
# yum install git-gnome-keyring
(BZ#1284081)
git instaweb
now works without any additional configuration and it is available in a separate subpackage
Previously, the
git instaweb
command required a web server and did not work in the default installation. With this update, git instaweb
has been moved into the separate git-instaweb subpackage, which depends on the Apache
web server, and is configured to use the web server automatically. As a result, git instaweb
now works without any further configuration when git-instaweb is installed. To install the subpackage:
# yum install git-instaweb
(BZ#1213059)
The man
utility no longer prints gimme gimme gimme
after midnight
Prior to this update, there was an Easter egg in the
man
utility that printed gimme gimme gimme
in the standard error output at 00:30 local time. As a consequence, under certain circumstances the unexpected output misled automated tools. With this update, the Easter egg has been removed, and the described problem no longer occurs. (BZ#1515352)
sysctl
now allows tuned
to reset kernel parameters
Prior to this update, a bug in
sysctl
did not allow kernel parameters to be set to default values. As a consequence, the tuned
utility could not set default kernel parameters using sysctl
. With this update, sysctl
accepts default values to reset kernel parameters. As a result, tuned
works as expected and kernel parameters can be reset to default values. (BZ#1507356)
ncat
now correctly sets environment variables in UDP mode
Previously, the
ncat
utility did not set environment variables for User Datagram Protocol (UDP) connections properly. As a consequence, user's scripts failed in UDP mode. This update sets some internal values, and environment variables now are set properly. (BZ#1573411)
ncat
no longer uses the default HTTP port for all proxy types
Previously, the default port of an HTTP proxy was used even if another type of proxy, such as
socks4
or socks5
, was specified. As a consequence, the ncat
utility unsuccessfully tried to connect to a proxy type through the non-default port. This update corrects the code so that an HTTP proxy port is not used by default. As a result, ncat
now sets the proper default port according to the proxy type. (BZ#1546246)
Decoding and conversion of JPEG 2000 images now work correctly
Previously, decoding and conversion of JPEG 2000 images did not work correctly due to a bug in the
openjpeg
library. With this update, the underlying source code has been fixed, and decoding and conversion of JPEG 2000 images now works as expected. (BZ#1553235)
strip
no longer malforms binary files built with tools that use a later BFD
library version
Previously, the
strip
tool created an invalid binary file if the file was originally produced by tools that use a later version of the BFD
library than strip
. As a consequence running the resulting binary file failed and generated an error message about an unresolvable relocation. BFD
has been modified to report situations where it cannot recognize its future features instead of damaging the code that contains these features. As a result, strip
now generates an error message and aborts in this situation. (BZ#1553842)
Fixes of bugs in process-shared robust mutex
Previously, bugs in the implementation of POSIX thread robust mutexes could cause such mutexes to fail to be recoverable. Consequently, users of the interface could see a process terminate but not return
EOWNERDEAD
to another process that was trying to recover the mutex. This update fixes the threading library and all known and fixable bugs in robust mutexes. (BZ#1401665)
GDBserver not working properly when attaching to a process in another container
In some circumstances, the GDB debugger could not attach to a GDBserver running in a container, making container debugging problematic, if not impossible. The bug that returned
socketpair not available on this host
has been fixed and both GDB and GDBserver are now able to debug into containers. (BZ#1578378)
operf
now handles kernel event samples for exiting processes without crashing
Previously, Red Hat Enterprise Linux kernel 4.14 changed the PID value returned in perf event samples for exiting processes to -1. As a result, the use of -1 by the kernel perf event subsystem conflicted with internal use of -1 as a flag by
operf
. The flag was used to indicate that initialization work was required to retrieve process information. However, any attempt to retrieve that information caused operf
to crash.
This update adjusts the
oprofile
code to use a different value to flag the process information and as a result, it no longer conflicts with the -1 that is used for exiting processes. (BZ#1561103)
SystemTap
provides complete kernel backtraces
Because of changes in the kernel related to address space layout randomization (ASLR), kernel backtraces collected by the
SystemTap
tool were incomplete. SystemTap
has been extended to handle this situation. As a result, SystemTap
provides complete kernel backtraces. (BZ#1567356)
fallocate()
flags are again available according to documentation
Previously, the
fcntl.h
header file from the glibc package did not include flags for the fallocate()
function. As a consequence, programs using fallocate()
according to the man page did not compile. The missing flags have been added by indirect inclusion of the <linux/falloc.h>
file and compilation of such programs is again possible. (BZ#1476120)
nscd
netgroups cache properly handles expiration
Previously, when the
nscd
service was used to cache LDAP requests for netgroups, some entries in the cache might not expire correctly. As a consequence, the nscd
cache did not reflect the service database correctly e.g. LDAP. The cache expiry code has been fixed, and changes in netgroups propagate to the cache correctly again. (BZ#1505647)
llvm-private no longer crashes when used together with more recent libstdc++
library versions
Previously, executable files in the llvm-private package providing drivers for graphics rendering were linked statically against the
libstdc++
library. As a consequence, running a program using GLX, the Mesa llvmpipe
renderer, and a different libstdc++
version caused an unexpected termination with message about invalid pointer. llvm-private has been changed and no longer statically links against libstdc++
. As a result, programs using this driver no longer terminate unexpectedly in this situation. (BZ#1417663)