On 10/06/2016 08:33 AM, Uwe Kleine-König wrote: > Hello, > > On Wed, Oct 05, 2016 at 05:55:10PM +0200, Clemens Gruber wrote: >> They write: "ARM on Linux. You must run an EABI kernel. These are >> generally known as armel for softfloat (compatible with ARMv5) or armhf >> for hardware floating point (ARMv6 and above)." > > At least for Debian an ARMv6 compatible CPU (e.g. Raspberry Pi 1) cannot > run armhf. According to https://www.debian.org/ports/: Cannot run debian's flavour of armhf, as it uses vp3 und thumb-2" > A lot of modern 32-bit ARM boards and devices ship with a > floating-point unit (FPU), but the Debian armel port doesn't > take much advantage of it. The armhf port was started to improve > this situation and also take advantage of other features of > newer ARM CPUs. The Debian armhf port requires at least an ARMv7 > CPU with Thumb-2 and VFP3-D16 floating point support. >> If you set GOARM to 6 or 7 it always creates hardfloat code. So I think, >> setting it to anything else than 5 would lead to a crash on all >> architectures without a VFP unit? > > Not necessarily. AFAIK given a properly configured kernel a hardfloat > instruction generates an exception that is then fixed up in the kernel. > It's not efficient but at least it works. armel passes floating point values in the integer registers and debian's armhf passes them in floating point registers. This means you cannot mix and match armel and armhf, as the are ABI incompatible. Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |