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

librtkaio 删除

在这个版本中, librtkaio 程序库已被删除。这个程序库为 一 些文件提供高性能实时 I/O 访问,这些文件基于 Linux 内核 Asynchronous I/O 支持(KAIO)。

删除结果:

  • 使用 LD_PRELOAD 方法载入 librtkaio 的应用程序会显示一个有关缺失库的警告信息,加载 librt 程序库并正确运行。
  • 使用 LD_LIBRARY_PATH 方法的应用程序加载 librtkaio 会加载librt库并可以正常运行,且不会有任何警告。
  • 使用 dlopen() 系统调用来访问 librtkaio 的应用程序直接载入 librt 库。

librtkaio 用户有以下选项:

  • 使用上面描述的回退机制,不对其应用程序进行任何修改。
  • 更改应用程序代码以使用 librt 库,该库可提供兼容 POSIX 的 API。
  • 更改应用程序代码以使用 libaio库,该库可提供兼容 API。

Librt 和 libaio 在特定情况下都 可以 提供不同的特征和性能。

请注意: libaio 软件包的 Red Hat 兼容性等级为 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 项目管理程序的 32 位版本,这样可降低全虚拟化的成本。这些替代构建已不再使用且已被删除。

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

已将 != shell 分配运算符添加到 GNU make,作为 $(shell …))的替代以提高与 BSD 制作文件的兼容性的功能。作为结果,名称以实例化标记结尾,后接分配(如 variable!=value )的变量现在被解释为 shell 分配。要恢复之前的行为,请在声明标记后添加一个空格,比如 variable! =value

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

用于 MPI 调试支持的 Valgrind 库已删除

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

用户libmpiwrap.so 需要从针对于 MPI 实现和版本的上游资源中构建自己的版本。使用 LD_PRELOAD 技术为 Valgrind提供这些定制构建的库。

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

在以前的版本中,使用 valgrind-devel 子软件包来包括开发定制 valgrind 工具的开发文件。此更新删除了这些文件,因为它们没有保证的 API,必须静态链接且不被支持。valgrind-devel 软件包仍包含支持 valgrind 的程序的开发文件以及稳定并被支持的头文件,如valgrind.h, callgrind.h, drd.h, helgrind.hmemcheck.h


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。