4.10. 编译器和开发工具


新的 GCC 工具集 14

GCC Toolset 14 是一个编译器工具集,提供开发工具的最新版本。它以 AppStream 存储库中的 Software Collection 的形式作为 Application Stream 提供。

以下工具和版本由 GCC Toolset 14 提供,以及 RHEA-2024:8851 公告的发布:

  • GCC 14.2
  • GDB 14.2
  • binutils 2.41
  • annobin 12.70
  • dwz 0.14

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

# yum install gcc-toolset-14

要从 GCC Toolset 14 运行工具:

$ scl enable gcc-toolset-14 <tool>

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

$ scl enable gcc-toolset-14 bash

GCC Toolset 14 组件也可以在 gcc-toolset-14-toolchain 容器镜像中找到。

如需更多信息,请参阅 GCC Toolset 14使用 GCC Toolset

Jira:RHEL-34596[1], Jira:RHEL-30411

GCC Toolset 14: GCC rebase 到版本 14.2

在 GCC Toolset 14 中,GNU Compiler Collection (GCC)已更新至版本 14.2,并发布 RHEA-2024:8864 公告。

主要变更包括:

  • 优化和诊断改进
  • 新的 强化型 umbrella 选项,该选项启用一组强化标记
  • new -fharden-control-flow-redundancy 选项,用于检测将控制传输到功能中间的攻击
  • 新的 strub type 属性来控制功能和变量的堆栈清理属性
  • 一个 new -finline-stringops 选项,用于强制扩展某些 mem* 功能
  • 支持新的 OpenMP 5.1、5.2 和 6.0 功能
  • 多个新的 C23 功能
  • 多个新的 C++23 和 C++26 功能
  • 几个已解决的 C++ 缺陷报告
  • 新的并改进了对 C++20、C++23 和 C++26 的实验性支持
  • 支持 64 位 ARM 架构中的新 CPU
  • 64 位 Intel 架构中的多个新指令集架构(ISA)扩展,例如:AVX10.1、AVX-VNNI-INT16、SHA512 和 SM4
  • GCC 的静态分析器中的新警告
  • 某些警告被更改为错误 ; 详情请参阅 移植到 GCC 14
  • 各种程序错误修复

有关 GCC 14 中更改的更多信息,请参阅上游 GCC 发行注记

Jira:RHEL-30412[1]

GCC Toolset 14: GDB rebase 到版本 14.2

在 GCC Toolset 14 中,GDB 已更新至版本 14.2,并发布 RHBA-2024:8862 公告。以下段落列出了 GDB 12.1 后的显著变化。

概述:

  • info breakpoints 命令现在将禁用的断点的启用的断点位置显示为 y- 状态。
  • 添加了对使用 ELF 的 Zstandard (ELFCOMPRESS_ZSTD)压缩的 debug 部分的支持。
  • 默认情况下,文本用户界面(TUI)不再为当前位置指示器突出显示的源代码和汇编代码设置样式。要重新启用样式,请使用新命令 set style tui-current-position
  • 新的 $_inferior_thread_count 方便变量包含当前 下级中活跃线程的数量。
  • 对于具有多个代码位置的断点,GDB 现在使用 <breakpoint_number>.<location_number> 语法打印代码位置。
  • 当命中断点时,GDB 现在将 $_hit_bpnum$_hit_locno 方便变量设置为命中断点数和代码位置号。现在,您可以使用 disable $_hit_bpnum 命令禁用最后命中的断点,或使用 disable $_hit_bpnum.$_hit_locno 命令禁用特定的断点代码位置。
  • 添加了对 NO_COLOR 环境变量的支持。
  • 添加了对大于 64 位的整数类型的支持。
  • 您可以使用多目标功能配置的新命令来配置远程目标功能集(请参阅命令中的 set remote <name>-packetshow remote <name>-packet)。
  • 添加了对 Debugger Adapter 协议的支持。
  • 现在,您可以使用新的 inferior 关键字使断点特定于下级(请参阅命令中的 breakwatch )。
  • 您现在可以使用新的 $_shell() 方便函数来在表达式评估过程中执行 shell 命令。

对现有命令的更改:

  • break,watch

    • 现在,在 breakwatch 命令中多次使用 threadtask 关键字会导致错误,而不是使用关键字的最后一个实例的线程或任务 ID。
    • 现在在同一 breakwatch 命令中使用多个 threadtaskinferior 关键字无效。
  • printf,dprintf

    • printfdprintf 命令现在接受 %V 输出格式,它与 print 命令格式化表达式的方式相同。您还可以通过在命令后使用方括号 […​] 中的附加打印选项来修改输出格式,例如:printf "%V[-array-indexes on]", <array>
  • list

    • 您现在可以使用 . 参数打印当前帧内执行点附近的位置,或者,如果 inferior 尚未启动,则打印 main() 函数开头附近的位置。
    • 尝试列出文件中比可用的更多的源行,现在会发出一个警告,让用户参考 . 参数。
  • 记录用户定义的

    • 现在,可以记录用户定义的别名。

新命令:

  • set print nibbles [on|off] (默认值: off), show print nibbles - 控制 print/t 命令是否以四位组(nibbles)的形式显示二进制值。
  • set debug infcall [on|off] (默认值: off),show debug infcall - 显示关于 inferior 功能调用的额外的调试信息。
  • set debug solib [on|off] (默认值: off), show debug solib - 打印有关共享的库处理的额外的调试信息。
  • set print characters <LIMIT> show print charactersprint -characters <LIMIT> - 控制可打印一个字符串的多少个字符。
  • set debug breakpoint [on|off] (默认值: off), show debug breakpoint - 打印有关断点插入和删除的额外的调试信息。
  • maintenance print record-instruction [ N - 打印给定指令的记录信息。
  • maintenance info frame-unwinders - 以优先级顺序(第一个最高)列出当前有效的帧 unwinders。
  • maintenance wait-for-index-cache - 等待所有等待对索引缓存的写完成。
  • info main - 打印有关主符号的信息,以识别程序的入口点。
  • set tui mouse-events [on|off](默认值:on ),show tui mouse-events - 控制鼠标点击事件是否被发送到 TUI 和 Python 扩展( 当为 on时)或终端(当为 off 时)。

机器接口(MI)更改:

  • MI 版本 1 已被删除。
  • MI 现在在反向执行历史记录耗尽时报告 no-history
  • -break-insert 命令的输出中,threadtask 断点字段不再被报告两次。
  • 不再对不存在的线程 ID 创建特定于线程的断点。
  • -stack-list-arguments-stack-list-locals-stack-list-variables-var-list-children 命令中的 --simple-values 参数现在将引用类型视为 simple(如果目标是 simple)。
  • -break-insert 命令现在接受一个新的 -g thread-group-id 选项,来创建特定于 inferior 的断点。
  • 断点创建的通知和 -break-insert 命令的输出现在可以包括一个可选的用于主断点和每个断点位置的 inferior 字段。
  • 说明 breakpoint-hit 停止原因的异步记录现在包含一个可选字段 locno,在多位置断点时提供代码位置号。

GDB Python API 中的更改:

  • 事件

    • 一个新的 gdb.ThreadExitedEvent 事件。
    • 一个新的 gdb.executable_changed 事件注册表,它发出具有 progspacereload 属性的 ExecutableChangedEvent 对象。
    • 新的 gdb.events.new_progspacegdb.events.free_progspace 事件注册表,它发出 NewProgpspaceEventFreeProgspaceEvent 事件类型。这两个事件类型都有一个属性 progspace,来指定添加到 GDB 中,或从 GDB 删除的 gdb.Progspace 程序空间。
  • gdb.unwinder.Unwinder

    • name 属性现在是只读的。
    • __init__ 函数的 name 参数必须是 str 类型,否则会引发一个 TypeError
    • enabled 属性现在只接受 bool 类型。
  • gdb.PendingFrame

    • 新方法:name,is_valid,pc,language,find_sal,blockfunction,它们镜像 gdb.Frame 类的类似方法。
    • create_unwind_info 函数的 frame-id 参数现在可以是一个整数,也可以是 pcspspecial 属性的 gdb.Value 对象。
  • 一个新的 gdb.unwinder.FrameId 类,它可以传递给 gdb.PendingFrame.create_unwind_info 函数。
  • gdb.disassembler.DisassemblerResult 类不能再细分。
  • gdb.disassembler 模块现在包含样式支持。
  • 一个新的 gdb.execute_mi (COMMAND, [ARG]…​) 函数,它调用 GDB/MI 命令,并将结果返回为一个 Python 字典。
  • 一个新的 gdb.block_signals() 函数,它返回一个阻止 GDB 需要处理的任何信号的上下文管理器。
  • threading.Thread 类的一个新 gdb.Thread 子类,它在 start 方法中调用 gdb.block_signals 函数。
  • gdb.parse_and_eval 函数有一个新的 global_context 参数,来限制对全局符号的解析。
  • gdb.Inferior

    • 一个新 arguments 属性,其保留 inferior 的命令行参数(如果已知)。
    • 一个新的 main_name 属性,它包含 inferior 的 main 函数的名称(如果已知)。
    • 新的 clear_envset_envunset_env 方法,它们可在启动前修改 inferior 的环境。
  • gdb.Value

    • 一个分配对象值的新的 assign 方法。
    • 一个将类数组值转换为数组的新的 to_array 方法。
  • gdb.Progspace

    • 一个新的 objfile_for_address 方法,它返回涵盖给定地址的 gdb.Objfile 对象(如果存在)。
    • 一个新的 symbol_file 属性,保存对应于 Progspace.filename 变量的 gdb.Objfile 对象(或 None ,如果文件名为 None)。
    • 一个新的 executable_filename 属性,其保存具有由 exec-filefile 命令设置的文件名的字符串,如果没有设置可执行文件,则为 None
  • gdb.Breakpoint

    • 一个新的 inferior 属性,其包含特定于 inferior 的断点的 inferior ID(一个整数),或 None,如果没有设置这样的断点 。
  • gdb.Type

    • 新的 is_array_likeis_string_like 方法,其反映一个类型可以是类似数组或类似字符串,无论类型的实际类型代码是什么。
  • 一个新的 gdb.ValuePrinter 类,可用作应用 pretty-printer 的结果的基类。
  • 一个新实现的 gdb.LazyString.__str__ 方法。
  • gdb.Frame

    • 一个新的 static_link 方法,它返回嵌套的函数帧的外部帧。
    • 一个新的 gdb.Frame.language 方法,它返回帧语言的名称。
  • gdb.Command

    • GDB 现在重新格式化 gdb.Command 类的 doc 字符串和 gdb.Parameter 子类,以便在使用字符串作为 help 输出前从每行中删除不必要的前导空格。
  • gdb.Objfile

    • 一个新的 is_file 属性。
  • 一个新的 gdb.format_address (ADDRESS, PROGSPACE, ARCHITECTURE) 函数,其使用与从反汇编器中打印地址、符号和偏移信息时相同的格式。
  • 一个新的 gdb.current_language 函数,它返回当前语言的名称。
  • 一个用于包装 GDB 的反汇编器的新 Python API,包括 gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH), gdb.disassembler.Disassembler ,gdb.disassembler.DisassembleInfogdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)gdb.disassembler.DisassemblerResult
  • 一个新的 gdb.print_options 函数,它以 gdb.Value.format_string 函数接受的形式返回当前打印选项的字典。
  • gdb.Value.format_string 函数

    • 如果在 print 或其他类似的操作中被调用,GDB.Value.format_string 现在使用 print 命令提供的格式。
    • gdb.Value.format_string 现在接受 summary 关键字。
  • 一个新的 gdb.BreakpointLocation Python 类型。
  • gdb.register_window_type 方法现在限制一组可接受的窗口名称。

