第 7 章 编译器和工具
pcp rebase 到版本 3.11.8
Performance Co-Pilot
应用程序(PCP)已升级到上游版本 3.11.81,它提供很多程序错误修复和增强。主要改进包括:
- 添加了一个新的客户端工具
pcp2influxdb
,允许将性能指标值导出到influxdb
数据库。 - 添加了新的客户端工具
pcp-mpstat
和pcp-pidstat
,以允许重新执行对 mpstat 和 pidstat 值的重新介绍。 - 为设备映射器、
Ceph
设备、cpusched cgroup、每个处理器软 IRQs、buddyinfo
、zoneinfo
、共享内存、libvirt
、同一页面共享共享、LOLA、LOHI 和Docker
增加了新的性能指标。 - 现在,为各种 PCP 分析工具提供了来自多个子系统的其他性能指标。(BZ#1423020)
systemtap rebase 到版本 3.1
systemtap 软件包升级至上游版本 3.1,它提供很多程序错误修复和增强。主要变更包括:
- 系统调用的探测不再默认基于
debuginfo
信息。 - 添加了对探测
Python
功能的支持。 - 对
Java
功能参数的访问变得更加统一。 - 改进了统计聚合变量的性能。
- 添加了一个新的统计 operator @variance。
- 添加了用于获取和设置用户空间值的更多选项。
- 通过示例改进了 NFS 监控
valgrind rebase 到版本 3.12
valgrind 软件包升级至上游版本 3.12,它提供了大量的程序错误修复和增强。主要变更包括:
- 在 memcheck 工具中添加了一个新的 --ignore-range-below-sp 选项,以忽略堆栈指针下的内存访问。这是现在已弃用的选项 --workaround-gcc296-bugs=yes 的一个通用替代选项。
- 由 --gen-suppressions=yes 选项生成的隐藏条目中的最大调用数现在等于 --num-callers 选项给出的值。
- 对于最常见用例,工具代码块的成本是 AMD64 和 Intel 64 构架中的
memcheck
工具。 - 对调试程序进行了改进,它丢弃了大量指令地址范围为 8KB 或者更少。
- 添加了对 IBM Power 9(ISA 3.0)架构的支持。
- 添加了对 AMD FMA4 指令的部分支持。
- 添加了对 64 位 ARM 架构版本 8 的加密和 CRC 指令的支持。(BZ#1391217)
新软件包: unitsofmeasurement
unitsofmeasurement 软件包在 Java 代码中启用表达测量单位。随着新的 API 用于测量单位,物理量处理变得更加容易,而且容易出错。软件包的 API 高效使用内存和资源。(BZ#1422263)
现在,在 Python 标准库中默认启用 HTTP 客户端的 SSL/TLS 证书验证
在 Python 标准库中更改了 HTTP 客户端的默认全局设置,以默认验证 SSL/TLS 证书。使用基于文件配置的文件配置不会受到影响。详情请查看 https://access.redhat.com/articles/2039753。(BZ#1219110)
添加了对 %gemspec_add_dep
和 %gemspec_remove_dep
的支持
在这个版本中,增加了对
%gemspec_add_dep
和 %gemspec_remove_dep
macros 的支持。这些宏可以更轻松地调整 rubygem-* 软件包依赖项。另外,所有当前的宏都扩展为改进对预发行包版本的支持。(BZ#1397390)
ipmitool rebase 到版本 1.8.18
ipmitool 软件包升级至上游版本 1.8.18,它提供了大量的程序错误修复和增强。主要变更包括:
- 重新设计 PEF 用户界面
- 为 IP 版本 6 局域网参数添加了新的子命令 lan6
- 添加了对 VITA 特定感器类型和事件的支持
- 添加了对 HMAC_MD5 和 HMAC_SHA256 加密的支持
- 添加了对检查 PICMG 扩展 5.x 的支持
- 添加了对 USB 介质作为新通信接口的支持
- 对于 GNU Linux 系统(BZ#1398658))默认启用 USB 驱动程序。
lshw 针对 IBM Power 的 little-endian 变体更新
lshw 软件包提供了机器硬件配置的详细信息,它为 IBM Power System 的 little-endian 变体更新。(BZ#1368704)
perf
现在支持 Intel Xeon v5 上的未核事件
在这个版本中,Linux(perf)的性能分析工具已更新,以支持 Intel Xeon v5 服务器 CPU 上的未核事件。这些事件为高级用户提供额外的性能监控信息。(BZ#1355919)
dmidecode 已更新
dmidecode 软件包已更新至更新的版本,它提供一些程序错误修复和硬件启用改进。(BZ#1385884)
iSCSI 现在支持使用 targetcli配置 ALUA 操作
对于从启动器到目标的多个路径,您可以使用 Asymmetric Logical Unit Assignment(ALUA)来配置有关如何以非统一方式使用路径的首选项。Linux-IO(LIO)内核目标始终支持此功能。借助此次更新,您可以使用 targetcli 命令 shell 来配置 ALUA 操作。(BZ#1243410)
jansson rebase 到版本 2.10
egrep
和 fgrep
的新兼容性环境变量
在以前的
grep
rebase 中,egrep 和 fgrep 命令分别被 grep -E 和 grep -F 替代。这个更改可能会影响客户脚本,因为只在 ps 命令之外显示 grep
。为防止出现这个问题,这个更新引入了一个新的兼容性环境变量: GREP_LEGACY_EGREP_FGREP_PS
。要在 ps 输出中保留显示 egrep
和 fgrep
,请将变量设置为 1:
GREP_LEGACY_EGREP_FGREP_PS=1
GREP_LEGACY_EGREP_FGREP_PS=1
(BZ#1297441)
lastcomm 现在支持 --pid 选项
新软件包: perl-Perl4-CoreLibs
Red Hat Enterprise Linux 7 基本频道中提供了一个新的 perl-Perl4-CoreLibs 软件包。这个软件包包含之前在 Perl 4 中可用的库,但已从 Perl 5.16 中删除,它随 Red Hat Enterprise Linux 7 一起发布。在以前的版本中,这些库通过 Optional 频道在 Perl 子软件包中提供。(BZ#1366724)
现在,tar 在从存档中提取时会显示到目录的符号链接
在这个版本中,在 tar 命令中添加了 --keep-directory-symlink 选项。当它遇到与要提取的目录同名的符号链接时,此选项会更改 tar 的行为。默认情况下,tar 会首先删除符号链接,然后继续提取目录。--keep-directory-symlink 选项禁用此行为,并指示 tar 在从存档中提取时跟踪至目录的符号链接。(BZ#1350640)
IO::Socket::SSL
Perl 模块现在支持限制 TLS 版本
Net:SSLeay
Perl 模块已被更新,以支持 TLS 协议版本 1.1 或 1.2 的显式规格以提高安全性,并且 IO::Socket::SSL
模块已更新。创建新的 IO::Socket::SSL
对象时,现在可以通过将 SSL_version
选项设置为 TLSv1_1
或 TLSv1_2
将 TLS 版本限制为 1.1 或 1.2。另外,可以使用 TLSv11
和 TLSv12
。请注意,这些值区分大小写。(BZ#1335035)
Net:SSLeay
Perl 模块现在支持限制 TLS 版本
Net:SSLeay
Perl 模块已更新,以支持 TLS 协议版本的明确规格,可用于提高安全性。要将 TLS 版本限制为 1.1 或 1.2,请将 Net::SSLeay::ssl_version
变量设置为 11
或 12
。(BZ#1335028)
wget
现在支持 TLS 协议版本规格
在以前的版本中,在连接到远程服务器时,
wget
工具默认使用最高 TLS 协议版本 1.2。在这个版本中,wget 已被改进,允许用户通过在 wget
命令中添加 --secure-protocol=TLSv1_1 或 --secure-protocol=TLSv1_2 命令行选项来显式选择 TLS 协议次要版本。(BZ#1439811)
tcpdump rebase 到版本 4.9.0
tcpdump 软件包升级至上游版本 4.9.0,它提供了大量的程序错误修复和增强。主要变更包括:
- 修复了多个安全漏洞
- 在常见网络协议的交集中已进行大量改进
- 默认 snaplen 功能已增加到 262144 字节
- 捕获缓冲区已扩大到 4 MiB(BZ#1422473)
将 tcpdump
的捕获方向从 -P 改为 -Q的选项
在以前的版本中,Red Hat Enterprise Linux 中的
tcpdump
工具使用 -P 选项在上游版本使用了 -Q 时设置捕获方向。实现了 -Q 选项,现在首选。P 选项会将 之前的功能保留为 -Q 的别名,但会显示警告。(BZ#1292056)
OpenJDK
现在支持 64 位 ARM 架构上的 SystemTap
OpenJDK
平台现在支持使用 64 位 ARM 架构的 SystemTap
检测工具进行内省。(BZ#1373986)
sos rebase 到版本 3.4
sos 软件包已更新至上游版本 3.4,它提供了一些改进、新功能和程序错误修复,其中包括:
- 为
ceph_ansible
增加了新的插件、collectd
、crypto
、dracut
、dracut、gnocchi
、jar、
、nfs
ganeshanodejs
、npm
、openstack_ansible
、openstack_instack
、openstack_manila
、salt
、saltmaster
、Storageconsole
- API 插件增强
- 国际更新
- 当网络名称包含单引号字符
"
时,网络插件不再崩溃。 foreman-debug
插件现在使用更长的超时来运行,以防止收集的不完整foreman-debug
信息- 不再收集某些私有 SSL 证书文件(BZ#1414879)
targetd rebase 到版本 0.8.6
targetd 软件包已升级到上游版本 0.8.6,它提供很多程序错误修复和增强。值得注意的是,
targetd
服务现在在 Python 2 或 Python 3 运行时中运行,并添加了以下 API: initiator_list
,access_group_list
,access_group_create
,access_group_destroy
,access_group_init_add
、access_group_init_del
、access_group_map_list
、access_group_map_create
,以及 access_group_map_destroy
。
主要程序错误修复包括:
targetd
现在与 JSON-RPC 响应版本 2.0 兼容。export_create
API 现在可用于将相同的 LUN 映射到多个启动器。targetd
现在确保在启动时存在 SSL 证书。(BZ#1162381)
shim rebase 到版本 12-1
在这个版本中,shim 软件包升级至上游版本 12-1,它提供了大量的程序错误修复和增强。值得注意的是,增加了对 32 位 UEFI 固件和可扩展固件接口(EFI)实用程序的支持。(BZ#1310766)
rubygem-abrt rebase 到版本 0.3.0
rubygem-abrt 软件包已更新至版本 0.3.0,它比之前的版本提供一些程序错误修复和增强。值得注意的是:
Ruby ABRT
处理程序现在支持uReports
,自动匿名微reports。启用uReports
后,开发人员会及时通知应用程序问题,并且能够更快地修复错误并解决问题。- 在以前的版本中,当
Ruby
应用程序使用Bundler
管理其依赖项和发生错误时,会使用不正确的逻辑来加载Ruby ABRT
处理程序的组件。因此,为用户报告意外的LoadReport
错误,而不是正确的ABRT
报告。现在,加载的逻辑已被修复,Ruby
应用程序错误会被正确处理并使用ABRT
报告。(BZ#1418750)
新软件包: http-parser
新的 http-parser 软件包提供了解析 HTTP 信息的工具。它解析请求和响应。解析器设计为在管理 HTTP 性能的应用中使用。它不会使任何系统调用或分配,它不会缓冲数据,并且可以随时中断。根据您的构架,每个消息流只需要大约 40 字节的数据。(BZ#1393819)
Intel 和 IBM POWER 事务内存支持所有默认的 POSIX mutexes
默认的 POSIX mutexes 可以使用 Intel 和 IBM POWER 事务内存支持透明地替换,这可显著减少锁定购置成本。要启用对所有默认的 POSIX mutexes 的事务内存支持,请将
RHEL_GLIBC_TUNABLES=glibc.elision.enable
环境变量设置为 1
。因此,可以提高某些应用程序的性能。
建议开发人员使用性能分析来决定是否启用此功能,以提高其应用程序的性能。(BZ#841653, BZ#731835)
glibc
现在支持组合并
在
glibc
中添加了对来自不同名称服务模块的组成员的功能。因此,对跨多个主机的集中用户访问控制和组成员身份的管理现在变得更加容易。(BZ#1298975)
glibc
现在支持 IBM POWER9 架构中优化的字符串比较功能
glibc
库中的字符串比较功能 strcmp
和 strncmp
已针对 IBM POWER9 架构进行了优化。(BZ#1320947)
提高了使用 Intel SSE、AVX 和 AVX512 功能动态载入的库的性能
使用 Intel SSE、AVX 和 AVX512 功能的库载入已更新。因此,在载入这些库时性能有所改进。另外,增加了对 LD_AUDIT 风格的审计的支持。(BZ#1421155)
elfutils rebase 到版本 0.168
elfutils 软件包升级至上游版本 0.168,它提供了大量的程序错误修复和增强:
eu-readelf
程序的选项--symbols
现在允许选择部分来显示符号。- 创建 ELF/DWARF 字符串表的新功能已添加到
libdw
库中。 DW_LANG_PL1
常量已改为DW_LANG_PLI
。之前的名称仍被接受。libelf
库的gelf_newehdr
和gelf_newphdr
功能的返回类型已被修改为void*
,用于与其他libelf
实现的源兼容性。这个更改会保留对 Red Hat Enterprise Linux 支持的所有平台的二进制兼容性。(BZ#1400302)
bison rebase 到版本 3.0.4
bison 软件包升级至上游版本 3.0.4,它提供了大量的程序错误修复和增强:
- 修复了因小心错误造成的无结束诊断问题。
- 现在,添加了 -Werror=CATEGORY 选项,以将指定的警告视为错误。不能使用 -W 选项显式激活警告。
- 处理优先规则和无用规则的许多改进。
另外,引进了以下更改会破坏向后兼容性:
- 以下功能已弃用:
YYFAIL
,YYLEX_PARAM
,YYPARSE_PARAM
,yystype
,yyltype
- 不再自动添加操作末尾的分号。
系统默认 CA 捆绑包在 Mutt
中的编译的默认设置或配置中被设置为默认值
在以前的版本中,当通过 TLS/SSL 连接到新系统时,
Mutt
电子邮件客户端需要用户保存证书。在这个版本中,系统证书颁发机构(CA)捆绑包会被默认设置为 Mutt
。现在,Mutt
通过 SSL/TLS 连接到具有有效证书的主机,而不提示用户批准或拒绝证书。(BZ#1388511)
objdump
混合列表加快
在以前的版本中,用于解析 DWARF debug 信息和查找源代码的 BFD 库非常慢。BFD 库被
objdump
工具使用。因此,在生成源代码混合列表和解装时,objdump
会变得非常慢。BFD 库的性能有所提高。因此,生成带有 objdump
的混合列表速度更快。(BZ#1366052)
ethtool
支持来自 fjes
驱动程序的人类可读输出
ethtool
实用程序已被改进,以提供来自 fjes
驱动程序的注册转储输出的人类可读形式。因此,ethtool
的用户可以更加快速地检查 Fujitsu Extended Socket Network Device 驱动程序。(BZ#1402701)
ecj rebase 到版本 4.5.2
ecj 软件包升级至上游版本 4.5.2,它提供了大量的程序错误修复和增强。值得注意的是,已完成对添加到版本 8 中的 Java 语言的功能的支持。因此,使用 Java 8 功能编译 Java 代码不再会失败。这包括不使用 Java 8 功能使用这些功能所引用的代码的情况,比如 Java Runtime Environment 提供的系统类。(BZ#1379855)
rhino rebase 到版本 1.7R5
rhino 软件包升级至上游版本 1.7R5,它提供了大量的程序错误修复和增强。值得注意的是,在解析正则表达式时,以前的问题已被修复。使用
Rhino
的应用程序之前遇到此错误现在可以正常工作。(BZ#1350331)
scap-security-guide 和 oscap-docker
现在支持容器
用户现在可以使用
oscap-docker
实用程序和 SCAP 安全指南来评估容器或容器镜像的合规性,而无需遇到假的正结果。现在,容器上下文(如分区)没有意义的测试(如分区)被设置为 不适用
值,现在可以使用所选安全策略扫描容器。(BZ#1404392)