12.1 发行注记
Red Hat Developer Toolset 12
Red Hat Developer Toolset 12.1 发行注记
摘要
Red Hat Developer Toolset 是 Red Hat Software Collections 提供的 Software Collection。它适用于使用 Red Hat Enterprise Linux 平台的开发人员。使用名为 Software Collections 的框架,将一组额外的工具安装到
/opt/ 目录中,如 UNIX 文件系统层次结构标准所推荐的。这些工具由用户使用提供的 scl 工具根据需要启用。Red Hat Developer Toolset 12.1 提供 GNU Compiler Collection、GNU Debugger 和其他开发、调试和性能监控工具的当前版本。这些方法不会替换这些工具的 Red Hat Enterprise Linux 系统版本,除非使用 scl 工具明确调用,否则也不会将其优先于这些系统版本。
本发行注记包含 Red Hat Developer Toolset 12.1 发布时的重要信息。此处将讨论已知问题、资源和其他问题。在开始使用 Red Hat Developer Toolset 12.1 之前,请阅读本文档。
有关 Red Hat Software Collections 其他组件的详情,请查看 Red Hat Software Collections 发行注记。有关各个组件支持长度的详情,请参阅 Red Hat Software Collections 产品生命周期 文档。
使开源包含更多 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 信息。
第 1 章 系统要求 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
1.1. 安装前提条件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Red Hat Developer Toolset 12.1 包含 Red Hat Enterprise Linux 7 的软件包并支持以下构架:
- AMD64 和 Intel 64
- IBM POWER,big endian
- IBM POWER, little endian
- 64-bit IBM Z
AMD64 和 Intel 64 构架还支持对 32 位二进制文件的生成和操作。
注意
在 Red Hat Enterprise Linux 8 和 Red Hat Enterprise Linux 9 中,提供了 GCC Toolset,它提供了类似于 Red Hat Developer Toolset 的工具。详情请参阅 在 RHEL 8 中使用 GCC Toolset 和 在 RHEL 9 中使用 GCC Toolset。
在安装 Red Hat Developer Toolset 12.1 之前,建议应用所有可用的 Red Hat Enterprise Linux 勘误更新。这将启用所有 Red Hat Developer Toolset 功能,并应用可能会影响工具或构建代码的修复。
Red Hat Developer Toolset 12.1 需要系统订阅
Optional 软件仓库,才能访问 Red Hat Developer Toolset 工具链所需的所有依赖软件包。Optional 存储库中的软件包列在 Red Hat Software Collections 3.8 发行注记中。
如果使用 Red Hat Subscription Manager,您可以通过导航到 → → 来添加这些软件仓库。
然后,为您的系统启用
Optional 软件仓库。如需更多信息,请参阅 https://access.redhat.com/solutions/392003。
Red Hat Satellite 用户可以通过 中的说明启用
Optional 软件仓库 https://access.redhat.com/solutions/70019。
注意
Beta 内容以 ISO 格式不可用。
1.2. 安装和升级 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用 Red Hat Developer Toolset 12.1 需要删除任何早期预发布版本,包括 Beta 版本。如果您安装了任何以前的 Red Hat Developer Toolset 版本,请从您的系统中卸载它,如 Red Hat Developer Toolset 用户指南中的卸载 Red Hat Developer Toolset 部分所述。
请注意,支持与 Red Hat Developer Toolset 11.x 并行安装 Red Hat Developer Toolset 12.x。
有关安装 Red Hat Developer Toolset 12.1 的详细信息,请参阅 Red Hat Developer Toolset 用户指南中的安装 Red Hat Developer Toolset 章节。
Red Hat Developer Toolset 不支持从 Red Hat Enterprise Linux 6 原位升级到 Red Hat Enterprise Linux 7。因此,升级后安装的组件可能无法正常工作。如果要从 Red Hat Enterprise Linux 6 升级到 Red Hat Enterprise Linux 7,强烈建议删除所有 Red Hat Developer Toolset 软件包,执行原位升级,更新 Red Hat Developer Toolset 软件仓库,并再次安装 Red Hat Developer Toolset 软件包。建议您在升级前备份所有数据。
第 2 章 Red Hat Developer Toolset 12.1 发行版本 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
2.1. 功能 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
2.1.1. 组件列表 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Red Hat Developer Toolset 12.1 提供以下组件:
开发工具
- GNU Compiler Collection (GCC)
- binutils
- elfutils
- dwz
- make
- annobin
调试工具
- GNU 调试器(GDB)
- strace
- ltrace
- memstomp
性能监控工具
- SystemTap
- Valgrind
- oProfile
- Dyninst
2.1.2. Red Hat Developer Toolset 12.1 中的更改 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Red Hat Developer Toolset 12.1 中的所有组件都使用
devtoolset-12- 前缀发布,仅适用于 Red Hat Enterprise Linux 7。
与之前的 Red Hat Developer Toolset 版本相比,Red Hat Developer Toolset 12.1 中已升级以下组件:
- GCC 到版本 12.2.1
- annobin 到版本 11.08
此外,还可为 binutils 提供安全更新。
有关 Red Hat Developer Toolset 12.1 中更改的详细信息,请参阅 Red Hat Developer Toolset 用户指南。
2.1.3. 容器镜像 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
以下容器镜像已使用 Red Hat Developer Toolset 更新:
- rhscl/devtoolset-12-perftools-rhel7
- rhscl/devtoolset-12-toolchain-rhel7
如需更多信息,请参阅使用 Red Hat Software Collections 容器镜像 中的 Red Hat Developer Toolset 镜像 一章。
请注意,只支持每个容器镜像的最新版本。
2.2. 已知问题 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
dyninstcomponent, BZ#1763157- Dyninst 12 仅为 AMD64 和 Intel 64 架构提供。
gcccomponent, BZ#1731555- 使用 Red Hat Developer Toolset 创建的可执行文件以非标准方式动态链接。因此,即使请求此功能,Fortran 代码无法异步处理输入/输出(I/O)操作。要临时解决这个问题,使用
-static-选项静态链接 libgfortran 库,以便在 Fortran 代码中启用异步 I/O 操作。请注意,红帽不建议出于安全原因静态链接。libgfortran GCC组件, BZ39)1570853- 在 Red Hat Developer Toolset 中,库通过 linker 脚本链接,这些脚本可通过静态归档指定一些符号。这是为了确保与多个 Red Hat Enterprise Linux 版本兼容所必需的。但是,链接器脚本使用对应的共享对象文件的名称。因此,链接器使用不同于预期的符号处理规则,在指定对象文件的选项前无法识别对象文件所需的符号,例如:
gcc -lsomelib objfile.o
gcc -lsomelib objfile.oCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Red Hat Developer Toolset 中的库会导致 linker 错误消息undefined reference to symbol。要启用成功符号解析和链接,请按照标准链接实践操作,并在指定对象文件的选项后指定添加库的选项:gcc objfile.o -lsomelib
gcc objfile.o -lsomelibCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个建议也适用于将 GCC 版本用作 Red Hat Enterprise Linux 的一部分。 GCC组件, BZ39)1433946- Red Hat Developer Toolset 3.x 中的 GCC 包含 libasan 软件包,该软件包可能与系统版本 libasan 冲突。因此,根据系统中存在 libasan 的 libasan,
-fsanitize=address工具只与系统 GCC 或 GCC 的 Red Hat Developer Toolset 版本一起工作,但不能同时使用。要防止上述冲突,在 Red Hat Developer Toolset 4.x 及更新的版本中,软件包被重命名为 libasanN,其中 N 是一个数字。但是,如果启用了 Red Hat Software Collections 存储库,则在系统更新后可能会出现问题,因为 libasan 的系统版本比 Red Hat Developer Toolset 3.x 版本不同(仍可在存储库中可用)。要临时解决这个问题,在更新时排除这个软件包:yum update --exclude=libasan
~]$ yum update --exclude=libasanCopy to Clipboard Copied! Toggle word wrap Toggle overflow OProfile组件- Red Hat Developer Toolset 提供的 OProfile 1.3.0 和 OProfile 1.2.0 适用于所有支持的构架,但 IBM Z 除外,其中只有 ocount 工具可用于以下模型: z196、zEC12 和 z13。operf 和其他工具(如 oparchive 或 opannotate )无法在 IBM Z 上工作。为了进行性能分析,用户建议使用 Red Hat Enterprise Linux 7 系统 OProfile 0.9.9 版本,它支持
TIMER软件中断的 opcontrol。请注意,要正确报告 OProfile 0.9.9 收集的数据,需要相应的 opreport 工具。因此,基于 opcontrol的性能分析应该被禁用 Red Hat Developer Toolset,因为来自 Red Hat Developer Toolset 的报告工具无法正确处理在 opcontrol 模式下收集的数据。 -
Valgrind组件, BZ945869184 - 默认的 Valgrind gdbserver 支持(
--vgdb=yes)可能会导致某些寄存器和标志值因为 Valgrind 内核所完成的优化而始终处于最新状态。因此 GDB 工具无法显示 Valgrind 下运行的程序的某些参数或变量。要临时解决这个问题,请使用--vgdb=full参数。请注意,当使用此参数时,程序在 Valgrind 下可能会运行较慢。 - 多个组件
- devtoolset-version-package_name-debuginfo 软件包可以与基本 Red Hat Enterprise Linux 系统或者其他版本的 Red Hat Developer Toolset 中的相应软件包冲突。这个名称适用于 devtoolset-version-gcc-debuginfo,devtoolset-version-ltrace-debuginfo,devtoolset-version-valgrind-debuginfo,可能也适用于其他 debuginfo 软件包。在多 lib 环境中也可以发生类似的冲突,其中 64 位 debuginfo 软件包与 32 位 debuginfo 软件包冲突。例如,在 Red Hat Enterprise Linux 7 中,devtoolset-7-gcc-debuginfo 与三个软件包冲突: gcc-base-debuginfo、gcc-debuginfo 和 gcc-libraries-debuginfo。在 Red Hat Enterprise Linux 6 上,devtoolset-7-gcc-debuginfo 与一个软件包冲突: gcc-libraries-debuginfo。因此,如果安装了冲突的 debuginfo 软件包,请尝试安装 Red Hat Developer Toolset 可能会失败,并显示类似以下示例的事务检查错误消息:
file /usr/lib/debug/usr/lib64/libitm.so.1.0.0.debug from install of gcc-base-debuginfo-4.8.5-16.el7.x86_64 conflicts with file from package devtoolset-7-gcc-debuginfo-7.2.1-1.el7.x86_64
file /usr/lib/debug/usr/lib64/libitm.so.1.0.0.debug from install of gcc-base-debuginfo-4.8.5-16.el7.x86_64 conflicts with file from package devtoolset-7-gcc-debuginfo-7.2.1-1.el7.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow file /usr/lib/debug/usr/lib64/libtsan.so.0.0.0.debug from install of gcc-debuginfo-4.8.5-16.el7.x86_64 conflicts with file from package devtoolset-7-gcc-debuginfo-7.2.1-1.el7.x86_64
file /usr/lib/debug/usr/lib64/libtsan.so.0.0.0.debug from install of gcc-debuginfo-4.8.5-16.el7.x86_64 conflicts with file from package devtoolset-7-gcc-debuginfo-7.2.1-1.el7.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow file /usr/lib/debug/usr/lib64/libitm.so.1.0.0.debug from install of devtoolset-7-gcc-debuginfo-7.2.1-1.el6.x86_64 conflicts with file from package gcc-libraries-debuginfo-7.1.1-2.3.1.el6_9.x86_64
file /usr/lib/debug/usr/lib64/libitm.so.1.0.0.debug from install of devtoolset-7-gcc-debuginfo-7.2.1-1.el6.x86_64 conflicts with file from package gcc-libraries-debuginfo-7.1.1-2.3.1.el6_9.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要临时解决这个问题,请在安装 Red Hat Developer Toolset 12.1 前手动卸载冲突 debuginfo 软件包。建议仅在需要时安装相关的 debuginfo 软件包,并期望出现这些问题。
其他备注
- Red Hat Developer Toolset 主要旨在为在多个 Red Hat Enterprise Linux 版本上部署的用户应用程序提供编译器。操作系统组件、内核模块和设备驱动程序通常与 Red Hat Enterprise Linux 的特定版本对应,建议使用提供的基础操作系统编译器。
- Red Hat Developer Toolset 12.1 仅支持 C、C++ 和 Fortran 开发。对于其他语言,调用 Red Hat Enterprise Linux 上可用的 GCC 系统版本。
- 在 Red Hat Enterprise Linux (例如 Red Hat Enterprise Linux 7)上使用 Red Hat Developer Toolset 12.1 构建应用程序,然后在较早的次版本(如 Red Hat Enterprise Linux 6.7.z)上执行该应用程序可能会导致运行时错误,因为 Red Hat Enterprise Linux 版本间的非链组件的不同。建议用户仔细检查兼容性。红帽只支持在相同或之后支持的 Red Hat Enterprise Linux 版本与用于构建该应用程序的版本相比,才执行使用 Red Hat Developer Toolset 构建的应用程序。
- 在没有安装 Red Hat Developer Toolset 的 GCC 的情况下重建 Valgrind,否则它将优先于 Red Hat Enterprise Linux 系统 GCC。红帽提供的二进制文件使用系统 GCC 构建。对于任何测试,应使用 Red Hat Developer Toolset 的 GDB。https://bugzilla.redhat.com/show_bug.cgi?id=990931
- Red Hat Developer Toolset 12.1 中的非共享库
libstdc++_nonshared.a中的所有代码都根据 GNU General Public License v3 的许可,在第 7 节中授权,如 GCC Runtime Library Exception 版本 3.1 所述。 - Red Hat Developer Toolset 中包含的编译器会发出比 Red Hat Enterprise Linux 上之前提供的编译器更新的 DWARF 调试记录。这些新的调试记录以各种方法改进调试体验,特别是用于 C++ 和优化的代码。但是,某些工具还无法处理较新的 DWARF 调试记录。 要生成旧的风格的调试记录,请使用
-gdwarf-2 -gstrict-dwarf或-gdwarf-3 -gstrict-dwarf选项。 - 有些较新的库功能被静态链接到使用 Red Hat Developer Toolset 构建的应用程序,以支持在多个 Red Hat Enterprise Linux 版本上执行。这增加了少量额外的安全风险,因为常规的 Red Hat Enterprise Linux 勘误不会更改这个代码。如果开发人员需要因为此类问题而重建其应用程序,红帽会在安全勘误中给出此问题。强烈建议开发人员静态地将整个应用程序链接在一起。
- 请注意,在使用
-fgnu-tm选项时,与缺少 libitm 库相关的错误消息需要安装 libitm 软件包。您可以使用以下命令安装软件包:yum install libitm
yum install libitmCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 要将 ccache 工具与 Red Hat Developer Toolset 中包含的 GCC 搭配使用,请正确设置您的环境。例如:
scl enable devtoolset-12 '/usr/lib64/ccache/gcc -c foo.c'
~]$ scl enable devtoolset-12 '/usr/lib64/ccache/gcc -c foo.c'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以使用 GCC 的 Red Hat Developer Toolset 版本创建一个 shell 作为默认编译器:scl enable devtoolset-12 'bash'
~]$ scl enable devtoolset-12 'bash'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 shell 后,运行以下命令:export PATH=/usr/lib64/ccache${PATH:+:${PATH}}~]$ export PATH=/usr/lib64/ccache${PATH:+:${PATH}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow gcc -c foo.c
~]$ gcc -c foo.cCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 因为 Red Hat Developer Toolset 12.1 中包含的 elfutils 库静态链接到客户端应用程序,因此建议在将句柄传递给
、libelf和libdw数据结构时谨慎。libasm当外部库动态链接为 elfutils 的系统版本时,特别是要小心的,它会被传递一个指针到来自 Red Hat Developer Toolset 12.1 版本 elfutils 的结构(反之亦然)。通常,Red Hat Developer Toolset 12.1 版本中使用的数据结构与 Red Hat Enterprise Linux 系统版本不兼容,另一版本不应该受到其他结构。在使用 Red Hat Developer Toolset 12.1 库的应用程序中,链接到库系统版本的所有代码都应重新编译到 Red Hat Developer Toolset 12.1 中包含的库。 - elfutils
EBL库被libdw内部使用,没有动态打开后端。相反,在库本身中编译了一个后端: 32 位 AMD 和 Intel 架构、AMD64 和 Intel 64 系统、Intel Ice、IBM Z、32 位 IBM Power Systems、64 位 IBM Power Systems、IBM POWER、big endian 和 64 位 ARM 架构。如果客户端希望使用上述架构中的 ELF 文件,则一些功能可能不可用。 - 由 scl 工具管理的一些软件包包括需要 sudo 的特权服务。系统 sudo 清除环境变量,因此 Red Hat Developer Toolset 包含自己的 sudo shell 脚本,嵌套 scl enable。此脚本目前不会解析或传递正常的 sudo 选项,只解析或传递 sudo COMMAND ARGS ...。要使用启用了 Red Hat Developer Toolset 的 shell 中的 sudo 系统版本,请使用
/usr/bin/sudo二进制文件。 - Intel 发布了勘误 HSW136 涉及 TSX (事务同步扩展)说明。在某些情况下,使用 Intel TSX 指令的软件可能会导致无法预计的行为。在特定情况下,FcoreX 指令可由使用 Red Hat Developer Toolset GCC 构建的应用程序执行。这包括在启用了 TSX 指令的硬件上执行 GCC 的实验性内存支持(使用
-fgnu-tm选项)。目前,在试验交易内存时,建议 Red Hat Developer Toolset 用户谨慎,或者通过应用适当的硬件或固件更新来禁用 TSX 指令。 - 要在 GCC 中使用内存保护扩展(MPX)功能,需要
libmpx库的 Red Hat Developer Toolset 版本,否则应用程序可能无法正确链接。 - 两个 binutils 链接器(
金级和授权)有不同的处理隐藏符号的方法,这会导致其行为不兼容。在以前的版本中,与共享库和隐藏符号相关的金级和ld链接器的行为不一致。有两种场景:- 如果共享库引用了在隐藏和非隐藏版本中存在的符号,则
金级链接器会生成有关隐藏版本的 bogus 警告信息。 - 如果共享库引用了仅作为隐藏符号在其他位置存在的符号,则
金级链接器会创建一个可执行文件,即使它无法工作。
金级链接器已更新,不再发出有关非隐藏版本中也存在的隐藏符号的警告消息。第二个场景无法在链接器中解决。规定需要确保应用程序运行时有非隐藏的符号版本。因此,两个链接器的行为更为接近,但它们在对一个非隐藏版本中无法发现的隐藏符号的引用时,它们仍然有所不同。不幸的是,在这种情况下没有单一正确的行为,因此允许链接器不同。 - valgrind-openmpi 子软件包不再由 Red Hat Developer Toolset 中的 Valgrind 提供。devtoolset-<version>-valgrind-openmpi 子软件包以前会导致与各种 Red Hat Enterprise Linux 次版本不兼容的问题以及重建的问题。如果需要针对针对针对 openmpi-devel 库构建的程序运行 Valgrind 和 valgrind -openmpi 软件包,则建议使用最新的 Red Hat Enterprise Linux 系统版本 valgrind 和 valgrind-openmpi 软件包。
第 3 章 其它资源 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
有关 Red Hat Developer Toolset 12.1 和 Red Hat Enterprise Linux 的更多信息,请参阅以下列出的资源。
3.1. 红帽产品文档 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
位于 https://access.redhat.com/products 的红帽产品 和文档门户充当所有产品文档的中央来源。
以下是一个与本书直接或间接相关的简要的文档列表:
- Red Hat Developer Toolset 12 用户指南 - Red Hat Developer Toolset 的 用户指南 包含有关安装和使用此内容的更多信息。
- Red Hat Software Collections Packaging Guide - Red Hat Software Collections 的打包指南解释了 Software Collections 的概念,记录了 scl 工具,并提供了有关如何创建自定义 Software Collection 或扩展现有软件集合的详细信息。
- Red Hat Software Collections 3.8 发行注记 - Red Hat Software Collections 发行注记记录了已知问题、可能的问题以及在内容集发布时提供的其他重要信息。它们还包含关于安装、重建、迁移等的有用信息。
- 使用 Red Hat Software Collections 容器镜像 - 本书提供了有关如何根据 Red Hat Software Collections 使用容器镜像的信息。可用的容器镜像包括应用程序、守护进程、数据库以及 Red Hat Developer Toolset 容器镜像。镜像可以在 Red Hat Enterprise Linux 7 服务器和 Red Hat Enterprise Linux Atomic Host 上运行。
- Red Hat Enterprise Linux 7 开发人员指南 - Red Hat Enterprise Linux 7 的 开发人员指南 介绍了 Red Hat Enterprise Linux 7 中的应用程序开发工具。
- Red Hat Developer Tools 文档 - Red Hat Developer Tools 提供了 Eclipse 集成的开发环境和以下编译器工具集:Clang 和 LLVM Toolset、LWOS Toolset 和 Go Toolset。
3.2. Red Hat Developers 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
- 红帽开发人员计划 - 红帽开发人员社区 门户。
- Red Hat Developers 上的 Red Hat Developer Toolset 概述 - Red Hat Developers Portal 提供了一些教程,供您开始使用不同的开发技术开发代码。这包括 Node.js、Perl、PHP、Python 和 Ruby Software Collections。
- Red Hat Developer Blog - Red Hat Developer Blog 包含最新的信息、最佳实践、建议、产品和程序公告,以及针对基于红帽技术设计和开发应用程序的示例代码和其他资源的指针。
附录 A. 修订历史记录 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
| 修订历史 | |||
|---|---|---|---|
| 修订 12.1-0 | Tue May 23 2023 | ||
| |||
法律通告 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
Copyright © 2023 Red Hat, Inc.
本文档由红帽根据 Creati ve Commons Attribution-ShareAlike 3.0 Unported License 许可。如果您发布本文档或修改的版本,则必须向 Red Hat, Inc. 提供相关内容,并提供到原始链接。如果修改了文档,则必须删除所有红帽商标。
作为本文档的许可者,红帽可能会放弃强制制执行 CC-BY-SA 第4d 条款,且不声明该条款在适用条款允许的最大限度内有效。
Red Hat、Red Hat Enterprise Linux、SVVP 徽标、红帽徽标、JBoss、OpenShift、Fedora、Infinity 商标,Red Hat, Inc. 在美国和其他国家的注册商标。
Linux® 是 Linus Torvalds 在美国和其它国家的注册商标。
Java® 是 Oracle 和/或其关系的注册商标。
XFS® 是 Silicon Graphics International Corp. 或其子公司在美国和/或其他国家的商标。
MySQL® 是 MySQL AB 在美国、美国和其他国家的注册商标。
Node.js® 是 Joyent 的官方商标。红帽与官方 Joyent Node.js 开源社区或商业项目没有正式关联。
OpenStack® Word Mark 和 OpenStack 徽标是 OpenStack Foundation 在美国及其他国家的注册商标/服务标记或商标/服务标记,可根据 OpenStack Foundation 授权使用。我们不附属于 OpenStack Foundation 或 OpenStack 社区。
所有其他商标均由其各自所有者所有。