特定于架构的更改:

  • AMD 和 Intel 64 位构架

    • 添加了对使用 libopcodes 库的反汇编器样式的支持,该库现在被默认使用。您可以使用 set style disassembler * 命令修改反汇编器输出的样式。要使用 Python Pygments 样式,请使用新的 maintenance set libopcodes-styling 命令。
  • 64 位 ARM 架构

    • 添加了为内存标记(MTE)转储内存标签数据的支持。
    • 添加了对 Scalable Matrix Extension 1 和 2 (SME/SME2)的支持。有些功能仍被视为实验性的或 alpha,例如,ZA 状态的手动函数调用,或者根据 DWARF 跟踪 Scalable Vector Graphics(SVG)更改。
    • 添加了对线程本地存储(TLS)变量的支持。
    • 添加了对硬件观察点的支持。
  • 64 位 IBM Z 架构

    • 对 IBM Z 目标上新 arch14 指令的记录和重播的支持,但专用的函数辅助指令 NNPA 除外。
  • IBM Power Systems, Little Endian

    • 添加了对 POWER11 的基本启用支持。

Jira:RHELDOCS-18598[1], Jira:RHEL-36225, Jira:RHEL-36518

GCC Toolset 14: annobin rebase 到版本 12.70

在 GCC Toolset 14 中,annobin 已更新至版本 12.70,发布 RHBA-2024:8863 公告。测试二进制文件的 annobin 工具的更新集合提供了各种 bug 修复,引入了新测试,并更新了构建和使用 GCC 的较新版本、Clang、LLVM 和 Go 编译器的工具。通过增强的工具,您可以检测以非标准方式构建的程序中的新问题。

Jira:RHEL-30409[1]

GCC Toolset 13:GCC 支持 AMD Zen 5

随着 RHBA-2024:8829 公告的发布,GCC 的 GCC Toolset 13 版本增加了对 AMD Zen 5 处理器微架构的支持。要启用支持,请使用 -march=znver5 命令行选项。

Jira:RHEL-36524[1]

LLVM Toolset 更新至 18.1.8

LLVM 工具集已使用 RHBA-2024:8828 公告的发行版本 18.1.8 更新至版本 18.1.8。

重要的 LLVM 更新:

  • 以下指令的持续表达式变体已被删除: ,lshr,ashr,zext,sext,fptrunc,fpext,fptoui,fptosi,uitofp,sitofp.
  • 添加了 llvm.exp10 内部。
  • 添加了全局变量的 code_model 属性。
  • 改进了 AArch64, AMDGPU, PowerPC, RISC-V, SystemZ 和 x86 架构的后端。
  • LLVM 工具已被改进。

显著 Clang 的改进:

  • C++20 功能支持:

    • clang 不再执行一个定义规则(ODR)检查全局模块片段中的声明。要启用更严格的行为,请使用 the -Xclang -fno-skip-odr-check-in-gmf 选项。
  • C++23 功能支持:

    • 添加了一个新的诊断标记 -Wc++23-lambda-attributes,以警告使用 lambdas 的属性。
  • C++2c 功能支持:

    • clang 现在允许在同一范围内多次使用 _ 字符作为占位符变量名称。
    • 属性现在在属性参数中需要未评估的字符串,这些参数是字符串文字。
    • 弃用了 C++26 枚举的算术转换。
    • 改进了模板参数初始化的规格。
  • 有关更改的完整列表,请参阅 Clang 的上游发行注记

Clang 中的 ABI 更改:

  • 在 x86_64 的 SystemV ABI 之后,__int128 参数不会在注册和堆栈插槽之间分割。
  • 如需更多信息,请参阅 Clang 中的 ABI 更改列表

重要的后向不兼容的变化:

  • 模板运算符的反向参数顺序中的 bug 修复会破坏之前在 C++17 中接受的代码。
  • GCC_INSTALL_PREFIX CMake 变量(其设置 default -gcc-toolchain=)已被弃用,并将被删除。在配置文件中指定 --gcc-install-dir= or --gcc-triple= 选项。
  • 预编译标头(PCH)生成(-c -xc-header and -c -xc++-header)现在的默认扩展名称是 .pch 而不是 .gch
  • when -include a.h 探测 a.h.gch 文件,如果 include 不是 Clang PCH 文件或目录,则 include 现在会忽略 a.h.gch 文件或包含任何 Clang PCH 文件的目录。
  • 修复了导致 __has_cpp_attribute__has_c_attribute 返回错误值的错误。
  • 在添加反向 operator== 时查找匹配的 operator!= 的错误已被修复。
  • 功能模板的名称规定已更改为接受可以在其模板参数列表中超载函数或 requires-clauses。
  • 现在,在系统标头和宏上默认启用 -Wenum-constexpr-conversion 警告。在下一个 Clang 版本中,它将被转换为一个硬(非可升级)错误。
  • 名为 modules 的 C++20 导入模块的路径不再被硬编码。您必须从命令行指定所有依赖的模块。
  • 无法使用导入 <module> 来导入模块 ;Clang 使用显式构建的模块。
  • 如需了解更多详细信息,请参阅 可能破坏更改的列表

