使用 glibc 编译和使用 eglibc 编译的 运行 内核
Compiling with glibc and running kernel that compiled with eglibc
我正在使用 运行 嵌入式 linux 内核的 ARM 嵌入式系统 (ARM9)。内核是用 GCC 4.5.x 和 eglibc 编译的。
使用 GCC 4.8.x 或使用 glibc.
的更新版本编译的代码是否有任何危害 运行 二进制文件?
我了解到,出于稳定性原因,您不应该混合搭配 libc。但据我所知,它们都是 ABI 兼容的,所以应该没有问题。
我使用的一些代码需要 STD11 才能正确编译,因此我不能使用 GCC4.5。
The kernel was compile with GCC 4.5.x with the eglibc
内核构建不使用 GLIBC,因此与(未)使用什么 libc 构建内核完全无关。
Is there any harm running binary which are compiled code with GCC 4.8.x or newer which uses glibc.
没有
What occurs when the binary links against libc? It was linked against glibc when cross compiling but will link against eglibc that in sysroot.
一般来说,GLIBC 和 EGLIBC 保证向后兼容性:也就是说,链接到 GLIBC-x.y 的二进制文件将 运行 对于不早于 x.y 的任何 GLIBC 都没有问题。
并且 EGLIBC 与 GLIBC 的偏差非常小。 EGLIBC 允许禁用某些功能。链接到 EGLIBC-x.y 的二进制文件将 运行 很好,如果在 运行 时间它发现 GLIBC 不早于 x.y(GLIBC 将具有二进制文件不具备的功能使用(IF EGLIBC 实际上确实禁用了某些功能),但这很常见:二进制文件很少使用 every GLIBC 接口。
我正在使用 运行 嵌入式 linux 内核的 ARM 嵌入式系统 (ARM9)。内核是用 GCC 4.5.x 和 eglibc 编译的。 使用 GCC 4.8.x 或使用 glibc.
的更新版本编译的代码是否有任何危害 运行 二进制文件?我了解到,出于稳定性原因,您不应该混合搭配 libc。但据我所知,它们都是 ABI 兼容的,所以应该没有问题。
我使用的一些代码需要 STD11 才能正确编译,因此我不能使用 GCC4.5。
The kernel was compile with GCC 4.5.x with the eglibc
内核构建不使用 GLIBC,因此与(未)使用什么 libc 构建内核完全无关。
Is there any harm running binary which are compiled code with GCC 4.8.x or newer which uses glibc.
没有
What occurs when the binary links against libc? It was linked against glibc when cross compiling but will link against eglibc that in sysroot.
一般来说,GLIBC 和 EGLIBC 保证向后兼容性:也就是说,链接到 GLIBC-x.y 的二进制文件将 运行 对于不早于 x.y 的任何 GLIBC 都没有问题。
并且 EGLIBC 与 GLIBC 的偏差非常小。 EGLIBC 允许禁用某些功能。链接到 EGLIBC-x.y 的二进制文件将 运行 很好,如果在 运行 时间它发现 GLIBC 不早于 x.y(GLIBC 将具有二进制文件不具备的功能使用(IF EGLIBC 实际上确实禁用了某些功能),但这很常见:二进制文件很少使用 every GLIBC 接口。