第 3 章 编译程序及工具

dracut 根据 iBFT 条目配置 VLAN

之前 dracut 程序无法创建 VLAN 网络接口,即使在 iBFT 中出现 VLAN 参数,且可用。在这个更新中使用 VLAN 的 iSCSI 引导可正常工作。

gcc 支持 System z 二进制文件中的热补功能

gcc hotpatch(热补)属性支持在 System z 二进制文件中采用多线程代码的在线打补丁方法。在这个更新中,可以使用功能属性选择要热补的具体功能,并使用 -mhotpatch= 命令行选项为所有功能启用热补方式。
启用的热补对软件大小和性能有负面影响,因此建议为具体功能使用热补,但不要启用常规热补支持。

为 TLS 版本更改的 curl 支持

这个更新引进了 curl 的新选项 --tlsv1.0--tlsv1.1--tlsv1.2,用来指定与 NSS 进行协商的 TLS 协议次要版本。已在 libcurl API 中为此目的添加相应的 CURL_SSLVERSION_TLSv1_0、CURL_SSLVERSION_TLSv1_1 和 CURL_SSLVERSION_TLSv1_2 常数。已对现有 curl--tlsv1 选项语义及 libcurl API 的 CURL_SSLVERSION_TLSv1 常数作相应修改,以便与同时被客户端及服务器支持的最高 TLS 1.x 协议协商。

Python ConfigParser 可在没有赋值的情况下恰当地处理选项

Python ConfigParser 被设计为要求每个选项都有一个值,但某些配置文件(比如 my.conf)包含没有赋值的选项,从而造成 ConfigParser 无法获取此类配置文件。已将这个功能移植到 Python 2.6.6,且 ConfigParser 现在已能够读取包含未赋值选项的配置文件。

tcpdump 支持 -J、-j 和 --time-stamp-precision 选项

由于内核、glibc 和 libpcap 现在提供 API 以获取纳秒解析时间戳,已将 tcpdump 更新为利用这个功能。用户现在可以查询可用的时间戳源(-J),设定具体时间戳源(-j),及使用指定解析请求时间戳(--time-stamp-precision)。

改进了用于在 SCSI 设备间赋值数据的程序

sg3_utils 软件包中引进可从 SCSI 协议中获益,以便在存储设备间更有效复制数据的程序。为启用这个功能,已将 sg_xcopysg_copy_results 程序移植到 sg3_utils 软件包。

ethtool 支持规定定制 RSS 哈希密钥

在 ethtool 中添加了改进,以便为现在可定义的 RSS 自定义哈希密钥。这个改进可帮助您根据收到的流量利用接受队列,并可通过为预期流量选择适当的密钥加强性能和安全性。

已在 tcpdump 中添加 setdirection 支持

tcpdump 软件现在包含 setdirection 支持,这样就可以为 -P 标签指定一个参数,使其只接受数据包(-P in)、只发送数据包(-P out)或应捕获所有数据(-P inout)。

sysctl 现在可以读取系统目录组

这个更新在 sysctl 程序中引进了 --system 选项。这个选项可让 sysctl 处理系统目录组中的配置文件。

已将 mcelog 升级至 upstream 版本 109

已将 mcelog 软件包升级至 upstream 版本 109,与上一个版本相比,该版本提供大量 bug 修复和改进。最主要的是 mcelog 现在支持 Intel Core i7 CPU 架构。

已将 biosdevname 升级至 upstream 版本 0.6.2

已将 biosdevname 软件包升级至 upstream 版本 0.6.2,同时除其他功能外,还为新的 Mellanox 驱动程序提供 dev_port 属性,并允许忽略 FCoE 设备命名。

PCRE 库的改进

如果二进制文件不是有效 UTF-8 序列,为允许 grep 程序可以从 PCRE 映射失败中恢复,已将以下功能移植入 PCRE 库:
* pcre_exec() 功能现在检查超出范围的起始偏移值,并报告 PCRE_ERROR_BADOFFSET 错误,而不是报告 PCRE_ERROR_NOMATCH 错误或造成无限循环。
* 如果调用 pcre_exec() 功能对无效 UTF-8 目标字符串执行 UTF-8 映射,同时矢量阵参数足够大,则会以矢量阵元素返回无效 UTF-8 字节格式的第一个目标字符串以及详细的原因代码。另外,pcretest 程序现在可用于显示这些详细情况。注:使用这个更新,pcre_compile() 功能会报告第一个无效 UTF-8 字节,而不是最有一个字节。还请注意, 已修改不作为公开使用的 pcre_valid_utf8() 功能签名。最后请注意,pcretest 程序现在可在错误代码后附加可读错误信息。

在 glibc 动态载入程序中支持 Intel AVX-512

Glibc 动态载入程序现在支持 Intel AVX-512 扩展。这个更新可让动态载入程序根据需要保存并恢复 AVX-512 注册,这样可防止启用 AVX-512 的应用程序因同样使用 AVX-512 的审核模块而失败。

Valgrind 识别 Intel MPX 指令

Valgrind 不能识别 Intel 内存保护扩展(Memory Protection Extensions,MPX)指令或使用 MPX bnd 前缀的指令。随后 Valgrind 会使用 SGKILL 信号终止使用 MPX 的程序。Valgrind 现在可识别新的 MPX 指令和 bnd 前缀。目前所有新的 MPX 指令都作为非操作指令实施,并忽略 bnd 前缀。结果是使用 MPX 指令或 bnd 前缀的程序可在 Valgrind 中运行,如同为在 CPU 中未启用 MPX 一样,且不再会被终止。

free 支持可读输出结果

已在 free 程序中添加 -h 选项。这个选项的目的是将所有输出结果字段自动缩小至使用三个数字代表,其中包括单位,以便读取输出结果。

w 支持 -i 选项

w 程序现在包括 -i 选项,以便在 FROM 栏中显示 IP 地址而不是主机名。

将 vim 恢复到版本 7.4

已将 vim 软件包更新至 upstream 版本 7.4,与上一个版本相比,该版本提供大量 bug 修复和改进。值得关注的更改为:Vim 文本编辑器现在支持持续的变更恢复,该功能可通过设定 undofile 选项启用。默认情况下,上传缓存时,Vim 会删除那个缓存创建的更改树。但启用持续变更恢复后,Vim 会自动保存更改历史记录,并将其恢复为重新打开缓存。这个更新引进了新的正则表达式引擎。之前的引擎使用回溯算法,可从一个方向映射文本模式,当这个尝试失败后,则会从另一个方向映射模式。这个引擎可用于简单模式,但对于较长文本中的复杂模式则需要消耗很长的时间。新的引擎使用状态机逻辑,会根据当前字符尝试所有可能性,并保存模式的可能状态。但对于简单模式来说这个进程稍显缓慢,而映射较长文本的复杂模式则迅速的多。最值得注意的是,这个变更改进了使用长划线的 JavaScript 和 XML 文件的语法高亮显示。