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中的其它可执行程序&#