64位内核能支持32位的应用?

在使用64位Linux内核的环境中,遇到32位应用程序无法运行的问题,报错为'exec format error'。经过排查,发现内核默认未开启支持32位应用的选项。通过file命令确认程序为32位静态链接,并在内核配置中启用32位应用支持后,问题得到解决,揭示了64位内核并不天然兼容32位应用程序的事实。
摘要由CSDN通过智能技术生成

64位内核能支持32位的应用?

最近一位同事在调试EVB板时遇到一个很奇怪的问题。
内核:Linux4.4.14
编译器:gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux
使用cpio生成一个简单的根文件系统,busybox等都运行正常。但以前编译好的一个测试程序无法运行,提示“exec format error”
一开始怀疑是缺少依赖的动态库问题,通过file指令发现

ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 2.6.31, BuildID[sha1]=5fec46f654c65379bd58fdeb35204443ab54e6e6, not stripped

这的确是一个ARM 32位静态链接的应用,应该不依赖动态库。而且sha1值正确,文件没有损坏。该文件在qemu模拟器上也能正常运行。

尝试重新编译该测试程序,但工作量比较大,只能作罢。

偶然通过file指令查看rootfs中的其它可执行程序&#

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值