如需更多信息,请参阅 LLVM 发行注记Clang 发行注记

LVM Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-30907[1]

Rust Toolset rebase 到版本 1.79.0

Rust Toolset 已更新至版本 1.79.0,并发布 RHBA-2024:8827 公告。从以前可用的 1.75.0 版本开始,显著的改进包括:

  • 新的 offset_of!
  • 支持 C 字符串字面值
  • 支持内联 const 表达式
  • 支持相关类型位置中的绑定
  • 改进了自动临时生命周期扩展
  • 调试 unsafe 前提条件的断言

Rust Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-30073[1]

Go Toolset rebase 到版本 1.22

Go Toolset 已更新至 1.22 版本,并发布 RHSA-2024:8876 公告。

主要改进包括:

  • for 循环中的变量现在为每个迭代创建,防止意外共享错误。另外,对于循环,现在可以对整数进行范围。
  • 工作区中的命令现在可以使用工作区依赖项的 vendor 目录。
  • go get 命令不再支持旧的 GOPATH 模式。此更改不会影响 go buildgo test 命令。
  • vet 工具已更新,以匹配 for 循环的新行为。
  • 通过为每个堆对象保留基于类型的垃圾回收元数据,提高了 CPU 性能。
  • Go 现在提供改进的简化优化和更好的配置集指导优化支持,从而获得更高的性能。
  • 新的 math/rand/v2 软件包可用。
  • Go 现在提供增强的 HTTP 路由模式,支持方法和通配符。

如需更多信息,请参阅 Go 上游发行注记。

Go Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-46972[1]

elfutils rebase 到版本 0.190

elfutils 软件包已更新至版本 0.190。主要改进包括:

  • libelf 库现在支持相对重定位(RELR)。
  • libdw 库现在识别 .debug_[ct]u_index 部分。
  • eu-readelf 工具现在支持一个新的 -Ds,--use-dynamic --symbol 选项,来通过动态片段,而不是使用 ELF 部分显示符号。
  • eu-readelf 工具现在可以显示 .gdb_index 版本 9。
  • 新的 eu-scrlines 工具编译与指定的 DWARF 或 ELF 文件关联的源文件的列表。
  • debuginfod 服务器模式已对文件名表示中的 60% 的压缩进行了更改(这需要重新索引)。

Jira:RHEL-15924

valgrind 更新至 3.22

valgrind 软件包已更新至版本 3.22。主要改进包括:

  • valgrind memcheck 现在检查提供给 C 函数 memalignposix_memalignaligned_alloc 的值,以及与 new 运算符对齐的 C++17 是否为有效的对齐值。
  • valgrind memcheck 现在支持对 C++14 大小的 和 C++17 对齐的 newdelete 运算符的不匹配检测。
  • 添加了对 DWARF 调试信息的延迟读取的支持,从而在安装了 debuginfo 软件包时加快启动速度。

Jira:RHEL-15926

移动了 Clang 资源目录

Clang 存储其内部标头和库的 Clang 资源目录,已从 /usr/lib64/clang/17 移到 /usr/lib/clang/17

Jira:RHEL-9299

新的 grafana-selinux 软件包

在以前的版本中,grafana-server 的默认安装作为 unconfined_service_t SELinux 类型运行。这个更新添加了新的 grafana-selinux 软件包,其包含 grafana-server 的 SELinux 策略,并且默认使用 grafana-server 安装了。因此,grafana-server 现在作为 grafana_t SELinux 类型运行。

Jira:RHEL-7503

更新了 GCC Toolset 13

