You copied the Doc URL to your clipboard.


Requests that the compiler targets the A32 or ARM® instruction sets.

Different architectures support different instruction sets:

  • ARMv8-A processors in AArch64 state execute A64 instructions.
  • ARMv8-A processors in AArch32 state can execute A32 or T32 instructions.
  • ARMv7-A processors can execute ARM or Thumb instructions.

The -marm option targets the A32 (ARMv8-A AArch32 state) or ARM (ARMv7-A) instruction set. This is the default for the arm-arm-none-eabi target.


The -marm option is not valid with AArch64 targets, for example --target=aarch64-arm-none-eabi. The compiler ignores the -marm option and generates a warning with AArch64 targets.


The default for ARMv8-A AArch32 and ARMv7-A targets is -marm.

Related reference

Was this page helpful? Yes No