On 15/03/2016 20:02, David Tiller wrote:
> I might be off-base here, but shouldn't programs be compiled to match the 
> soft/hard floating point compilation options of the OS itself? That used to 
> be the case, anyway. That might explain why Pavel can use hard FP and you 
> can't.
That's not quite correct David. The operating system probably doesn't 
use the FPU and certainly doesn't care if an individual process makes 
use of it or not. The issues are:

1) A generic program that is intended to be portable to all systems of a 
particular architecture including ones without a hardware FPU must be 
built with software floating point hardware emulations.

2) A program built for a specific ARM system that has an FPU using the 
GNU compiler tool chains may choose to use the so-called 'softfp' FP ABI 
that uses the same calling convention as the software FPU emulations, 
this allows the program to use libraries that are built generically i.e. 
with the software floating point hardware emulation. Alternatively they 
may be built with the hardware only FPU calling conventions which are 
most efficient but can only be used if all parts of the program 
including libraries are also using the hardware FPU calling convention.

What you say is true if the libraries that a program uses are considered 
to be part of the operating system itself but with Linux that is not the 
case. The grey area is the Standard C/C++/Fortran libraries but these 
are usually cleverly coded to be compatible with programs with up to all 
three possible FP ABIs (See below).

For Debian based ARM Linux systems there are two variants, 'armel' and 
'armhf'. 'armel' which Clemens has only supports the 'soft' and 'softfp' 
ABIs for library calls of emulated hardware FPU and hardware FPU access 
respectively. The newer 'armhf' system builds support all three by 
adding support for the most efficient direct hardware FPU ABI i.e. the 
compiler emits direct calls to the FPU hardware.

So summarizing, Clemens appears to have an 'armel' operating system 
build that does not support the 'hard' FP ABI library calls and Pavel 
probably has an 'armhf' system build that supports all three types of 
library calls, so long as all code in a program is compiled with the 
matching ABI option. The 'softfp' and 'hard' ABIs are not "link 
compatible" so all libraries and other program code must use the same FP 
ABI. The 'hard' FP ABI is only usable on 'armhf' Debian based system builds.

73
Bill
G4WJS.

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to