搜索

16.5. 编译器和开发工具中的兼容性破坏变化

download PDF

librtkaio 已删除

有了这个更新,librtkaio 库已删除。这个库提供了对一些文件的高性能实时异步 I/O 访问,这是基于 Linux 内核异步 I/O 支持(KAIO)的。

删除后的结果:

  • 使用 LD_PRELOAD 方法加载 librtkaio 的应用程序会显示缺少库的警告信息,改为加载 librt 库并正确运行。
  • 使用 LD_LIBRARY_PATH 方法加载 librtkaio 的应用程序改为加载 librt 库,并正确运行,而没有任何警告。
  • 使用 dlopen() 系统调用来访问 librtkaio 的应用程序直接载入 librt 库。

librtkaio 用户有以下选项:

  • 使用上述回退机制,无需对其应用程序进行任何更改。
  • 更改应用程序的代码以使用 librt 库,该库提供了兼容符合 POSIX 的 API。
  • 更改应用程序的代码以使用 libaio 库,该库提供了一个兼容的 API。

librtlibaio 都可以在特定条件下提供可比较的功能和性能。

请注意,libaio 软件包具有红帽兼容性级别 2,而 librtk 和移除的 librtkaio 有级别 1。

如需了解更多详细信息,请参阅 https://fedoraproject.org/wiki/Changes/GLIBC223_librtkaio_removal

glibc 中删除了 Sun RPC 和 NIS 接口

glibc 库不再为新应用程序提供 Sun RPC 和 NIS 接口。这些接口现在仅为运行传统应用程序提供。开发人员必须更改其应用程序以使用 libtirpc 库而不是 Sun RPC ,以及 libnsl2 而不是 NIS。应用程序可以从替换库中的 IPv6 支持中受益。

32 位 Xen 的 nosegneg 库已删除

在以前的版本中,glibc i686 软件包包含一个替代的 glibc 构建,这可避免使用带有负偏移(nosegneg)的线程描述符段寄存器。这个替代构建仅用于没有硬件虚拟化支持的 Xen 项目 hypervisor 的 32 位版本,作为优化来降低完全半虚拟化的成本。这些替代构建不再使用,它们已被删除。

make 的新操作 != 会与特定的现存 makefile 语法有不同的解释

!= shell 赋值操作符已添加到 GNU make 中,来作为 $(shell …​) 函数的替代,以提高与 BSD makefiles 的兼容性。因此,名称以感叹号结尾、后面紧跟赋值的变量(如 variable!=value )现在被解释为 shell 赋值。要恢复之前的行为,请在声明标记后添加一个空格,比如 variable! =value

有关运算符和函数之间的更多详情和区别,请参阅 GNU make 手册。

MPI 调试支持的 Valgrind 库已删除

valgrind-openmpi 软件包提供的 Valgrindlibmpiwrap.so 包装库已删除。这个库启用了 Valgrind ,来调试使用消息传递接口(MPI)的程序。这个库特定于之前版本的 Red Hat Enterprise Linux 中的 Open MPI 实现版本。

我们鼓励 libmpiwrap.so 的用户从特定于其 MPI 实现和版本的上游源构建自己的版本。使用 LD_PRELOAD 技术向 Valgrind 提供这些自定义构建库。

valgrind-devel 中删除了开发标头和静态库

在以前的版本中,valgrind-devel 子软件包用于包含用于开发自定义 valgrind 工具的开发文件。这个更新删除了这些文件,因为它们没有受到保证的 API,必须静态链接,且不受支持。valgrind-devel 软件包仍然包含 valgrind-and 程序的开发文件和头文件,如 valgrind.hcallgrind.hdrd.hhelgrind.h、和 memcheck.h),它们稳定且受到良好的支持。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.