[Lazarus] Help needed for issue #20311: IDE always tailors "Target processor" options for Intel CPUs

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Fri Sep 13 21:35:01 CEST 2013


Sven Barth wrote:

>> Is there anything else that I could usefully grab at the same time, 
>> e.g. ABI types? In particular, noting that you've fixed 
>> http://bugs.freepascal.org/view.php?id=20310 but is there some variant 
>> of  fpc -i  etc. that lists applicable assembler styles?
>>
> The assembler styles are reported in the "-h" output at "-R". They are 
> adjusted for each target. The FPU type for -Cf might also be interesting 
> (especially for ARM). The output is available in fpc -i as well.

At least with the versions I've currently got available it looks as 
though -R and -Cf defer to -i. Specifically, I see something like this 
in all cases except x86:

   -A<x>  Output format:
       -Adefault  Use default assembler
       -Aas       Assemble using GNU AS

       -Cf<x>     Select fpu instruction set to use, see fpc -i for
possible values

   -R<x>  Assembler reading style:
       -Rdefault  Use default assembler for target

I think the -A output for SPARC Solaris might be different, but I can't 
easily test right now.

Output for -i from native 2.6.0 or 2.6.2, unless noted. Apologies if 
this is excessively noisy.

SPARC, Linux:
-------------
Compiler CPU Target: sparc

Supported targets:
   Solaris for SPARC (under development)
   Linux for SPARC

Supported CPU instruction sets:
   SPARC V7
   SPARC V8
   SPARC V9

Supported FPU instruction sets:
   SOFT
   HARD

Supported ABI targets:
   DEFAULT
   SYSV
   AIX
   EABI
   ARMEB

Supported Optimizations:
   REGVAR
   LOOPUNROLL
   TAILREC
   CSE

Supported Whole Program Optimizations:
   All
   DEVIRTCALLS
   OPTVMTS
   SYMBOLLIVENESS

Supported Microcontroller types:


ARMEL, Linux on Qemu:
---------------------
Compiler CPU Target: arm

Supported targets:
   Linux for ARMEL
   WinCE for ARM
   GameBoy Advance
   PalmOS
   Nintendo DS
   Embedded
   Symbian OS for ARM
   Darwin for ARM

Supported CPU instruction sets:
   ARMV3
   ARMV4
   ARMV5
   ARMV6
   ARMV7
   ARMV7M
   CORTEXM3

Supported FPU instruction sets:
   SOFT
   LIBGCC
   FPA
   FPA10
   FPA11
   VFPV2
   VFPV3

Supported ABI targets:
   DEFAULT
   SYSV
   AIX
   EABI
   ARMEB

Supported Optimizations:
   REGVAR
   STACKFRAME
   LOOPUNROLL
   TAILREC
   CSE

Supported Whole Program Optimizations:
   All
   DEVIRTCALLS
   OPTVMTS
   SYMBOLLIVENESS

Supported Microcontroller types:
   LPC2114
   LPC2124
   LPC2194
   AT91SAM7S256
   AT91SAM7SE256
   AT91SAM7X256
   AT91SAM7XC256
   STM32F103RE
   STELLARIS


MIPS, Linux on Qemu (2.7.1, r22655):
------------------------------------
Compiler CPU Target: mipseb

Supported targets:
   Linux for MIPSEB

Supported CPU instruction sets:
   mips2
   mips1
   mips2
   mips3
   mips4
   mips5
   mips32
   mips32r2

Supported FPU instruction sets:
   SOFT
   FPU_MIPS2
   FPU_MIPS3

Supported ABI targets:
   DEFAULT
   SYSV
   AIX
   EABI
   ARMEB
   EABIHF

Supported Optimizations:
   REGVAR
   LOOPUNROLL
   CSE
   ORDERFIELDS
   FASTMATH

Supported Whole Program Optimizations:
   All
   DEVIRTCALLS
   OPTVMTS
   SYMBOLLIVENESS

Supported Microcontroller types:


MIPSEL, Linux on Qemu (2.7.1, r22655):
--------------------------------------
Compiler CPU Target: mipsel

Supported targets:
   Linux for MIPSEL

Supported CPU instruction sets:
   mips2
   mips1
   mips2
   mips3
   mips4
   mips5
   mips32
   mips32r2

Supported FPU instruction sets:
   SOFT
   FPU_MIPS2
   FPU_MIPS3

Supported ABI targets:
   DEFAULT
   SYSV
   AIX
   EABI
   ARMEB
   EABIHF

Supported Optimizations:
   REGVAR
   LOOPUNROLL
   CSE
   ORDERFIELDS
   FASTMATH

Supported Whole Program Optimizations:
   All
   DEVIRTCALLS
   OPTVMTS
   SYMBOLLIVENESS

Supported Microcontroller types:


I've not been tracking ARM or MIPS(EL) on Linux closely over the last 
few months, and have never looked at them on e.g. Android.

I don't have a known-working x86-64 and am assuming that somebody 
(anybody!) else is better placed to check x86 on e.g. Windows. I can 
manage Linux and probably NT if necessary.

I can't conveniently test either SPARC or x86-64 Solaris at the moment. 
I can probably manage SPARC if necessary.

I can't test PPC on Linux at the moment due to hardware failure. Last 
time I investigated FPC didn't run on PPC Mac classic OS. I might be 
able to fix Linux.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list