| |||
| Home > Using the ARM Compiler toolchain to build a Linux application or library > Differences in behavior and limitations between GCC and armcc emulation mode | |||
There are some differences in behavior between GCC and the emulation mode supported by armcc:
If no optimization level is specified, the GCC default
(-O0) is used.
If a GCC numeric optimization level (-O0 through -O3)
is used, this is translated into -O for armcc.
The GCC n -Otime-Os option translates as -O3 -Ospace.
To force the use of a specific armcc optimization
level, include the -Warmcc option. For example:
-Warmcc,-O1,-Ospace
Support for diagnostic control is limited. In particular,
warnings are suppressed by default (similar to GCC) and are re-enabled
with -W or -Wall. The -w option
(lower case -w) is supported to suppress warnings,
for example to override a -Wall earlier on the
command line. Other GCC -W… options are ignored.
If you require control of individual messages then you can use the
normal compilation tools options, such as -Warmcc,--diag_suppress and -Warmcc,--diag_error.
Many GCC options do not have an equivalent in armcc.
These include, for example, many of the -f... GCC
options that control optimization phases that are specific to the
GCC code generator, and are not applicable to armcc.
Any GCC options that do not have an equivalent in armcc are
silently ignored. To see the GCC options that are ignored, specify the
options -Warmcc --remarks.