Sorry, your browser is not supported. We recommend upgrading your browser.
We have done our best to make all the documentation and resources available on old versions of Internet Explorer, but vector image support and the layout may not be optimal. Technical documentation is available as a PDF Download.
Arm Compiler Migration and Compatibility Guide Version 6.11
You copied the Doc URL to your clipboard.
Arm Compiler Migration and Compatibility Guide : Default differences
Some compiler and assembler options are different between Arm® Compiler 5 and Arm Compiler 6, or have different default values.
The following table lists these differences.
2-2 Differences in defaults
Arm Compiler 5
Arm Compiler 6
These defaults are similar but ‑fvisibility=hidden does not affect
extern declarations or symbol references. In Arm Compiler
6, symbols in the final image are hidden if the reference or the
definition is hidden. Therefore the visibility of the reference
alone does not determine the visibility of the symbol, as it does in
Arm Compiler 5.
The default floating-point linkage in Arm Compiler 5 depends on the specified processor. If the processor has floating-point hardware, then Arm Compiler 5 uses hardware floating-point linkage. If the processor does not have floating-point hardware, then Arm Compiler 5 uses software floating-point linkage. In Arm Compiler 6, the default is always software floating-point linkage.
The ‑mfloat‑abi option also controls the type of floating-point instructions that the compiler uses. ‑mfloat‑abi=softfp uses hardware floating-point instructions. Use ‑mfloat‑abi=soft to use software floating-point linkage and software library functions for floating-point operations.
‑‑enum_is_int is off by default in Arm Compiler 5, so the smallest data type that can hold the enumerator values is used. ‑fno‑short‑enums is the default in Arm Compiler 6, so the size of the enumeration type is at least 32 bits.
In Arm Compiler 5, armasm does not specify by
default that code in the input file can safely interwork between A32
and T32. In Arm Compiler 6, armasm
specifies interworking by default for AArch32 targets that support
A32 and T32 instruction sets.