Quote:
Originally Posted by encol
But why? Aren't ARMv7 armhf?
Code:
cat /proc/cpuinfo
Processor : ARMv7 Processor rev 10 (v7l)
BogoMIPS : 1987.37
Features : swp half thumb fastmult vfp edsp neon vfpv3
Code:
readelf -A /proc/self/exe
Attribute Section: aeabi
File Attributes
Tag_CPU_name: "4T"
Tag_CPU_arch: v4T

|
No, they are still running softfloat code.
The earlier Kindles, with ARMv6 processor had neon and vfp -
but it wasn't used.
You need to pass the compiler:
-mfloat-abi=softfp
If you need to use any of the Amazon libraries. *
https://gcc.gnu.org/onlinedocs/gcc-7...ml#ARM-Options
Yes, I know that is for gcc-7.1 but that quote has been the same since at least gcc-3.1
The 'tag' area at the end of the binary is a report of the limits the compiler had set for its code generation.
It has nothing to do with the code generated. yeah, that's the gcc gang at work.
* More specifically, if you have to pass floating point arguments from hardfp code to softfp subroutine.
Then things go sideways.
But if you never pass floating point arguments, you can mix-and-match and maybe never crash.
I honestly don't recall of the caller saved and callee saved register sets match in the to floating point ABIs.
If you use: LD_DEBUG=libs with my ARMhf examples, you will see that it is calling into one (or two) Amazon soft float libraries.
Of interest is Lua (or LuaJit whichever I built) - the only number type in that language is double.
It wouldn't run long if ARMhf wasn't working on the Kindle processors.