6.2. 编译器和工具


SystemTap Dyninst 后端在没有 dyninst-devel 软件包的情况下工作

stap --dyninst 命令使用 SystemTap Dyninst 后端。在以前的版本中,当没有安装 dyninst-devel 软件包时,这个后端无法正常工作。因此,SystemTap 会意外终止,用户必须手动安装 dyninst-devel 并运行 ldconfig 工具作为临时解决方案。这个程序错误已被解决,SystemTap Dyninst 后端现在可以在没有 dyninst-devel 软件包的情况下正常工作。

(BZ#1498558)

GDB 断点默认源文件可用于符号链接

在以前的版本中,如果文件是符号链接,GDB 调试器将无法找到默认源文件的符号表信息。因此,用户无法通过省略源文件名并使用默认值来设置断点,如 break 63。这个程序错误已被解决,用户现在可以对符号链接后面的文件使用默认源文件,并带有断点。

(BZ#1639077)

glibc 中的 DNS 存根解析器不再拒绝有效的主机名,如 hostname-.example.com

glibc 中的 DNS 存根解析器拒绝某些有效的主机名,如 hostname-.example.com,并接受一些无效名称。因此,互联网上的一些主机名无法解析。要解决这个问题,已将 DNS 名称验证功能(如 res hnok )进行了调整,以便更接近用户预期和规格。因此,如果在 DNS 中存在 hostname-.example.com 的主机名,它们现在可以被成功解析。

(BZ#1039304)

当从 某些 IBM 字符集转换时,conv 不再挂起

在以前的版本中,IBM930、IBM933、IBM935、IBM937 和 IBM393 字符集的 glibc 转换程序会返回一个错误,并在遇到无效冗余转换序列时提前返回到下一个输入字符。因此,使用带有 -c 选项的 iconv 工具从这些字符转换来丢弃这些字符会导致工具无响应,因为它不能超过冗余转换序列的第一个发生状态。已修改转换器以接受这些序列并正确继续。因此,上述转换现在可以进行。

(BZ#1427734)

iconv 可以在 IBM273 和 ISO-8859-1 字符集之间进行转换

在以前的版本中,IBM273 字符集的 glibc 实现不等于 ISO-8859-1 字符集。它没有 Unicode 字符 MACRON 的表示,而是使用对应的字节来代表 OVERLINE Unicode 字符,其视觉表示与 MACRON 相同。因此,使用 glibc 提供的 iconv 工具将包含 OVERLINE 字符的 IBM273 文本转换为 ISO-8859-1 或 ISO-8859-1 文本,其中包含 MACRON 字符到 IBM273 会导致转换过程中出现错误。要解决这个问题,IBM273 字符集等同于 ISO-8859-1 字符集,方法是使用 MACRON 替换其 OVERLINE 表示。因此,两个字符集现在都使用 MACRON Unicode 字符,并且从一个字符转换到另一个字符并不会导致错误。

(BZ#1591268)

getifaddrs 调用不再意外终止应用程序

在以前的版本中,如果同时在内核中更改了接口,glibc 库中的 getifaddrs 功能生成的网络接口列表可能会缺少接口名称。因此,在这种情况下,使用 getifaddrs 的应用程序可能会意外终止。这个问题已被解决,getifaddrs 现在可确保列表与内核状态相同。因此,无法发生上述意外终止。

(BZ#1472832)

在再次隐式工作前包含明确目标的 Makefile

在以前的版本中,Makefiles 中的隐式(模式)和显式目标已弃用。更新至 3.82 版本后,make 构建工具会返回混合目标的错误。因此,无法使用包含混合目标的旧 Makefile。在这个版本中,make 可以正确地解析在隐式目标前列出显式目标的情况。因此,某些旧的 Makefile 现在可以无需修改地再次使用。但是,在显式目标之前隐式目标仍会导致错误。

请注意,Makefiles 中的显式和隐式目标已被弃用,不应添加到新的 Makefile 中。

(BZ#1582545)

PCP 现在报告大型系统的所有进程详情

在以前的版本中,Performance Co-Pilot (PCP)工具包在某些情况下无法在非常大的系统中报告某些进程详情。读取进程详细信息文件的代码已更改,以便可以读取任意长度的数据,而不是仅读取前 1024 字节。因此,上面描述的 PCP 错误不再发生。

(BZ#1600262)

条带 不再使用某些可执行文件崩溃

在以前的版本中,条状 工具包含有关可执行文件结构的不好的假设。因此,尝试剥离某些可执行文件可能会意外终止条带。对结构的假设已被修改,这个问题不再发生,条带 可以正常工作。

(BZ#1644632)

通过 libdb 优化 CPU 的使用

在以前的版本中对 libdb 数据库的更新会过度消耗 CPU。在这个版本中,CPU 的使用已被优化。

(BZ#1608749)

passwd --stdin 不再将密码长度限制为 79 个字符

当使用带有 --stdin 选项的 passwd 命令更改密码时,密码的长度限制为 79 个字符。因此,当您通过标准输入输入时输入的密码超过 79 个字符时,只接受前 79 个字符,且不会显示警告。在这个版本中,passwd 已被修复,将密码的可接受的大小与可插拔验证模块(PAM)定义的大小保持一致。因此,passwd --stdin 命令现在接受超过 79 个字符的密码,但不超过 PAM_MAX_RESP_SIZE - 1 个字符。如果超过该限制,则 passwd 会向标准错误输出报告错误,并以退出代码 1 退出。

(BZ#1276570)

Fix files 不再错误地失败

在以前的版本中,如果 /etc/selinux/ fixfiles _exclude_dirs 文件至少包含一个条目,且 /etc/selinux/targeted/contexts/files/file_contexts.local 文件不存在,则 fixfiles 脚本会失败。在这个版本中,存在 /etc/selinux/targeted/contexts/files/file_contexts.local 的要求已被删除,修复文件现在可以在上述场景中正常工作。

(BZ#1647714)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.