author | Ross Qin <ross.qin@nokia.com> |
Thu, 30 Sep 2010 14:38:30 +0800 | |
branch | RCL_3 |
changeset 73 | 22bdd8a90cc4 |
permissions | -rw-r--r-- |
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 |