Chapter 7. Compiler and Tools
The linuxptp package now supports active-backup bonding for clock synchronization
With this update, you can now specify a bond interface in the active-backup mode to be used by the
ptp4l
application. As a result, ptp4l
uses the clock of the active interface from the bond as the Precision Time Protocol (PTP)
clock and can switch to another interface of the bond in case of a failover. Additionally, the phc2sys
utility in the automatic mode (the -a
option) can synchronize the system clock to the PTP
clock of the active interface when operating as a PTP
slave and the PTP
clock to the system clock when operating as a PTP
master. (BZ#1002657)
parted
can now resize partitions using the resizepart
command
The ability to resize disk partitions using the
resizepart NUMBER END
command is now backported to the parted
disk partitioning utility distributed with Red Hat Enterprise Linux 7. See the parted(8)
man page for information.
Note that this command only resizes partitions, not file systems residing on them. Use file system utilities such as
resize2fs
to grow or shrink file systems. (BZ#1423357)
binutils rebased to version 2.27
The binutils package has been rebased to upstream version 2.27. This version brings the following changes:
- Support for compressed debug sections
- Improved handling of orphan sections during linking
- Support for the LLVM plugin
- Ability to insert new symbols into an object file with the
objcopy
utility - Support for the IBM POWER9 architecture
- Support for the ARMv8.1 and ARMv8.2 instruction set extensions
Additionally, this update fixes the following bugs:
- Previously, the binutils package did not contain the
standards.info
documentation file that describes the GNU Coding Standard. This file has been added and is available through theinfo
command again. - Previously, the
ld
linker on the IBM Power Systems architecture stored intermediate data in the first object file specified by the linker command line. As a consequence, the linker terminated unexpectedly with a segmentation fault if that file was not used in the output and was discarded. The linker has been modified to directly store the data in the output file and skip the intermediate storage in the input file. As a result, linking no longer fails with a segmentation fault in the described situation. (BZ#1385959, BZ#1356856, BZ#1467390, BZ#1513014)
pcp rebased to version 3.12.2
The Performance Co-Pilot (PCP) application has been rebased to version 3.12.2, which includes many enhancements and bug fixes.
Collector systems updates:
- The following Performance Metric Domain Agents (PMDAs) have been updated:
perfevent
, containers and CGroups, MySQL slave metrics, Linux per-process metrics, and Linux kernel metrics for entropy,slabinfo
, IPv6 sockets, and NFSD worker threads. - New PMDAs are now available: Prometheus endpoint and HAProxy.
- Device Mapper statistics now expose an API.
Monitor systems updates:
- The derived metrics language has been extended for all monitors.
- The
pmchart
charting utility includes fixes for timezone and display bugs. - The
pmlogconf
configuration utility automatically enables thehotproc
metric logging and addsatop
metrics. Performance is now more optimized. - The
pcp-atop
monitoring utility recognizes the new--hotproc
option. Several bugs have been fixed. - The
pcp-pidstat
andpcp-mpstat
monitoring utilities recognize several new output options. - The
pmrep
reporting utility now supports Comma-separated Values (CSV) output compatible with thesadf
tool. New utilities for exporting PCP metrics to various formats have also been added:pcp2zabbix
,pcp2xml
,pcp2json
, andpcp2elasticsearch
. (BZ#1472153)
Improved DWARF 5 support in various tools
Support for the DWARF debugging format version 5 has been extended in the following tools:
- The
eu-readelf
tool from the elfutils package now recognizes all DWARF 5 tags and attributes.
systemtap rebased to version 3.2
The
SystemTap
utility has been updated to upstream version 3.2. Notable enhancements include:
- Support for extraction of matched regular expression has been added.
- Probe aliases for accepting input from the standard input have been added.
- Translator diagnostics have been improved.
- Support for the new
statx
system call has been added. - A new string function
strpos()
for detecting substring position has been added to the stap language.
Additionally, this update fixes the following bugs:
- Previously, the statistics extractor functions
@min()
and@max()
returned incorrect values. As a consequence, scripts relying on these functions did not work properly. The@min()
and@max()
functions have been fixed to return the correct maximum and minimum values. As a result, the affected scripts now work as expected. - Previously, some kernel tracepoints were inconsistently listed with the
stap -L
command, even when they could not be probed.SystemTap
has been fixed so that the listed and probe-able tracepoint sets match again. - The
netdev.receive
probe has been fixed and can collect data again. - The example script
nettop.stp
affected by the brokennetdev.receive
probe again works as expected.
Note that the kernel version in Red Hat Enterprise Linux does not support extended Berkeley Packet Filter (eBPF), and consequently the related upstream
SystemTap
features are not available. (BZ#1473722, BZ#1490862, BZ#1506230, BZ#1485228, BZ#1518462)
valgrind rebased to version 3.13.0
The valgrind package has been upgraded to version 3.13.0, which provides a number of bug fixes and enhancements over the previous version. Notable changes are:
Valgrind
has been extended in several ways to run large programs. The amount of memory usable byValgrind
has been increased to 128 GB. As a consequence, theMemcheck
tool supports running applications that allocate up to approximately 60 GB. Additionally,Valgrind
can now load executable files up to 1200 MB in size.- The tools
Memcheck
,Helgrind
, andMassif
can now use a new execution tree (xtree) representation to report heap consumption of the analyzed applications. - The symbol demangler has been updated to support the C++11 standard and the Rust programming language.
- Failures with long blocks of code using AVX2 instructions on the Intel and AMD 64-bit architecture have been fixed.
- The 64-bit
timebase
register of the PowerPC architecture is no longer modeled byValgrind
as only 32-bit. - Support for the IBM Power Systems architecture has been extended to include the ISA 3.0B specification.
- An alternative implementation of Load-Linked and Store-Conditional instructions for the 64-bit ARM architecture has been added. The alternative implementation is enabled automatically when required. To enable it manually, use the
--sim-hints=fallback-llsc
option. (BZ#1473725, BZ#1508148)
ncat
rebased to version 7.50
The
ncat
utility, which is provided by the nmap-ncat package, has been rebased to upstream version 7.50. This provides a number of bug fixes and new features over the previous version. Notable changes include:
- Support for
SOCKS5
authentication has been added. - The
-z
option for quickly checking the status of a port has been added. - The
--no-shutdown
option now also works in connect mode, not only in listen mode. (BZ#1460249)
rsync rebased to version 3.1.2
The rsync packages have been upgraded to upstream version 3.1.2, which provides a number of bug fixes and enhancements over the previous version.
This update introduces the following output changes:
- The default output format of numbers has been changed to 3-digit groups, for example,
1,234,567
. - The output of the
--progress
option has been changed; the following strings have been shortened:xfer
toxfr
, andto-check
toto-chk
.
Notable enhancements in this version include:
- I/O handling has been improved, which results in faster data transfers.
- New
--info
and--debug
options have been added for more fine-grained output. - The ability to synchronize nano-second modified times has been added.
- New options,
--usermap
,--groupmap
, and--chown
, have been added for manipulating file ownership during the copy operation. - A new
--preallocate
option has been added. (BZ#1432899)
tcpdump
can now analyze virtio
traffic
The
tcpdump
utility now supports the virtio-vsock
communication device. This makes it possible for tcpdump
to filter and analyze virtio communication between a hypervisor and a guest virtual machine. (BZ#1464390)
Vim
now supports C++11 syntax highlighting
Syntax highlighting for C++ in the
Vim
text editor has been enhanced to support the C++11 standard. (BZ#1267826)
Vim
now supports the blowfish2
encryption method
Support for the
blowfish2
encryption method has been added to the Vim
text editor. This method provides stronger encryption than blowfish
. To set the blowfish2
encryption method, use the :setlocal cm=blowfish2
command. Note that files encrypted with blowfish2
are compatible between Red Hat Enterprise Linux 7 and Red Hat Enterprise Linux 6. (BZ#1319760)
The IO::Socket::SSL
Perl module now uses the system-wide CA certificate store by default
Previously, if a TLS application based on the
IO::Socket::SSL
Perl module did not provide an explicit path to a certificate authority (CA) certificate, no authority was known, and the peer's identity could not be verified. With this update, the module uses the system-wide CA certificate store by default. However, it is possible to disable any certificate store by passing the undef
value to the SSL_ca_file
option of the IO::Socket::SSL->new()
constructor. (BZ#1402588)
perl-DateTime-TimeZone rebased to version 1.70
The perl-DateTime-TimeZone package has been upgraded to upstream version 1.70, which provides a number of bug fixes and enhancements over the previous version. Notably:
- With this update, it is possible to install Bugzilla version 5, which requires a more recent version of perl-DateTime-TimeZone than the system provided previously.
- The Olson time zone database has been updated to version 2017b. Previously, applications written in the
Perl
language that use theDateTime::TimeZone
module mishandled time zones that changed their specifications since version 2013h due to the outdated database.
system-config-kdump now support selecting of either automated or manual kdump memory settings when fadump is performed
This update adds fadump memory reservation support into the system-config-kdump packages. As a result, users can now select either
Automated kdump memory settings
or Manual settings
when Firmware assisted dump
is selected. (BZ#1384943)
conman rebased to version 0.2.8
The conman packages have been upgraded to upstream version 0.2.8, which provides a number of bug fixes and enhancements over the previous version. Notable changes include:
- Scalability has been improved.
Coverity Scan
andClang
warnings have been fixed to improve stability.- Arbitrary limit on the number of Intelligent Platform Management Interface (IPMI) Serial Over LAN (SOL) consoles has been fixed.
- The default value of the
loopback
setting has been changed toON
in theconman.conf
file. (BZ#1435840)
Support for the TFTP windowsize
option has been implemented
With this update, support for the
windowsize
option according to RFC 7440 has been implemented in the Trivial File Transfer Protocol (TFTP) server and client. When the windowsize
option is used, data blocks are sent in batches, which significantly improves throughput. (BZ#1328827)
curl now supports disabling GSSAPI with SOCKS5
New
--socks5-basic
and --socks5-gssapi
options for the curl
utility and a corresponding option CURLOPT_SOCKS5_AUTH
for the libcurl library have been introduced to control the authentication methods for SOCKS5 proxies. (BZ#1409208)
The rsync
utility now copies files with their original nanosecond part of the time stamp
Previously, the
rsync
utility ignored the nanosecond part of the time stamp of files. As a consequence, the nanosecond time stamp of newly created files was always zero. With this update, the rsync
utility recognizes the nanosecond part. As a result, the newly copied files keep their original nanosecond time stamp on systems that support it. (BZ#1393543)
tcpdump rebased to version 4.9.2
The tcpdump package has been upgraded to upstream version 4.9.2, which provides a number of bug fixes (for almost 100 CVEs) and enhancements over the previous version. Notable changes include:
- A segmentation fault with OpenSSL 1.1 has been fixed and OpenSSL usage has been improved.
- The buffer overflow vulnerabilities have been fixed.
- The infinite loop vulnerabilities have been fixed.
- Many buffer over-read vulnerabilities have been fixed. (BZ#1490842)
OProfile
support for Intel Xeon processor family extended
OProfile
has been extended to support the Intel Xeon Phi™ Processor x200 and x205 Product Families. (BZ#1465354)
Support for Intel Xeon v4 uncore performance events in libpfm
, pcp
, and papi
This update adds support for Intel Xeon v4 uncore performance events to the
libpfm
performance monitoring library, the pcp
tool, and the papi
interface. (BZ#1474999)
Memory copying performance improved on IBM POWER architectures
Previously, the
memcpy()
function from the GNU C Library ( glibc
) used unaligned vector load and store instructions on 64-bit IBM POWER systems. Consequently, when memcpy()
was used to access device memory on POWER9 systems, performance would suffer. The memcpy()
function has been enhanced to use aligned memory access instructions, to provide better performance for applications regardless of the memory involved on POWER9, without affecting the performance on previous generations of the POWER architecture. (BZ#1498925)
TAI clock macro available
Previously, the kernel provided the
CLOCK_TAI
clock, but the CLOCK_TAI
macro to access it was missing in the glibc
header file time.h
. The macro definition has been added to the header file. As a result, applications can now access the CLOCK_TAI
kernel clock. (BZ#1448822)
Support for selective use of 4 KiB page tables on IBM Z
This update adds the option
--s390-pgste
to the ld
linker from the binutils package to mark applications for the IBM Z architecture that require 4 KiB memory page tables on the lowest level. As a result, use of this feature can be restricted only to applications that need it, allowing optimal use of space by all applications on the system. Note that the qemu
backend no longer forces 4 KiB lowest level page tables on all running applications. Make sure to specify the new option if your applications require them. (BZ#1485398)
More efficient glibc
functions on IBM Z
Support for additional instructions of the IBM Z architecture has been added to the
glibc
library. As a result, programs compiled for this architecture can benefit from the increased performance of the glibc
functions. (BZ#1375235)
The ld
linker no longer incorrectly combines position-dependent and independent code
Previously, the
ld
linker combined object files on the IBM Z platform without considering whether they have been built for Position Independent Executable (PIE). Because PIE and non-PIE code cannot be combined, it was possible to create executable files that could not run. The linker has been extended to detect mixing of PIE and non-PIE code and produce an error message in this case. As a result, broken executable files can no longer be created this way. (BZ#1406430)
python-virtualenv rebased to 15.1.0
The python-virtualenv package has been upgraded to version 15.1.0, which provides a number of bug fixes and enhancements over the previous version. With this update, the following bundled packages have been upgraded: setuptools to version 28.0.0 and pip to version 9.0.1. (BZ#1461154)
python-urllib3 supports IP addresses in subjectAltName
The python-urllib3 package, a Python HTTP module with connection pooling and file POST abilities, now supports IP addresses in the
subjectAltName
(SAN) fields. (BZ#1434114)
Support for retpolines added to GCC
This update adds support for retpolines to GCC. Retpolines are a technique used by the kernel to reduce overhead of mitigating Spectre Variant 2 attacks described in CVE-2017-5715. (BZ#1535655)
Shenandoah
garbage collector is now fully supported
The low pause time
Shenandoah
garbage collector for OpenJDK
, previously available as a Technology Preview, is now fully supported on the Intel 64, AMD64, and 64-bit ARM architectures. Shenandoah
performs concurrent evacuation which allows users to run with large heaps without long pause times. For more information, see https://wiki.openjdk.java.net/display/shenandoah/Main. (BZ#1578075)