快捷搜索:

发行版迁移及二进制兼容性注意事项

级别: 低级

John Engel

Linux 技巧顾问, IBM

2005 年 3 月 24 日

2005 年 7 月 更新

懂得二进制兼容性,由于它关系到运行在 POWER™ 上 Linux® 中的不合操作情况。钻研 IBM® 支持的两个 Linux on POWER 发行版本,Red Hat Enterprise Linux(RHEL)和 SUSE LINUX Enterprise Server(SLES),留意各版本之间的二进制兼容性。平日,可以从基于 2.4 内核的 RHEL3 向基于 2.6 内核的 RHEL4 进行顺利迁移,由于这两个版本之间掩护了稳定的利用法度榜样二进制接口(Application Binary Interface,ABI),并将 RHEL4 的很多特点反向移植到了 REHL3 中。只管基于 2.4 内核的 SLES8 与基于 2.6 内核的 SLES9 的线程模型有所不合,但在很多情形下,这两个版本之间仍维持了二进制兼容性。懂得可以前进 Linux on POWER 利用法度榜样机能的新技巧,将来可以遵照这些步骤来确保多个版本之间的二进制兼容性。

简介

当前有很多不合的 Linux 发行版本可用。虽然 Red Hat 和 SUSE LINUX 是受 IBM 支持的 Linux on POWER 办理规划供给商,不过,其他发行版本,比如 Gentoo 和 Debian,也同样正在被 Linux on POWER 所吸收。利用法度榜样开拓职员平日盼望确保他们的利用法度榜样能在多种发行版本上运行,在给定发行版本的不合版本上运行。经由过程懂得二进制兼容性所涉及的问题,可以杀青这些目标。本订婚义了二进制兼容性,评论争论了考试测验维持兼容性时呈现的斟酌事变,并先容了不合版本之间的迁移,即 Red Hat Enterprise Linux 版本 3 和版本 4,以及 SUSE LINUX Enterprise Server 版本 8 和版本 9。文中还包孕了一些常规,在多种发行版本中运行某个利用法度榜样时,可以遵照这些常规来确保兼容性。

表 1 供给了一些软件级其余消息,以及从 RHEL3、RHEL4、SLES8 和 SLES9 中得到的受支持特点,本文中对这些进行了具体先容:

表 1. RHEL 和 SLES 发行版本中受支持的特点和代码级别

SLES8 SP4

RHEL3 U4

SLES9

RHEL4

内核

2.4.21

2.4.21

2.6.5

2.6.9

glibc

2.2.5

2.3.2

2.3.3

2.3.4

SMT

NPTL

NUMA

JDK

IBM 1.3.1

IBM 1.4.2¹

IBM 1.4.2

IBM 1.4.2

Apache

1.3.26

2.0.46

2.0.49

2.0.52

¹RHEL3 没有附带 IBM Developer Kit for Linux,Java™ Technology Edition,然则可以从 IBM 下载它。(请参阅 参考资料。)

您可以应用图 1 所示的流程图来确定某个利用法度榜样在 RHEL or SLES 中是否具备二进制兼容性。

图 1. 确定利用法度榜样的二进制兼容性

二进制兼容性概述

利用法度榜样二进制接口(ABI)的利用匆匆成了 Linux on POWER 二进制兼容性。编译过的二进制代码可以经由过程 ABI 接口造访某个操作系统及其办事。当多个操作系统支持相同的 ABI 时,就使得相同的二进制代码可以在各类情况中运行。在“64-bit PowerPC ELF Application Binary Interface Supplement 1.7”文档(IBM)中可以找到针对 PowerPC® Executable and Linking Format(ELF)ABI 的弥补支持的更多信息(请参阅 参考资料。)

二进制兼容性是得到二进制代码并在给定处置惩罚器家族的多种情况中运行它的能力。这些情况可所以同一 Linux 发行版本的不合版本,也可所以完全不合的发行版本。一个示例是,在应用 SLES9 的基于 POWER4™ 处置惩罚器的系统中编译并运行的二进制代码,并在同样应用 SLES9 的基于 POWER5™ 处置惩罚器的系统中去履行它。另一个示例是,取得在应用 RHEL3 的基于 POWER4™ 处置惩罚器的系统中编译并运行的二进制代码,然后在应用 SLES9 的基于 POWER5™ 处置惩罚器的系统中去履行相同的二进制代码。

