在构建编译器时,除了glibc版本之外,还必须指定
Linux头版本和最小支持的内核版本.然后在目标机器上有实际的内核版本和glibc版本(具有自己的内核头文件版本和最低支持的内核版本).我很难理解这些版本是如何结合在一起的.
示例1:假设我的系统具有针对内核头3.14构建的glibc 2.13.这有任何意义吗? glibc 2.13(2011年发布)如何使用3.14(2014年发布)的新内核功能?
示例2:假设我的编译器的glibc版本高于2.13.编译程序是否可以在glibc 2.13系统上运行?如果编译器的glibc版本早于2.13?
示例3:从https://sourceware.org/glibc/wiki/FAQ#What_version_of_the_Linux_kernel_headers_should_be_used.3F开始,我了解如果它满足编译glibc时使用的“最小内核版本”,则可以使用旧内核.但我不明白这段话反过来(用旧内核头编译GNU C库并在最近的内核上运行)并不一定按预期工作.例如,如果您使用旧的内核头文件来编译GNU C库,则无法使用新的内核功能.这是唯一可能发生在我身上的事情吗?如果内核比编译时更新,它会不会在glibc中破坏某些东西?
示例4:在glibc设置中做更细微的差别(例如,将可执行文件与针对内核头文件3.Y编译的glibc版本2.X链接到最小支持内核版本2.6.A并在具有相同glibc 2.X的系统上执行,但针对内核头文件编译3.Z与minumum支持内核版本2.6.B)影响什么?我怀疑他们不是,但我想确定.
这么多问题:)谢谢!