ARM/THUMB overrides

The ARM5 architecture supports a 32-bit instruction set (known simply as ARM) and a 16-bit instruction set called THUMB. Code compiled to one set can interoperate with the other. The Symbian platform builds tools apply the following policy when building projects: kernel-side code is built for ARM, while other code (user-side) is built for THUMB. There are a number of ways to override this policy to build user-side code also for ARM:

  • MMP file: to specify that a project should always be built as ARM, use the following keyword in the mmp file:

    ALWAYS_BUILD_AS_ARM
  • BLD.INF file: you can also specify that a project should always be built as ARM by adding a qualifier, BUILD_AS_ARM, to MMP file statements in a BLD.INF file. For example:

    PRJ_MMPFILES
    ..\group\commdb.mmp BUILD_AS_ARM
    ..\group\ced.mmp

    means that commdb is built in ARM and ced in THUMB.

  • makmake: the makmake tool accepts an option -ARM that has the same effect as if ALWAYS_BUILD_AS_ARM were supplied in the MMP file.