第 6 章 编译器和工具


在命令中断后 tcsh 不再处于不一致的状态

中断 eval sleep 10 命令会使 tcsh shell 处于 incosistent 状态。因此,需要按 Ctrl+D 组合键两次才能成功退出 shell。在这个版本中,tcsh 会在按 Ctrl+D 后正确退出。(BZ#1219923)

更正 tcsh中的 if 语句的解析

如果 then 关键字前面没有空格,则 tcsh shell 无法正确解析 if 语句。因此,如果 语句的分支被处理不正确,这会导致代码的不正确部分和行为错误执行。已修复 tcsh shell,以便在缺少 then 关键字前正确处理源代码。(BZ#1231097)

现在,在请求时正确应用 RELRO 保护

在以前的版本中,系统加载程序启动的二进制文件在某些情况下会缺少 Relocation Read-Only (RELRO)保护,即使应用程序构建时已被明确请求。这是因为静态链接器和系统加载程序间的错误沟通。链接器的底层源代码已被调整,以确保加载程序可以应用 RELRO 保护,从而为应用程序恢复安全功能。应用程序以及所有依赖的对象文件、存档和库使用之前版本 binutils 构建,以更正此缺陷。(BZ#1227839)

tcsh正确解释转义序列

在以前的版本中,tcsh 命令语言解释器错误地消耗某些转义序列,它以反斜杠 \ 字符开头。这个版本修复了对转义序列的解释,tcsh 现在返回与 Red Hat Enterprise Linux 5 相同的结果。(BZ#1301857)

OpenMP heuristics 调整了多 CPU 系统上的性能

GNU OpenMP 运行时( libgomp )使用的 Heuristics 用于确定延迟缩减措施,以考虑多处理器系统上的 CPU 关联性,并使用较低的旋转计数。因此,因为资源不足导致的死锁或运行非常慢的程序会大大加快运行。(BZ#1229852)

减少锁定竞争并提高了线程应用程序调用 localtime_r ()的性能。

以前,localtime_r ()函数中的锁争用,对需要经常调用这个功能的线程应用程序性能降低。glibc 库的内部例程中的锁定采购已被重新组织,以减少锁定竞争的可能性。(BZ#1244585)

当处理 $$eval 命令或 $(shell) 结构时,make 工具不再意外终止。

由于 make 软件包中的错误,make 工具有时会在处理包含 $$eval 命令或 $(shell) 进程的文件时意外终止。这些 bug 已被修复 在这种情况下不会崩溃。(BZ#835483)

并行构建不再意外终止

在以前的版本中,一个 bug 会导致 make 工具显示错误消息,并在执行并行构建时意外终止。这个问题现已解决,并行构建不再会因为这个错误而崩溃。(BZ#861189)

由于 $(eval) 结构,并行构建不再意外终止

在以前的版本中,当执行包含 $(eval) 构造的并行构建时,make 工具会意外终止。这个问题现已解决,并行构建不再会因为这个错误而崩溃。(BZ#1093149)

当同时调用 dprintf ()和 fork ()时,多线程应用程序不再崩溃

以前,使用 dprintf ()和 fork () glibc 功能的多线程应用程序可能会因为分段错误而意外终止。在这个版本中,fork () 实现已被修复,忽略 dprintf ()创建的临时流,上面描述的问题不再发生。(BZ#1275384)

改进了核心 C 库(glibc)以提高 malloc ()可扩展性

在实现 malloc () 函数时,可能会导致跨线程不必要的内存分配请求序列化。在这个版本中解决了这个问题,提高了频繁创建和销毁线程的应用程序的分配请求的并发吞吐量。(BZ#1264189)

改进了 /etc/mcelog/mcelog.conf中的文档

位于 /etc/ mcelog /mcelog.conf 的默认 mcelog 配置文件现在包含多个可用选项(如 mem-ce-error-log )。(BZ#1170580)

当审计模块提供 DSO 路径时,动态链接器(ld.so)不再失败

在以前的版本中,当审计模块提供备用 DSO (动态共享对象)路径时,ld.so 动态链接程序会意外终止并出现分段错误。这个版本解决了这个程序错误,现在动态链接器跟踪原始 DSO 路径以备将来参考,不再会失败。(BZ#1211098)

glibctzdata 更新不再替换 /etc/localtime 符号链接

在以前的版本中,在 /etc/localtime 文件是一个符号链接的系统上,glibctzdata 软件包的更新会将链接替换为 /etc/sysconfig/clock 配置文件中定义的 time-zone 文件。应用了补丁来解决问题,因为符号链接不再被替换 /etc/localtime。对于最佳兼容性,建议不要直接修改 /etc/localtime。相反,编辑 /etc/sysconfig/clock 配置文件,并在之后执行 tzdata-update 命令。(BZ#1200555)

glibc POSIX 实时支持在大型 TLS 数据时不再失败

glibc 库中的 POSIX 实时支持中的一个缺陷会导致在大型线程本地存储(TLS)数据中存在异步 I/O 或某些计时器 API 调用失败。librt 库已被修复,当应用程序中存在大型 TLS 数据时,受影响的 API 不再返回错误消息。(BZ#1299319)

iconv 不再添加冗余的转换序列

在以前的版本中,iconv 工具有时会为 IBM930、IBM933、IBM935、IBM937 和 IBM939 字符集错误处理字符转换。因此,iconv 的输出中会包括冗余的转换序列。生成的非格式输出可能会导致无法读取输出数据。字符转换例程已被修正,不再输出冗余转换序列。(BZ#1293914)

/etc/gai.conf 不再列为 glibc-common 软件包

在以前的版本中,当使用 rpm -V 命令检查 glibc-common 软件包时,/etc/gai.conf 配置文件可能会标记为修改,即使该软件包没有该文件。在这个版本中,从 glibc-common 中删除错误的文件条目。因此,rpm -V glibc-common 不再列出 /etc/gai.conf 配置文件已修改。(BZ#1223818)

java-1.8.0-openjdk 安装的命名规则一致

在以前的版本中,java-1.8.0-openjdk 软件包的安装目录自动生成的名称与 java-1.6.0-openjdkjava-1.7.0-openjdk 软件包的安装目录名称不一致。因此,与 java-1.8.0-openjdk 交互时,预期一致的 Java 命名模式的应用程序和自动化工具会失败。在这个版本中,java-1.8.0-openjdk 安装目录与之前的版本相同,这可以防止上面描述的问题。请注意,由于路径结构的变化,现在无法在更新前恢复到 java-1.8.0-openjdk 版本。(BZ#1217177)

LDAP 绑定密码会被正确模糊处理

在某些情况下,sosreport 工具以前可能会以纯文本形式捕获 LDAP 绑定凭证。这个问题已被解决,LDAP 绑定密码现在可以按预期在 sosreport 中模糊处理。(BZ#1227462)

当使用 ipa-replica-image 时,sosreport 不再超时

在以前的版本中,使用 ipa-replica-image 命令会导致 sosreport 工具执行更长的时间,并在某些情况下会超时。另外,在 sosreport 中捕获了对认证相关问题进行故障排除所需的所有信息。在这个版本中,确保 sosreport 收集足够的与认证相关的信息,并删除 ipa-replica-image,这可以防止上面描述的超时发生。(BZ#1203947)

现在,在使用- acls 时 tar 可以正确地设置 ACL

在以前的版本中,当使用-- acls 选项提取 tar 文件时,提取的文件从父目录继承默认的访问控制列表(ACL)。在这个版本中,当使用 when- acls 时,tar 会提取存档中设置的相同 ACL 的所有文件和目录。(BZ#1220891)

tar 可以正确地处理具有大 UID 的用户创建的存档

当 UID 或 GID 大于 2097151 的用户创建 pax 存档时,会正确创建归档,但 tar 会返回误导警告信息和非零退出状态。这个 bug 已被修复,tar 现在使用正确的退出状态退出,且没有假的警告信息。(BZ#1247788)

已修复 OProfile 以防止被长参数导致的缓冲区溢出

在此次更新之前,OProfile 中的参数检查代码会遭遇问题,在传递长路径名称或事件单元掩码时可能会导致缓冲区溢出。这个版本解决了问题,长参数不再导致缓冲区溢出。(BZ#1206242)

OProfile 现在可以在 IBM POWER7+ 系统中正常工作

在此次更新之前,IBM POWER 系统的 OProfile 使用旧版本的 libpfm 库构建,这会导致对 POWER7+ 处理器不可用,operfocount 工具无法在新的 IBM POWER 系统上运行。这个程序错误已被解决,operfocount 命令现在可以在 POWER7+ 系统中正常工作。(BZ#1303970)

应用程序不再会失败,并显示 'dlopen: 无法加载使用静态 TLS' 的更多对象。

glibc 动态加载程序无法加载使用静态线程本地存储(TLS)的 16 多个共享库。因此,应用程序可能会失败并显示出错信息,dlopen : 无法加载任何带有静态 TLS 的对象。这个程序错误已被解决,在这种情况下,应用程序可以正常启动,如果有足够的静态存储空间。(BZ#1198802)

GDB 现在生成较小的核心文件,并尊重 core-dump 过滤

gcore 命令(为 GDB 提供自己的核心转储功能)已更新,以更密切地模拟 Linux 内核内核转储代码的功能,从而生成较小的 core-dump 文件。GDB 现在遵循 /proc/PID/coredump_filter 文件,该文件控制将哪些内存片段写入 core-dump 文件。(BZ#1085906)

GDB 不再使用已删除的可执行文件终止运行的进程

在此次更新之前,GDB 会尝试附加到带有已删除可执行文件的正在运行的进程会意外终止该进程。这个程序错误已被解决,GDB 不再错误地使用已删除的可执行文件终止进程。(BZ#1219747)

修复了 Bash中的信号处理

由于信号处理程序函数调用某些 signal-unsafe 功能,如 malloc (),因此在某些情况下 Bash shell 在收到信号后变得无响应。此更新可确保信号处理程序不再调用 signal-unsafe 函数,这可以防止上面描述的错误发生。(BZ#868846)

命令替换现在可以在 bash中的算术表达式中工作

在以前的版本中,bash 在对 shell 解析器的递归调用之间不会保存输入行状态,从而导致 shell 无法解析命令替换在 arithmetic 表达式中。例如,以下命令失败:
for point in "/boot"; do disk_dir["$( df -P $point | awk '{print $1}' )"]=1; done
Copy to Clipboard Toggle word wrap
这个 bug 已被修复,bash 现在会在对解析器进行递归调用前保存输入行状态,命令替换现在可以在 arithmetic 表达式内正常工作。(BZ#1207803)

KornShell 现在重置并修改信号陷阱,不再崩溃

在以前的版本中,当尝试重置或修改某些信号陷阱时,KornShell (ksh)会意外终止并出现分段错误。在这个版本中,ksh 不会尝试释放用于字符串文字的内存。因此,ksh 不再会在上述情况下崩溃。(BZ#1247383)

不支持扩展属性和 ACL 时,打印 ls 输出不再需要很长时间

在以前的版本中,列出文件系统上的文件和目录而无需对扩展属性和访问控制列表(ACL)的支持,对每个文件都需要不必要的和高成本 lstat ()和 lgetxattr ()系统调用。因此,打印 ls 命令的输出需要几秒钟时间。现在,当 不支持 系统调用的结果时,ls 不会在此挂载点上再次尝试调用。因此,在上述情况下,ls 输出的打印速度显著提高。(BZ#1248141)

在分叉时,KornShell 不再省略命令列表中的后台进程

由于 KornShell (ksh)中的一个错误,在命令列表中分叉后台进程之前可能会完全省略该进程。处理分叉子进程的源代码已被修改,命令列表中的后台进程现在会如预期执行。(BZ#1217236)

在 KornShell 中,多字节字符不再损坏

在以前的版本中,在 KornShell (ksh)的命令行选项变量后,多字节 unicode 解析器会收到切换输入。因此,命令行变量后的多字节字符被破坏。补丁已被应用于修复多字节输入解析。因此,在上述情形中,可以正确处理多字节字符。(BZ#1256495)

Oracle ACFS 现在包含在已知的文件系统中

在以前的版本中,Oracle ASM 集群文件系统(ACFS)没有列在 stattail 工具的已知文件系统中。因此,tail 工具会输出一条错误消息,表示文件系统无法识别。ACFS 已添加到已知文件系统列表中,描述的情形中不再会出现错误消息。
另外,上游识别的其他文件系统也被添加到已知文件系统列表中,即 acfs,bpf_fs,btrfs_test,configfs,efivarfs,exofs,f2fs, hfs+ ,hfs+, hfsx,hostfs, , ibrix ,ibrix,log fs , nsfs, overlayfs, smack fs, s nfs, trace fs , 和 ubi fs .(BZ#1280333)

netfs stop 命令现在只卸载相关的循环设备

在以前的版本中,在停止 netfs 服务时,所有循环设备都非常显著。在这个版本中,在运行 netfs stop 命令时,只卸载相关的循环设备;即,在网络挂载之上挂载的设备。(BZ#1156231)
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat