8.2. 编译器和工具
RHEL 中包含的 GCC 线程 sanitizer 不再可以正常工作
由于内核内存映射中不兼容的变化,RHEL 中的 GNU C Compiler (GCC)编译器版本中包含的线程清理程序将不再工作。另外,线程清理器无法适应不兼容的内存布局。因此,无法再使用 RHEL 中包含的 GCC 线程 sanitizer。
作为临时解决方案,使用 Red Hat Developer Toolset 中包含的 GCC 版本来构建使用线程 sanitizer 的代码。
(BZ#1569484)
SystemTap 中的上下文变量并不总是访问
GCC 编译器中生成调试信息有一些限制。因此,当使用 SystemTap 工具分析生成的可执行文件时,以 $foo
格式列出的上下文变量通常无法访问。要临时解决这个问题,请在 $HOME/.systemtap/rc
文件中添加 -P
选项。这会导致 SystemTap 始终选择 prologue-searching heuristics。因此,一些上下文变量可以被访问。
(BZ#1714480)
带有 KEYBD
陷阱字节字符的 ksh
当启用 KEYBD
陷阱时,Korn Shell(KSH)无法正确处理多字节字符。因此,当用户输入日语字符时,ksh
显示一个不正确的字符串。要临时解决这个问题,注释掉以下行,在 /etc/kshrc
文件中禁用 KEYBD
陷阱:
trap keybd_trap KEYBD
如需了解更多详细信息,请参阅相关的 知识库解决方案。
从 RHEL 7.6 版本升级 PCP
时出错
当您将 pcp
软件包从 RHEL 7.6 升级到 RHEL 7.7 版本时,yum
会返回以下出错信息:
Failed to resolve allow statement at /etc/selinux/targeted/tmp/modules/400/pcpupstream/cil:83 semodule: Failed!
忽略这种无害消息是安全的,这是由 pcp
的 RHEL 7.6 构建中的一个程序错误导致的,而不是由更新的软件包造成的。RHEL 7.7 中的 PCP
功能不受影响。