26장. Compiler and Tools
Package selection now works in system-config-kickstart
A bug in the
system-config-kickstart
graphical Kickstart file creation utility caused the package selection to be unavailable because the tool could not download package information from repositories. This bug is now fixed, and you can now configure package selection in system-config-kickstart
again. (BZ#1272068)
NVMe devices no longer show up as Unknown
in parted
and Anaconda
Previously, any Non-Volatile Memory Express (NVMe) devices were not being recognized by the
Anaconda
installer and the parted
storage configuration tool during the installation, and were instead being labeled as Model: Unknown (unknown)
. This update backports an upstream patch that enables recognition of these devices, and they are now being correctly identified as NVMe Device (nvme)
during installation. (BZ#1316239)
DBD::MySQL
now sends and receives smaller integers correctly on big-endian platforms
Previously, the
DBD::MySQL
Perl driver incorrectly handled integers smaller than 64 bits on big endian platforms. Consequently, tests for prepared statements failed for certain variable sizes on the IBM Z architecture. This bug has been fixed, and the described problem no longer occurs. (BZ#1311646)
The version
Perl module now supports tainted input and tainted version objects
Previously, the
version
module of Perl was unable to correctly parse tainted input. Consequently, when building a version object from a tainted variable, the version->new()
method reported the Invalid version format (non-numeric data)
error. This update adds support for parsing tainted input and for printing tainted version objects and strings. (BZ#1378885)
The HTTP::Daemon
Perl module now supports IPv6
Previously, the
HTTP::Daemon
Perl module did not support IPv6 addresses. Consequently, when running an HTTP::Daemon::SSL
server on an IPv6 address, the server terminated unexpectedly on an attempt to print the IPv6 address with an Arg length for inet_ntoa
error message. With this update, the HTTP::Daemon
module has been ported from the IO::Socket::INET
to the IO::Socket::IP
module. As a result, HTTP::Daemon
handles IPv6 addresses as expected. (BZ#1413065)
GDB
shows inline function names in breakpoint listing
Previously, the
GDB
debugger showed caller function names instead of inlined callee function names when listing breakpoints. As a consequence, GDB
users were not able to identify breakpoints placed on inline functions from the function name. GDB
has been extended to store names of inline callee functions when breakpoints are placed. As a result, GDB
now correctly displays names of inline functions when listing breakpoints. (BZ#1228556)
Relocation failures at module load time due to wrong GCC
alignment fixed
Previously,
GCC
generated code containing .toc
sections with 2^0 alignment. As a consequence, relocation failures could occur at module load time. GCC
has been changed to generate .toc
sections aligned to 2^3. This fix eliminates most cases of occurrence of this bug. (BZ#1487434)
The istream::sentry
object from the gcc
C++ standard library no longer throws exceptions
Previously, the
istream::sentry
object from the gcc
C++ standard library did not properly handle exceptions that happen while skipping whitespace. As a consequence, an unexpected exception could occur in the object's code. The constructor for the sentry
class has been fixed to catch the exceptions and update the error state of the istream
object appropriately. (BZ#1469384)
Multiple fixes in gdb
on IBM Power
Previously, various features of the
gdb
debugger have been broken on the IBM Power architecture:
- Record and replay functionality was not available and resulted in error messages or not restoring the previous register values.
- Printing short vector return values resulted in wrong values displayed.
- Single stepping over atomic sequences failed to actually step over them - the program counter did not change.
This update fixes these features. (BZ#1480498, BZ#1480496, BZ#1480497)
GDB
no longer crashes when dumping core from a process that terminates
Previously, the
GDB
debugger did not consider that a process can be terminated while GDB
is dumping it into a core file. As a consequence, when a dumped program terminated after receiving an unexpected SIGKILL
signal, the gcore
utility terminated unexpectedly as well. With this update, GDB
has been extended to handle this situation. As a result, GDB
and the gcore
command no longer terminate unexpectedly and create invalid core files. (BZ#1493675)
GDB
can again dump memory protected by the VM_DONTDUMP
flag
Previous changes to the GNU Debugger
GDB
made the behavior of the gcore
command more similar to the behavior of the Linux kernel when dumping process memory to increase data security. Consequently, users of GDB
could not dump memory protected by the VM_DONTDUMP
flag. The new set dump-excluded-mappings
setting has been added to GDB
to enable dumping of memory with this flag. As a result, users can dump the whole process memory with GDB
again. (BZ#1518243)
Programs using the CLONE_PTRACE
flag on threads now run under strace
Previously, programs which set the
CLONE_PTRACE
flag on new threads caused undefined behavior of the strace
tool, because it uses the ptrace()
function for its operation. As a consequence, such programs could be neither traced nor executed properly. The strace
tool has been modified to ignore threads with an unexpected CLONE_PTRACE
flag. As a result, programs which use CLONE_PTRACE
execute properly under strace
. (BZ#1466535)
exiv2 rebased to version 0.26
The exiv2 packages have been upgraded to upstream version 0.26, which provides a number of bug fixes and enhancements over the previous version. Notably, exiv2 now contains:
- CMake support for Visual Studio
- Recursive File Dump
- ICC Profile Support
- The
exiv2
command for metadata piping - Lens File for user lens definitions
- User defined lens types
- WebP Support
For the complete changelog, see http://www.exiv2.org/changelog.html#v0.26. (BZ#1420227)
gssproxy fixed to properly update ccaches
Previously, the gssproxy package did not correctly handle the key version number (kvno) incrementation in Kerberos credential caches (ccaches). As a consequence, stale ccaches were not properly overwritten. This update fixes these problems in gssproxy ccache caching. As a result, ccaches are now properly updated, and the caching prevents excessive requests for updates. (BZ#1488629)
gcc
on the little-endian variant of IBM Power Systems architecture no longer creates unused stack frames
Previously, using the
-pg -mprofile=kernel
options of the gcc
compiler on the little-endian variant of IBM Power Systems architecture could result in unused stack frames being generated for leaf functions. The gcc
compiler has been fixed and the unused stack frames no longer occur in this situation. (BZ#1468546)
Several bugs fixed in gssproxy
This update fixes several bugs in the gssproxy package. The bug fixes include preventing potential memory leaks and concurrency problems. (BZ#1462974)
The BFD
library regains the ability to convert binary addresses to source code positions
A previous enhancement to the
BFD
library from the binutils package caused a bug in parsing the DWARF debug information. As a consequence, BFD
and all tools using it, such as gprof
and perf
, were unable to convert binary file addresses to positions in source code. With this update, BFD
has been modified to prevent the described problem. As a result, BFD
can now convert addresses in binary files into positions in source code as expected.
Note that tools that use the
BFD
library must be relinked in order to take advantage of this fix. (BZ#1465318)
Applications using vector registers for passing arguments work again
Previously, the dynamic loader in the GNU C library (
glibc
) contained an optimization which avoided saving and restoring vector registers for 64-bit Intel and AMD architectures. Consequently, applications compiled for these architectures and using unsupported vector registers for passing function arguments, not adhering to the published x86-64 psABI specification, could fail and produce unexpected results. This update changes the dynamic loader to use the XSAVE
and XSAVEC
context switch CPU instructions, preserving more CPU state, including all vector registers. As a result, applications using vector registers for argument passing, in ways which are not supported by the x86-64 psABI specification, work again. (BZ#1504969)
curl
now properly resets the HTTP authentication state
Prior to this update, the authentication state was not reset properly when an HTTP transfer finished or when the 'curl_easy_reset()' function was called. Consequently, the
curl
tool did not send the request body to the following URL. With this update, the authentication state is reset properly when an HTTP transfer is done or when curl_easy_reset()
is called, and the described problem no longer occurs. (BZ#1511523)
The strip
utility works again
Previously, the BFD library missed a NULL pointer check on the IBM Z architecture. As a consequence, running the
strip
utility caused a segmentation fault. This bug has been fixed, and strip
now works as expected. (BZ#1488889)
Importing python modules generated by f2py
now works properly
Previously, when dynamic linking loader was configured to load symbols globally, a segmentation fault occurred when importing any python module generated by the
f2py
utility. This update renames the PyArray_API
symbol to _npy_f2py_ARRAY_API
, which prevents potential conflicts with the same symbol in the multiarray module. As a result, importing modules generated by f2py
no longer leads to a segmentation fault. (BZ#1167156)
mailx
is not encoding multi-byte subjects properly
Previously, the
mailx
mail user agent did not split non-ASCII message headers on multi-byte character boundaries when encoding into the Multipurpose Internet Mail Extension (MIME) standard. As a consequence, the headers were incorrectly decoded. This update modifies the MIME encoding function so that it splits headers into encoded words on multi-byte character boundaries. As a result, mailx
now sends messages with headers that can be properly decoded. (BZ#1474130)
The --all-logs
option now works as expected in sosreport
Previously, the
--all-logs
option was ignored by the apache
, nscd
, and logs
plug-ins of the sosreport
utility. This bug has been fixed, and the mentioned plug-ins now correctly handle --all-logs
. Note that when using --all-logs
, it is impossible to limit the size of the log with the --log-size
option, which is an expected behavior. (BZ#1183243)
Python scripts can now correctly connect to HTTPS servers through a proxy, while explicitly setting the port
The Python standard library provided in Red Hat Enterprise Linux was previously updated to enable certificate verification by default. However, a bug prevented Python scripts using the standard library from connecting to HTTPS servers using a proxy when explicitly setting the port to connect to. The same bug also prevented users from using the bootstrap script for registration with Red Hat Satellite 6 through a proxy. This bug is now fixed, and scripts can now connect to HTTPS servers and register using Red Hat Satellite as expected. (BZ#1483438)