GCC Toolset 13 是一个编译器工具集,其提供开发工具的最新版本。它以 AppStream 存储库中的 Software Collection 的形式作为 Application Stream 提供。

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

  • GCC 编译器已更新至版本 13.2.1,它提供了上游 GCC 中可用的很多 bug 修复和增强。
  • binutils 现在通过 -march=znver5 编译器切换支持基于 znver5 核的 AMD CPU。
  • annobin 已更新至版本 12.32。
  • GCC 的 annobin 插件现在对存储在目标文件的注释默认使用更压缩的格式,使目标文件更小,链接时间更快,特别是在大型复杂的程序中。

GCC Toolset 13 提供了以下工具和版本:

工具版本

GCC

13.2.1

GDB

12.1

binutils

2.40

dwz

0.14

annobin

12.32

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

# yum install gcc-toolset-13

要运行 GCC Toolset 13 中的工具:

$ scl enable gcc-toolset-13 tool

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

$ scl enable gcc-toolset-13 bash

如需更多信息,请参阅 GCC Toolset 13使用 GCC Toolset

Jira:RHEL-25405[1]

LLVM Toolset rebase 到版本 17.0.6

LLVM Toolset 已更新至版本 17.0.6。

主要改进包括:

  • 不透明指针迁移现已完成。
  • 在中端优化中删除了对传统通行管理器的支持。

Clang 更改:

  • C++20 协程不再被视为实验性的。
  • 改进了 std::move 函数的代码生成,以及未优化构建中类似的代码生成。

如需更多信息,请参阅 LLVMClang 上游发行注记。

Jira:RHEL-9028

Rust Toolset rebase 到版本 1.75.0

Rust Toolset 已更新至版本 1.75.0。

主要改进包括:

  • 恒定的评估时间现在是无限制的
  • 清理程序 panic 消息
  • 货物注册认证
  • async fn 和特征中的不透明返回类型

Jira:RHEL-12964

Go Toolset rebase 到版本 1.21.0

Go Toolset 已更新至版本 1.21.0。

主要改进包括:

  • 已添加了 minmaxclear 内置。
  • 已添加了对配置文件指导的优化的官方支持。
  • 现在,更精确地定义了软件包初始化顺序。
  • 改进了类型延迟。
  • 改进了向后兼容性支持。

如需更多信息,请参阅 Go 上游发行注记。

Jira:RHEL-11872[1]

papi 支持新的处理器微架构

有了此增强,您可以使用以下处理器微架构上存在的 papi 事件访问性能监控硬件:

  • AMD Zen 4
  • 第四代 Intel® Xeon® 可扩展处理器

Jira:RHEL-9336[1], Jira:RHEL-9320, Jira:RHEL-9337

ant rebase 到版本 1.10.9

ant:1.10 模块流已更新至版本 1.10.9。此版本使用提供方类和提供方参数提供对代码签名的支持。

注意

更新的 ant:1.10 模块流仅提供 antant-lib 软件包。与 Ant 相关的剩余软件包在不支持的 CodeReady Linux Builder (CRB)存储库中的 javapackages-tools 模块中分发,且没有被更新。

更新的 ant:1.10 模块流中的软件包无法与 javapackages-tools 模块中的软件包并行使用。如果要使用与 Ant 相关的软件包的完整集合,您必须卸载 ant:1.10 模块,并禁用它,启用 CRB 存储库,并安装 javapackages-tools 模块。

Jira:RHEL-5365

新软件包:maven-openjdk21

maven:3.8 模块流现在包含 maven-openjdk21 子软件包,它为 OpenJDK 21 提供了 Maven JDK 绑定,并配置了 Maven ,以使用系统 OpenJDK 21。

Jira:RHEL-17126[1]

cmake rebase 到版本 3.26

cmake 软件包已更新至版本 3.26。主要改进包括:

  • 添加了对 C17 和 C18 语言标准的支持。
  • cmake 现在可以查询操作系统识别信息的 /etc/os-release 文件。
  • 添加了对 CUDA 20 和 nvtx3 库的支持。
  • 添加了对 Python 稳定的应用程序二进制接口的支持。
  • 在 Simplified Wrapper 和 Interface Generator (SWIG)工具中添加了对 Perl 5 的支持。

Jira:RHEL-7396

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.