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
软件包提供的 Valgrind 的 libmpiwrap.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.h
和 memcheck.h
为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。