处置惩罚器兼容性

处置惩罚器兼容性是与 Linux on POWER 的二进制兼容性关系亲昵的一个话题。这一节将先容不合的 64-位 POWER 处置惩罚器之间的兼容性,以及 32-位 PowerPC 处置惩罚器与 64-位 POWER 处置惩罚器之间的兼容性。

POWER 处置惩罚器兼容性

“二进制兼容性概述”中的着末一个示例涉及到了在不合的处置惩罚器类型中运行二进制代码 —— POWER4 处置惩罚器和 POWER5 处置惩罚器。POWER5 处置惩罚器包孕了对 POWER4 架构的改进,同时维持了两者间的二进制兼容性,这就使得您可以在这两个平台上运行相同的利用法度榜样。同样的二进制代码也可以运行在 IBM® eServer™ BladeCenter™ JS20 上,它应用的是基于 PowerPC® 970 的处置惩罚器。这种处置惩罚器是 POWER4 处置惩罚器的单核心(single-core)版本,它维持了与 Power 架构家族其他成员的二进制兼容性。

PowerPC 与 POWER 处置惩罚器兼容性

在本地 32-位 PowerPC 情况以及 64-位 POWER 情况中运行的 32-位利用法度榜样之间存在二进制兼容性。也有可能在 64-位 Linux on POWER 系统中所天生的本地 Linux PowerPC 情况中履行 32-位二进制代码。这一兼容性可能要归于以下缘故原由:

64-位 Power 架构包孕对完备的 32-位PowerPC 架构的支持。

64-位 Linux 内核包孕对处置惩罚 32-位系统调用的支持。

32-位运行时情况包孕所需的 32-位法度榜样库。

64-位 运行时情况包孕所需的 32-位和 64-位法度榜样库。

有一些天生 32-位和 64-位 Linux 二进制代码的不合措施(取决于开拓平台):

32-位 PowerPC 平台上的本地 GNU Compiler Collection(GCC)C 编译器,比如运行 Linux 的 Apple Powerbook,天生的 32-位二进制代码可以在其本地 32-位平台或者在包孕有适当的 32-位用户空间法度榜样库的 64-位 Linux on POWER 平台上履行。

IBM XL C/C++ 版本 7.0 以及用于 64-位 Linux on POWER 的 GCC C 编译器可以天生 32-位和 64-位的二进制可履行代码,该代码在 32-位和 64-位运行时情况中都可以履行。

在 32-位 PowerPC Linux 系统和 64-位 Linux on POWER 系统中都有可用的交叉编译器。这些交叉编译器既可天生 32-位的二进制代码,也可以天生 64-位的二进制代码。不管二进制代码是在哪里构建的,32-位二进制代码都可以运行在 32-位 Linux 平台或 64-位平台上,而天生的 64-位代码只可以运行在 64-位 Linux on POWER 系统中。Crosstool 是交叉编译器的一个示例,在 Dan Kegel 的“Building and Testing gcc/glibc cross toolchains”文档的“Downloads”中可以找到它。(请参阅 参考资料。)

表 2 展示了若作甚各类开拓平台天生 32-位和 64-位 Linux 二进制代码:

表 2. 天生 32-位和 64-位 Linux 二进制代码

开拓平台

编译器

天生的 Linux 二进制代码

32-bit Linux on PowerPC

Native GCC C 编译器

32-bit

64-bit Linux on POWER

Native XL C/C++ or GCC C compiler

32-bit 或者 64-bit

32-bit Linux on PowerPC 或者

64-bit Linux on POWER

crosstool 等交叉编译器

32-bit 或者 64-bit

虽然已经展示了 32-位和 64-位情况之间的兼容性,但这并不料味着发行版本官方支持此类兼容性。Red Hat 支持 RHEL3 和 RHEL4 之间的 32-位和 64-位向前和向后兼容性,而当从 SLES8 向 SLES9 迁移时,SLES8 只支持 32-位向前兼容性。

表 3 展示了 RHEL 和 SLES 的不合版本上 32-位和 64-位利用法度榜样的向后和向前兼容性:

表 3. RHEL 和 SLES 发行版本中的 32-位和 64-位兼容性

发行版本

32-bit

64-bit

RHEL3 RHEL4

RHEL4 RHEL3

SLES9 SLES8

SLES8 SLES9

优化机能

2.6 内核和 POWER5 架构都具有可以前进利用法度榜样机能的特点。这些前进来自于不合的法度榜样库、处置惩罚器特点以及获得更新的编译器。有些环境下可以直接前进机能,不必要对利用法度榜样进行任何改动,不过,在其他环境下,机能前进必要从新编译源代码。紧张的是要紧记:经由过程从新编译来得到机能提升可能会影响某些情况中的二进制兼容性。这一节将给出 2.6 内核以及 POWER5 架构的新特点的一些示例,这些新特点有益于前进利用法度榜样的机能。

NUMA

非同等内存造访(Non-uniform Memory Access,NUMA)是用于 Linux on POWER 的 2.6 内核所支持的新特点。NUMA 办理的是系统中特定的处置惩罚器(取决于它们在总线上的位置)造访内存中特定区域所需光阴比其他处置惩罚器更长的问题。经由过程应用更多的内存总线,并令每条总线上处置惩罚器更少,NUMA 削减了系统共享内存总线的冲突。当系统的处置惩罚器较少时,这不是什么问题,但当系统中有很多处置惩罚器时,这样可以前进机能。因为 POWER5 架构扩展到 64 个处置惩罚器,Linux on POWER 可以受益于 2.6 内核的这一新特点。大年夜部分利用法度榜样将受益于 2.6 内核级 NUMA 支持。盼望能进一步前进机能的利用法度榜样可以应用用户空间 NUMA API。 RHEL4 附带了用户空间 NUMA API,在 NUMA Group 主页上可以找到关于若何应用这些 API 的更多资料。(请参阅 参考资料。)

编译器改进

您可能会斟酌经由过程从新编译,借助用于 Linux on POWER 的最新编译器的新特点来得到机能前进。高机能编译器 IBM XL C/C++ Version 7.0 可以用于 RHEL3、RHEL4 和 SLES9,可以进一步前进基于 POWER5 的系统的机能。应用 -qarch 和 -qtune 选项来为其响应的架构进行优化。例如,要为 POWER5 进行优化,要应用下面的选项: -qarch=pwr5 和 -qtune=pwr5。

XL C/C++ 编译器也包孕了对 PowerPC 970 处置惩罚器上向量多媒体扩展(Vector Multimedia Extensions,VMX)的支持,应用的是 -qaltivec选项。

GNU Compiler Collection 包括很多说话的编译器。相对付版本 3.2,版本 3.3 已经获得了改进,包括对它的 C 编译器(gcc)的特定于 POWER5 处置惩罚器的优化。-mcpu=power5 和 -mtune=power5 标记已经获得了支持,结果是能够支持以 POWER5 架构为目标的寄存器应用和指令调整参数。别的也有用于 IBM PowerPC 970 处置惩罚器的 VMX 向量扩展,可以前进向量化代码的机能。虽然这些优化在它们各自的架构上前进了机能,然则可能会影响运行在其他平台上的利用法度榜样的二进制兼容性。

在 developerWorks 文章“How to use IBM XL C/C++ Advanced Edition V7.0 for Linux on POWER: A guide for GCC users”中可以找到关于若何应用针对 Linux on POWER 的 XL C/C++ 编译器的更多资料。

SMT

在迁移到基于 2.6 的 Linux 内核时,同步多线程(Simultaneous Multi-threading,SMT)带来了前进机能的另一种可能。 SMT 获得了 POWER5 架构的支持,极大年夜地前进了重量级多线程利用法度榜样的机能。POWER5 芯片有两个硬件指令线程,在每个周期都能够履行多个指令,这可以前进机能。不过,对付某些非重量级线程的利用法度榜样,SMT 可能会导致机能的下降。在向导时向 Linux 内核通报 smt-enabled=off 可以禁用 SMT。

其他 2.6 内核改进

RHEL4 和 SLES9 中所应用的 2.6 内核具有这些其他方面的机能改进:

可扩展性获得了改进,能够支持 64 路 SMP POWER5 处置惩罚器。

为必要内存很多的利用法度榜样供给了大年夜页(large page)支持,容许应用 16MB 的页大年夜小,同时仍支持传统的 4KB 页大年夜小。

在 2.6 中增添了 PCI 热插拔特点,容许在运行着的系统中添加或者删除 PCI 适配器,而无需关闭系统。

经由过程应用反向映射算法,虚拟内存子系统已经获得了前进,这为内存受限的系统带来了改进。

块 I/O 和异步 I/O 是其他获得改进的方面,它们前进了机能。

从 RHEL3 迁移到 RHEL4

从 RHEL3 到 RHEL4,Red Hat 保持了一个稳定的 ABI,使得利用法度榜样在这两个版本之间可以顺利迁移。不过,为了确保二进制兼容性, Red Hat 建议您将利用法度榜样接口链接到他们定义的核心法度榜样库。这个列表中包括的法度榜样库有:

libc、libgcc、libstdc++、libdl、libm、libutil、libcrypt、libz、libpthread、libncurses

libX11、libXext、libXt、libICE、libSM、libGL

libgtk、libgdk、libgdk_pixmap、libpango、libatk、libglib、libgmodule、libgthread、libgnomeprint、libgnomeprintui、libgconf、libglade

在“Red Hat Enterprise Linux 4 Application Compatibility”一文中描述了核心法度榜样库以及其他兼容性问题(请参阅 参考资料)。假如某个利用法度榜样应用了此核心法度榜样库集之外的法度榜样库,可能仍旧会维持兼容性,但应该进行进一步的回归测试。利用法度榜样可能无法维持二进制兼容性的其他环境包括:利用法度榜样静态链接到任何法度榜样库、依附内核级接口,或者与 POSIX 标准或者 64-位 POWER ABI 定义相冲突。

不仅 ABI 在 RHEL3 和 RHEL4 之间是稳定的,而且 RHEL4 中可以找到的 2.6 内核的很多特点也已经反向移植到了 RHEL3。这使得 RHEL3 利用法度榜样可以使用同步多线程(SMT)和 Native Posix Thread Library(NPTL)等特点来得到 RHEL4 中所包孕的机能前进,而无需从新编译它们的源代码。这些利用法度榜样也会得到如本文前面所描述的伴随 2.6 内核而来的机能前进。

不过,在两种情形下,在 RHEL4 中从新编译可以前进利用法度榜样的机能:

在拥有大年夜量处置惩罚器的系统中,可能会发明借助 RHEL4 中所增添的 NUMA 用户空间 API 进行从新编译会有好处。虽然平日可以发明利用法度榜样可以因内核级 NUMA 支持而得到机能前进,然则应用这些用户空间 API 进行编译能够得到进一步的前进。应用场置惩罚器较多而且频繁造访内存的利用法度榜样将最为受益,由于 NUMA 削减了某个处置惩罚器造访内存中某个区域的光阴。

其他利用法度榜样当应用最新的 RHEL4 编译器进行从新编译时,可能也会发明机能的前进。这些编译器已经增添了可以使用 POWER5 优化的标记,措施如本文前面所述。

当为了机能的前进而从新编译您的利用法度榜样时,必须要斟酌影响二进制兼容性的风险。

不过,在大年夜部分环境下,当从 RHEL3 迁移到 RHEL4 时,不必付出额外的事情。

从 SLES8 迁移到 SLES9

因为两个版本间的一些紧张变更,从 SLES8 到 SLES9 的迁移必要斟酌轻细更多一些事变。详细地说,SLES8 基于 2.4.21 内核,应用的是 2.2.5 版本的 glibc,而 SLES9 基于 2.6 内核,应用的是 2.3 版本的 glibc。别的,SLES9 已经转移到了 NPTL 线程模型,而 SLES8 仍旧在应用较老的 LinuxThreads 模型。鄙人面的“线程模型”中对线程模型的变更所带来的问题进行了描述。虽然应用通用法度榜样库的非线程化利用法度榜样在 SLES 版本间维持二进制兼容性的几率更大年夜,然则也应该进行回归测试以包管质量。

如 RHEL,在某些情形下,从新编译源代码可能会为将要在 SLES9 上运行的利用法度榜样带来好处。例如,经由过程使用 SLES9 中获得增强的编译器,利用法度榜样可能会得到机能的前进。SMT 也是 SLES9 中的一个新特点,可以前进重量级线程利用法度榜样的机能。

平日,大年夜部分非线程的利用法度榜样在 SLES8 和 SLES9 中是二进制兼容的。不过,因为法度榜样库和内核版本的紧张变更,对考试测验优化自己利用法度榜样机能的开拓职员来说,从新编译源代码可能是最好的选择。

确保发行版本间的兼容性

编译能够跨多种 Linux 发行版本移植的利用法度榜样可能看起来是一项艰巨的义务,不过,遵照一些简单的常规就可以完成它。大年夜部分发行版本的最新版本平日包孕相同版本号的法度榜样库的内核版本。大年夜部分发行版本还会应用类似的设置设置设备摆设摆设和数据文件的款式。当考试测验编写跨不合发行版本移植的利用法度榜样时,可以遵照下面的部分所给出的一些指示方针。

很多 Linux 发行版本都包孕相同的 ABI 和通用的核心法度榜样库集。不过,每个发行版本对核心的定义会稍有不合,这就意味着当传播鼓吹您的利用法度榜样支持某个给定的发行版本上时,老是必要进行回归测试。例如,假如您仔细钻研 RHEL 和 SLES 发行版本所包孕的 glibc 法度榜样库,您会发明 RHEL3 所包孕的是版本 2.3.2,SLES9 是 2.3.3,而 RHEL4 所附带的是 2.3.4,都异常类似。帮助版本号的差别平日是缺陷的修复,而没有新加的特点。RHEL3、RHEL4 和 SLES9 也应用了类似的线程模型,以是,任何链接到通用法度榜样库的利用法度榜样都应该能够在所有这三个操作情况中运行。您也会在 Gentoo 和 Debian 等其他发行版本中找到通用法度榜样库。

文件层级标准(File Hierarchy Standard,FHS)定义了在平日的类-UNIX® 系统中文件和目录的结构要领。假如您的利用法度榜样要依附于其他设置设置设备摆设摆设和数据文件,那么应该应用 FHS。FHS 的主要用途是为利用法度榜样供给一个能找到标准设置设置设备摆设摆设文件的通用位置。在文件系统层级标准(Filesystem Hierarchy Standard)主页上可以找到关于 FHS 的更多资料。(请参阅 参考资料。)

虽然平日弗成能声称能够确保跨所有 Linux 发行版本的二进制兼容性,然则,经由过程遵照下面这些常规,您可以声明支持大年夜部分当前发行版本。

二进制兼容性方面的斟酌事变

只管已经从 ABI 和处置惩罚器家族的角度定义了二进制兼容性,然则当确定某个利用法度榜样是否能够跨多种情况运行时,还有其他兼容性必要斟酌。有一些示例,比如线程模型、底层内核依附、中心件以及核心法度榜样库。这一节将先容这些必要斟酌的事变以及 Linux on POWER 若何处置惩罚它们。

线程模型

跟着 glibc 2.3 的宣布和 Linux 内核从版本 2.4 到版本 2.6 的变迁,线程模型已经发生了变更。glibc 2.2 版本和 2.4 内核中所应用的传统 LinuxThreads 模型已经被 Native Posix Thread Library(NPTL)所取代。NPTL 已经彻底重写,这为重量级线程利用法度榜样带来了显明的机能前进。在 Red Hat 文章“The Native POSIX Thread Library for Linux”中可以找到关于 NPTL 规范的更多细节。(请参阅 参考资料。)

SLES8 基于 2.4 内核,应用的是 Linux Thread 模型,当考试测验在应用 NPTL 线程模型的 SLES9 上运行线程化的利用法度榜样时,这会激发问题。这个问题有两个办理规划:

对源代码进行少量改动,并应用基于 NPTL 的法度榜样库从新编译,就可以受益于 NPTL 带来的机能前进。在 LinuxDevices.com 的文章 “Migrating applications to the 2.6 kernel and NPTL”中可以找到关于从 LinuxThreads 模型迁移到基于 NPTL 的模型的更多资料。 (请参阅 参考资料。)

设置 LD_ASSUME_KERNEL 情况变量,它在 SLES9 中供给了与 LinuxThreads 模型的向后兼容性。经由过程设置 这个变量,链接器会觉得运行的是应用较老的 LinuxThreads 模型的 2.4 内核。Red Hat 开拓者 Ulrich Drepper 具体地说清楚明了 LD_ASSUME_KERNEL(请参阅 参考资料)。

Red Hat RHEL3 应用的也是 2.4 内核,不过它从 2.6 内核反向移植了 NPTL 线程支持。这就使得线程化的利用法度榜样可以在 RHEL 的不合版本之间顺利进行迁移。

底层内核依附

当在不合的操作情况中运行利用法度榜样时,底层内核依附是要斟酌的另一个方面。作为一个示例,假如利用法度榜样编写时应用的是某个文件系统中的固定编码的值,那么当信息从 /proc 文件系统移到 sysfs 文件系统时可能会不兼容。先前的 /proc 文件系统是一个处于内存中的文件系统,让用户空间能够造访内核数据布局,这些数据布局中包孕有系统和设备状态信息。这些信息从 /proc 文件系统迁移到 sysfs 文件系统中。/proc 文件系统仍旧存在,不过只是包孕进程信息。

系统信息从 /proc 文件系统移到 sysfs 文件系统的一个示例是通用串行总线(Universal Serial Bus,USB)设备列表的存储。在基于 2.4 内核的系统上编写的利用法度榜样会发明,这个设备列在 /proc/bus/usb/devices 中。跟着向 2.6 内核和 sysfs 文件系统的迁移,此信息已经移到了 /sys/bus/usb/devices。此信息的移动可能会导致利用法度榜样不能正常事情。虽然这并不常见,但您必要意识到内核级中这种潜在问题。

中心件和利用法度榜样兼容性

当前很多利用法度榜样都不是自包孕的,而是依附于其他利用法度榜样中心件。中心件是位于两个利用法度榜样之间或者利用法度榜样与操作系统之间的一部分软件。中心件的示例包孕 IBM DB2® Universal Database for Linux、Java™ Development Kit(JDK)以及 IBM WebSphere® 利用法度榜样。开拓职员可以确定他们的利用法度榜样支持哪个版本的中心件,然则中心件的供给者抉择了他们的产品能够运行于哪个 Linux 发行版本。在用于 Linux 的 IBM 软件 Web 站点有用于 Linux 的 IBM 中心件列表(请参阅 参考资料)。 连同中心件一路,利用法度榜样可能会依附于发行版本所附带的其他利用法度榜样。例如 Apache web 办事器、数据库系统(比如 mysql 和 postgresql)以及解释说话(perl 和 python)。

作为示例,让我们来仔细钻研 Java,看它是若何影响利用法度榜样开拓职员的。Java 是一个广受关注的通用的中心件软件包,这要归因于由于其平台自力性而存在的大年夜量 Java 利用法度榜样。JDK 不仅有不合的版本和供给者,用于 Linux on POWER 的还有 32-位和 64-位的版本。RHEL3 不附带 JDK,然则它支持 IBM Developer Kit for Linux、Java 2 Technology Edition,Version 1.4.2,而 RHEL4 既附带 IBM 32-bit SDK for Linux V1.4.2 也附带 IBM 64-bit SDK for Linux V1.4.2。SLES8 Update4 附带 IBM 32-bit SDK for Linux V1.3.1,而 SLES9 附带 IBM SDK V1.4.2 的 32-位和 64-位版本。当自己的利用法度榜样依附于只有在版本 1.4.2 中才可用的特点时,利用法度榜样开拓职员必须意识到这些差别,由于这些特点在 SLES8 中是弗成用的。

作为另一个示例,Apache web 办事器是一个不被觉得是中心件的利用法度榜样,然则很多利用法度榜样都依附它。Apache 的最新版本是版本 2.0, RHEL3、RHEL4 和 SLES9 都附带它,而 SLES8 附带的是版本 1.3。假如某个利用法度榜样应用了只有在 Apache 2.0 中才可用的新特点,那么开拓职员应该意识到他们的利用法度榜样可能无法与 SLES8 附带的版本 1.3 的 Apache 相兼容。

核心法度榜样库

当考试测验得到二进制兼容性时,核心法度榜样库的紧张变更也会激发问题。法度榜样库的紧张变更之间维持了向后兼容性。这就使得应用给定法度榜样库的较老版本编译的利用法度榜样可以应用同一法度榜样库的新版本运行。假如修订版本间有紧张的变更,那么应用给定法度榜样库的最新版本编译的利用法度榜样将不能应用同一法度榜样库的较老版本运行。例如,在 SLES8 系统中应用 glibc 版本 2.2.5 编译的二进制代码,将可以在 SLES9 系统中应用 glibc 版本 2.3 运行,由于 2.3 版本是向后兼容的。不过,在 SLES9 上编译的同样的源文件将因较老的 glibc 而不能在 SLES8 系统中运行。只有当您在当前发行版本上开拓利用法度榜样,并且盼望在发行版本的较老版本上(不供给较老的兼容法度榜样库)支持那个利用法度榜样时,这才会激发问题。

您可能还会对下面的文章感兴趣: