| |||
| Home > Assembler command line options > Assembler command line options > --apcs=qualifier…qualifier | |||
This option specifies whether you are using the Procedure Call Standard for the ARM Architecture (AAPCS). It can also specify some attributes of code sections.
The AAPCS forms part of the Base Standard Application Binary Interface for the ARM Architecture (BSABI) specification. By writing code that adheres to the AAPCS, you can ensure that separately compiled and assembled modules can work together.
AAPCS qualifiers do not affect the code produced by the assembler.
They are an assertion by the programmer that the code in complies
with a particular variant of AAPCS. They cause attributes to be
set in the object file produced by the assembler. The linker uses
these attributes to check compatibility of files, and to select
appropriate library variants.inputfile
Values for are:qualifier
noneSpecifies that does
not use AAPCS. AAPCS registers are not set up. Other qualifiers
are not permitted if you use inputfilenone.
/interwork, /nointerwork/interwork specifies that the code
in the inputfile can interwork between ARM
and Thumb safely. The default is /nointerwork.
/inter, /nointerAre synonyms for /interwork and /nointerwork.
/ropi, /noropi/ropi specifies that the code in inputfile is
Read-Only Position-Independent (ROPI). The default is /noropi.
/pic, /nopicAre synonyms for /ropi and /noropi.
/rwpi, /norwpi/rwpi specifies that the code in inputfile is
Read-Write Position-Independent (RWPI). The default is /norwpi.
/pid, /nopidAre synonyms for /rwpi and /norwpi.
/fpic, /nofpic/fpic specifies that the code in inputfile is
read-only independent and references to addresses are suitable for
use in a Linux shared object. The default is /nofpic.
/hardfp, /softfpRequests hardware or software floating-point linkage.
This enables the procedure call standard to be specified separately
from the version of the floating-point hardware available through
the --fpu option. It is still possible to specify
the procedure call standard by using the --fpu option, but
ARM recommends you use --apcs. If floating-point
support is not permitted (for example, because --fpu=none is
specified, or because of other means), then /hardfp and /softfp are
ignored. If floating-point support is permitted and the softfp calling
convention is used (--fpu=softvfp or --fpu=softvfp+vfp...),
then /hardfp gives an error.
You must specify at least one qualifier.
If you specify more than one qualifier,
ensure that there are no spaces or commas between the individual
qualifiers in the list.
Procedure Call Standard for the ARM Architecture.
Compiler Reference:
Developing Software for ARM Processors: