softfp 应用程序在armhf 的rootfs 执行
本文是原「蜗窝讨论区」的历史存档(2016-10-21),来自版块「Linux kernel技术问答」,共 2 帖。讨论区已停止服务,此处仅供查阅。
背景简介:
gcc的选项 -mfloat-abi 有三种值 soft、softfp、hard(其中后两者都要求 arm 里有 fpu 浮点运算单元,soft 与后两者是兼容的,但 softfp 和 hard 两种模式互不兼容): soft: 不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式。 softfp: armel架构(对应的编译器为 arm-linux-gnueabi-gcc )采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。 hard: armhf架构(对应的编译器 arm-linux-gnueabihf-gcc )采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换,性能最好,但是中断负荷高。
Demo举例:
arm-none-linux-gnueabi-gcc -o mfloat_soft mfloat.c -static -mfloat-abi=soft
___背景简介结束__
现在有很多softfp 应用程序,而且是动态编译,不能重编的情况下,是否能在armhf 的rootfs 执行?
现在执行的话,报如下,
root@linaro-alip:~# ./hello_worl_softfp -bash: ./hello_worl_softfp : No such file or directory
我想确认有什么办法,实在没办法才会换成armel的rootfs了,但工程量变大. 这个问题困扰着我,项目的成败就看这个问题是否有解决办法.谢谢各位能提出意见!
这估计很难,没办法做吧?
