sbsv1_os/e32toolp/docs/cedar-mostly-thumb.txt
author Ross Qin <ross.qin@nokia.com>
Thu, 30 Sep 2010 14:38:30 +0800
branchRCL_3
changeset 73 22bdd8a90cc4
permissions -rw-r--r--
synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
73
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     1
Intro.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     2
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     3
A new GCC98r2 platform/build target has been added to Cedar. This
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     4
platform is called ARM4T and implements the 'mostly thumb' build
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     5
policy. Under this policy user-side code is built in THUMB (ARMv4)
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     6
mode by default and kernel side code is built in ARM (ARMv4) mode with
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     7
no interworking support. These defaults can be overridden by various
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     8
means (see below). When the default is overridden both user and
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
     9
kernel-side code is built in ARM (ARMv4) mode with interworking
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    10
support.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    11
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    12
Overriding the default.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    13
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    14
The default can be overridden at project (MMP)and compontent (BLD.INF)
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    15
level and also interactively via a commandline argument to MAKMAKE.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    16
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    17
i) MMP 
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    18
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    19
A new keyword ALWAYS_BUILD_AS_ARM is introduced to the supported MMP
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    20
file syntax. This keyword takes no arguments. It applies only to
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    21
platforms that implement the 'mostly thumb' policy. In other words it
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    22
is ignored by other platforms (e.g. ARM4). 
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    23
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    24
ii. BLD.INF
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    25
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    26
A new qualifier, BUILD_AS_ARM, is introduced for MMP file statements
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    27
in the BLD.INF syntax. The syntax for such statements thus becomes:
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    28
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    29
PRJ_MMPFILES
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    30
[<mmp path>\<mmp file>] {<qualifiers>}
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    31
{MAKEFILE|NMAKEFILE} [<path>\<makefile>] {build_as_arm}
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    32
// <qualifiers> are tidy, ignore, build_as_arm
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    33
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    34
iii. MAKMAKE
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    35
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    36
MAKMAKE has been extended to accept the option -ARM. Supplying this
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    37
option has the same effect as if ALWAYS_BUILD_AS_ARM is supplied in
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    38
the MMP file.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    39
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    40
Build/Release Directory Structure.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    41
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    42
Build artefacts are placed in either UREL or UDEB beneath ARM4T in
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    43
both build and release trees whatever ISA is targeted. The exception
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    44
is import libraries. Because ARM4T only supports version 4 of the ARM
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    45
architecture different import stubs implementations are required for
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    46
each of the possible modes that clients can be compiled in (e.g. ARM
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    47
without-interworking vs ARM with-interworking vs THUMB). Therefore
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    48
import libraries are placed in the UREL sub-directory of ARM4, ARMI or
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    49
THUMB respectively within the release tree.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    50
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    51
Static Libraries.  
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    52
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    53
Static libraries are always built in ARM mode with interworking. A
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    54
consequence of this is that the linker (LD) will introduce veneers
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    55
into executables built in THUMB mode. The veneers are responsible for
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    56
switching mode (as appropriate). However the introduction of a veneer
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    57
has a small impact on code size. These two factors (i.e. static libs
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    58
being ARM and veneers) mean that an ARM4T THUMB executable will always
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    59
be slightly larger than if it had been built using the old THUMB build
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    60
target.
22bdd8a90cc4 synchronize from nokia internal Synergy depository buildtools/92, including fix to bugs 151,468,2049,1371,325,2539, etc.
Ross Qin <ross.qin@nokia.com>
parents:
diff changeset
    61