4.13. 编译器和开发工具


用于捕获 glibc 优化数据的新命令

新的 ld.so --list-diagnostics 命令可以捕获影响 glibc 优化决策的数据,如在一个机器可读的文件中的 IFUNC 选择和 glibc-hwcaps 配置。

(BZ#2023420)

glibc 字符串功能现在针对 Fujitsu A64FX 进行了优化

有了这个更新,glibc 字符串功能在 A64FX CPU 上展现了增加了吞吐量并减少了延迟。

(BZ#1929928)

新的具有 12 小时时钟的 UTF-8 区域设置 en_US@ampm

有了这个更新,您现在可以使用一个新的具有 12 小时时钟的 UTF-8 区域设置 en_US@ampm。这种新的区域设置可使用 LC_TIME 环境变量与其他区域设置相结合。

(BZ#2000374)

libffi 的自修改代码的新位置

有了这个更新,libffi 的自修改代码利用 RHEL 8 内核中的功能来创建独立于任何文件系统的适合的文件。因此,libffi 的自修改代码不再依赖于使部分文件系统不安全。

(BZ#1875340)

更新了 GCC Toolset 11

GCC Toolset 11 是一个编译器工具集,提供开发工具的最新版本。它在 AppStream 存储库中以软件集合的形式作为应用程序流提供。

RHEL 8.6 中引入的显著变化包括:

  • GCC 编译器已更新至版本 11.2.1 。
  • annobin 已更新至版本 10.23。

GCC 工具集 10 提供以下工具和版本:

工具版本

GCC

11.2.1

GDB

10.2

Valgrind

3.17.0

SystemTap

4.5

Dyninst

11.0.0

binutils

2.36.1

elfutils

0.185

dwz

0.14

make

4.3

strace

5.13

ltrace

0.7.91

annobin

10.23

要安装 GCC Toolset 11,请以 root 用户身份运行以下命令:

# yum install gcc-toolset-11

要从 GCC Toolset 11 运行工具:

$ scl enable gcc-toolset-11 tool

要运行一个 shell 会话,其中 GCC Toolset 11 的工具版本会覆盖这些工具的系统版本:

$ scl enable gcc-toolset-11 bash

有关用法的更多信息,请参阅使用 GCC Toolset

GCC Toolset 11 组件在两个容器镜像中提供:

  • rhel8/gcc-toolset-11-toolchain,其中包括 GCC 编译器、GDB 调试器和 make 自动化工具。
  • rhel8/gcc-toolset-11-perftools,其中包括性能监控工具,如 SystemTap 和 Valgrind。

要拉取容器镜像,以 root 身份运行以下命令:

# podman pull registry.redhat.io/<image_name>

请注意,现在只支持 GCC Toolset 11 容器镜像。之前 GCC Toolset 版本的容器镜像已弃用。

有关容器镜像的详情,请参阅 使用 GCC Toolset 容器镜像

(BZ#1996862)

GDB 反汇编器现在支持新的 arch14 指令

有了这个更新,GDB 能够反汇编新的 arch14 指令。

(BZ#2012818)

LLVM 工具集 rebase 到版本 13.0.1

LLVM 工具集 已升级到版本 13.0.1。主要变更包括:

  • clang 现在 C++ 中支持带有语句属性 [[clang::musttail]] 的保证尾部调用和 C 中带有__attribute__(musttail) 的保证尾部调用。
  • clang 现在支持 -Wreserved-identifier 警告,它会在代码中使用保留标识符时警告开发人员。
  • clang 的 -Wshadow 标志现在还检查影子结构的绑定。
  • clang 的 -Wextra 现在也暗指 Wnull-pointer-subtraction

(BZ#2001133)

Rust Toolset rebase 到 1.58.1

Rust Toolset 已 rebase 到版本 1.58.1。主要变更包括:

  • Rust 编译器现在支持语言的 2021 版,其特点是闭包中的分离捕获、用于数组的 IntoIterator 、一个新的 Cargo 功能解析器等等。
  • 添加了对新自定义配置文件的 Cargo 支持。
  • Cargo 去掉了重复的编译器错误。
  • 添加了新的开放范围模式。
  • 以格式字符串形式添加了捕获的标识符。

如需更多信息,请参阅:

(BZ#2002883)

Go Toolset 已 rebase 到版本 1.17.7

Go Toolset 已升级至 1.17.7 版本。主要变更包括:

  • 添加了一个选项,来将切片转换为数组指针。
  • 添加了对 //go:build 行的支持。
  • 对 amd64 上功能调用性能的改进。
  • 函数参数在堆栈跟踪中被格式化得更清晰。
  • 包含闭包的函数可以被内联。
  • 在 x509 证书解析中减少了资源消耗。

(BZ#2014088)

pcp rebase 到 5.3.5

pcp 软件包已 rebase 到版本 5.3.5 。主要变更包括:

  • 为 CPU 和磁盘饱和添加了新的 pmieconf(1) 规则。
  • 提高了 pmproxy(1) 服务的稳定性和可扩展性。
  • 提高了 pmlogger(1) 服务的服务延迟和健壮性。
  • 添加了与电源相关的新性能指标。
  • pcp-htop(1) 工具中添加了新功能。
  • pcp-atop(1) 工具中添加了新功能。
  • 更新了 Nvidia GPU 指标。
  • 添加了新的 Linux 内核 KVM 和网络指标。
  • 添加了一个新的 MongoDB 指标代理。
  • 添加了一个新的套接字指标代理和 pcp-ss(1) 工具。
  • 默认情况下,禁用了 pmcd(1)pmproxy(1) Avahi 服务广告。

(BZ#1991763)

grafana 软件包 rebase 到版本 7.5.11

grafana 软件包已 rebase 到版本 7.5.11。主要变更包括:

  • 添加了一个新的 准备时间序列 转换,用于向后兼容不支持新数据帧格式的面板。

(BZ#1993214)

grafana-pcp rebase 到 3.2.0

grafana-pcp 软件包已 rebase 到版本 3.2.0。主要变更包括:

  • 为 PCP Redis 添加了一个新的 MS SQL 服务器仪表盘。
  • 在 PCP Vector eBPF/BCC Overview 仪表盘中添加了空直方存储桶。
  • 修复了 PCP Redis 的 metric() 函数没有返回所有指标名称的错误。

(BZ#1993149)

js-d3-flame-graph rebase 到 4.0.7

js-d3-flame-graph 软件包已 rebase 到版本 4.0.7。主要变更包括:

  • 添加了新的蓝色和绿色配色方案。
  • 添加了显示火焰图上下文的功能。

(BZ#1993194)

现在在 PCP 中提供功耗指标

新的 pmda-denki 性能指标域代理(PMDA)报告与功耗相关的指标。具体来说,它报告:

  • 基于运行平均功率限制(RAPL)读数的消耗指标,在最近的Intel CPU 上提供
  • 基于电池放电的消耗指标,在配备电池的系统上提供

(BZ#1629455)

新模块:log4j:2

AppStream 存储库中现在提供一个新的 log4j:2 模块。此模块包含 Apache Log4j 2,它是一个 Java 日志记录工具,以及一个使您可以将日志语句输出到各种输出目标的库。

Log4j 2Log4j 1 提供更显著的改进。值得注意的是,Log4j 2Logback 框架引入了改进,并解决了 Logback 架构中的一些固有问题。

要安装 log4j:2 模块流,请使用:

# yum module install log4j:2

(BZ#1937468)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.