Sign in Join
Wiki copytemporary

Revision 2 of 3, by WikiArchive on 11-4-2026. The page as it is now.

ARM compiler options

Contents

Overview

The FPC compiler lets you create (cross)compilers for various ARM instruction sets, floating point units etc.

Current (FPC 2.6.x/2.7.x) compilers (and RTL PPUs etc) are built for just one ABI and cannot output other ABIs once built - e.g. adding -dFPC_ARMHF when compiling a program will not change anything: http://lists.freepascal.org/lists/fpc-devel/2013-May/032093.html

The options below are passed in OPTS= when building FPC. When building a cross compiler, some of them can/should be passed in CROSSOPT as well.

ABI

ABIs are selected using the -Ca switch.

https://upload.wikimedia.org/wikipedia/commons/d/d8/Nuvola_apps_ktip.png Note: Normally, specifying an ABI is not needed. Source: http://www.mail-archive.com/fpc-pascal@lists.freepascal.org/msg35496.html

Instruction sets

Instructions sets are selected using the -Cp switch. Possible instruction sets (note many sets are backward compatible):

Floating point support

Floating point support coprocessor (FPU) options are selected with the -Cf switch Possible FPU support options:

...

Interactions

Below adapted from: 1(http://www.mail-archive.com/fpc-devel@lists.freepascal.org/msg28056.html)

From an ABI point of view softfp and vfpv2 are compatible. However, vfpv2 executables will crash if run on a processor not having vfpv2 hardware.

Other relevant options

See also


From the Free Pascal wiki, page "ARM compiler options", as the Internet Archive kept it on 2024-05-28. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.