Re: [fpc-devel] ARM V7 Hard float issue

2013-05-08 Thread peter green

Johan Kotze wrote:

It seems that fpc in fact does not produce ARMHF executables with the 
parameters that I use. Am I using the wrong parameters or is something broken 
in the ARMHF support ?
  
IIRC fpc doesn't set elf tags to mark objects as hardfloat, this is 
something I need to look into (if someone else hasn't already).


___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] ARM V7 Hard float issue

2013-05-08 Thread Jonas Maebe


On 08 May 2013, at 11:11, Jonas Maebe wrote:

We should give an error if you try to use any -Ca* parameter with  
the ARM compiler (other than for the ABI for which the compiler has  
been built), since it will never work properly anyway.


I've implemented this now. "fpc -i" will now also only display the  
ABIs actually supported by the compiler binary.



Jonas
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] ARM V7 Hard float issue

2013-05-08 Thread Jonas Maebe


On 07 May 2013, at 19:42, Johan Kotze wrote:

I am trying to build fpc and Lazarus for ARMHF for a pcDuino. The  
processor is an AllWinner A10. I used fpc 2.6.2 to build fpc 2.7.1  
from source. When I compile a test program with the following  
parameters


fpc -dFPC_ARMHF -Caeabihf -Cparmv6 -Cfvfpv3_d16  test.pas


FPC's ARM supported is implemented such that you have to specify the  
kind of ABI you want to support when building the compiler binary  
itself. You can do so via the OPT="xx" make option. So add OPT="- 
dFPC_ARMHF" when building FPC 2.7.1, and you will get an ARM compiler  
that generates ARMHF code/binaries. Adding -dFPC_ARMHF when compiling  
a program will not change anything.


We should give an error if you try to use any -Ca* parameter with the  
ARM compiler (other than for the ABI for which the compiler has been  
built), since it will never work properly anyway. Or fix the ARM  
compiler to correctly deal with different ABIs at compile time rather  
than only at compiler build time, but other developers don't like that.



Jonas
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] ARM V7 Hard float issue

2013-05-08 Thread Johan Kotze
Hi

I am trying to build fpc and Lazarus for ARMHF for a pcDuino. The processor is 
an AllWinner A10. I used fpc 2.6.2 to build fpc 2.7.1 from source. When I 
compile a test program with the following parameters 

fpc -dFPC_ARMHF -Caeabihf -Cparmv6 -Cfvfpv3_d16  test.pas

I get the following output from readelf -a (just showing last bit)

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "6"
  Tag_CPU_arch: v6
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_FP_arch: VFPv3-D16
  Tag_DIV_use: Not allowed

The output of readelf -a /bin/ls is as follows:

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "7-A"
  Tag_CPU_arch: v7
  Tag_CPU_arch_profile: Application
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-2
  Tag_FP_arch: VFPv3-D16
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_enum_size: int
  Tag_ABI_HardFP_use: SP and DP
  Tag_ABI_VFP_args: VFP registers
  Tag_CPU_unaligned_access: v6
  Tag_DIV_use: Not allowed

It seems that fpc in fact does not produce ARMHF executables with the 
parameters that I use. Am I using the wrong parameters or is something broken 
in the ARMHF support ?

Johan

___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel