ROM Tools 13.1.0.1
Bug468 initialized static data built into a static library does not get initialized correctly
{\rtf1\ansi \deff4\deflang1033{\fonttbl{\f1\froman\fcharset2\fprq2 Symbol;}{\f4\froman\fcharset0\fprq2 Times New Roman;}{\f5\fswiss\fcharset0\fprq2 Arial{\*\falt arial};}{\f37\fmodern\fcharset0\fprq1 Lucida Console;}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\widctlpar \f4\fs20\lang2057 \snext0 Normal;}{\s1\sb360\sa240\keepn\pagebb\widctlpar \b\f5\fs40\lang2057\kerning28
\sbasedon0\snext0 heading 1;}{\s2\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs34\lang2057 \sbasedon0\snext0 heading 2;}{\s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 \sbasedon0\snext0
heading 3;}{\s4\sb120\keepn\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqr\tx9072 \b\f5\lang2057 \sbasedon0\snext0 heading 4;}{\s5\keepn\widctlpar \b\f5\fs20\lang2057 \sbasedon0\snext0 heading 5;}{\s6\sb240\sa60\widctlpar \i\f5\fs20\lang2057 \sbasedon0\snext0
heading 6;}{\s7\sb240\sa60\widctlpar \f5\fs20\lang2057 \sbasedon0\snext0 heading 7;}{\s8\sb240\sa60\widctlpar \i\f5\fs20\lang2057 \sbasedon0\snext0 heading 8;}{\s9\sb240\sa60\widctlpar \i\f5\fs18\lang2057 \sbasedon0\snext0 heading 9;}{\*\cs10 \additive
Default Paragraph Font;}{\s15\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670 \f37\fs16\lang2057 \sbasedon0\snext15 Code Paragraph;}{\*\cs16 \additive\f37\lang2057 \sbasedon10 Code;}{\*\cs17 \additive\i \sbasedon10
Emphasis;}{\*\cs18 \additive\b \sbasedon10 Warning;}{\s19\li567\keep\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536 \f37\fs20\lang1024 \sbasedon0\snext19 Indented Code;}{\s20\fi-284\li568\ri567\widctlpar{\*\pn \pnlvl11
\ulth\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 \sbasedon21\snext20 List Bullet;}{\s21\fi-284\li851\ri567\widctlpar \f4\fs20\lang2057 \sbasedon0\snext21 List;}{\s22\li567\ri567\widctlpar \f4\fs20\lang2057 \sbasedon0\snext22
List Continue;}{\s23\fi-284\li568\ri567\widctlpar{\*\pn \pnlvl10\pndec\ulth\pnstart1\pnindent283\pnhang{\pntxta ?}}\f4\fs20\lang2057 \sbasedon21\snext23 List Number;}{\s24\qc\widctlpar \f4\fs20\lang2057 \sbasedon0\snext24 Picture;}{
\s25\qc\sb240\sa240\widctlpar \b\f5\fs72\lang2057 \sbasedon0\snext25 Title;}{\s26\widctlpar\phmrg\posxr\posyt\dxfrtext181\dfrmtxtx181\dfrmtxty0 \f4\fs20\lang2057 \sbasedon0\snext26 Logo;}{\s27\sb1440\sa1200\sl-460\slmult0\widctlpar
\b\scaps\f5\fs40\lang2057 \sbasedon0\snext27 Subtitle;}{\s28\sl-200\slmult0\widctlpar \b\f5\fs20\lang2057 \sbasedon0\snext28 Version;}{\s29\widctlpar \f4\fs20\lang2057 \sbasedon0\snext29 Date Published;}{\s30\widctlpar \b\f4\fs20\lang2057
\sbasedon0\snext30 Copyright Header;}{\s31\widctlpar \f4\fs20\lang2057 \sbasedon0\snext31 Copyright Notice;}{\s32\sa1440\sl-960\slmult0\keepn\widctlpar \b\scaps\f5\fs40\lang2057 \sbasedon0\snext32 TOC Header;}{\s33\sb480\sa160\keepn\widctlpar\brdrt
\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f4\fs20\lang2057 \sbasedon0\snext0 toc 1;}{\s34\li221\sb120\keepn\widctlpar\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext0 toc 2;}{\s35\li442\widctlpar\tqr\tx9072 \f5\fs20\lang2057 \sbasedon0\snext0 toc 3;}{
\s36\li658\widctlpar\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext0 toc 4;}{\*\cs37 \additive\f5\uld\cf11 \sbasedon10 Hypertext Link;}{\s38\widctlpar\brdrr\brdrdb\brdrw15\brsp20 \f37\fs20\lang2057 \sbasedon0\snext38 Constant Definition;}{
\s39\widctlpar\tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 \sbasedon0\snext39 header;}{\s40\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext40 Even Footer Paragraph;}{\s41\widctlpar\tqc\tx4536\tqr\tx9072
\caps\f4\fs18\lang2057 \sbasedon0\snext41 Even Header Paragraph;}{\s42\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 \sbasedon39\snext42 footer;}{\*\cs43 \additive\b \sbasedon10 page number;}{\s44\widctlpar\brdrt
\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs20\lang2057 \sbasedon0\snext44 Odd Footer Paragraph;}{\s45\widctlpar\tqc\tx4536\tqr\tx9072 \caps\f4\fs18\lang2057 \sbasedon0\snext45 Odd Header Paragraph;}{\s46\widctlpar\brdrl\brdrs\brdrw30\brsp80
\f4\fs20\lang2057 \sbasedon0\snext46 Status;}{\*\cs47 \additive\i \sbasedon10 Glossary Reference;}{\s48\widctlpar \f4\fs20\lang2057 \sbasedon0\snext48 Compact;}{\*\cs49 \additive\f5 \sbasedon10 App Text;}{\s50\sb240\sa240\keepn\widctlpar
\b\f5\fs40\lang2057\kerning28 \sbasedon1\snext50 Heading 1 NoSection;}{\*\cs51 \additive\f5 \sbasedon10 Filename;}{\s52\fi-284\li1135\ri1134\widctlpar{\*\pn \pnlvl11\pnf1\pnstart1\pnindent283\pnhang{\pntxtb \'b7}}\f4\fs20\lang2057 \sbasedon0\snext52
List Bullet 2;}{\*\cs53 \additive\b \sbasedon10 Glossary Definition;}{\*\cs54 \additive\i \sbasedon10 Document Name;}{\s55\keep\keepn\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670 \f37\fs20\lang2057 \sbasedon0\snext0
Prototype;}{\*\cs56 \additive\scaps \sbasedon10 Key Name;}{\s57\widctlpar\tx567\tx1134\tx1701\tx2268\tx2835\tx3402\tx3969\tx4536\tx5103\tx5670 \f37\fs16\lang2057 \sbasedon0\snext57 Reduced Code;}{\s58\li851\ri851\keep\widctlpar\brdrt\brdrs\brdrw15\brsp20
\brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 \sbasedon0\snext0 Syntax;}{\s59\qc\sb240\sa240\keepn\widctlpar \b\f5\fs20\lang2057 \sbasedon0\snext59 Picture Title;}{\s60\fi-3119\li3119\widctlpar\tx3119 \f4\fs20\lang2057 \sbasedon0\snext60 Member List;}{\*
\cs61 \additive\i \sbasedon10 Syntax Element;}{\*\cs62 \additive\b\f37 \sbasedon10 Syntax Literal;}{\s63\widctlpar \f4\fs20\lang2057 \sbasedon0\snext63 annotation text;}{\*\cs64 \additive\b\f5\uld\cf11 \sbasedon10 Example Link;}{\s65\widctlpar
\b\f5\fs36\lang2057 \sbasedon0\snext65 TOC 0;}{\*\cs66 \additive\f37\cf2\lang2057 \sbasedon16 Resource Code;}{\s67\widctlpar \f5\fs20\cf6\lang2057 \sbasedon0\snext67 Converter Directive;}{\s68\widctlpar \b\f37\fs20\uldb\lang2057 \sbasedon0\snext0
Platform Dependency;}{\*\cs69 \additive\b\cf10 \sbasedon10 Raw HTML;}{\*\cs70 \additive\i\cf14 \sbasedon10 URL Reference;}{\s71\widctlpar \f5\fs20\ul\cf13\lang2057 \sbasedon0\snext0 Hypertext Anchor;}{\s72\widctlpar\brdrr\brdrs\brdrw45\brsp20
\f4\fs20\lang2057 \sbasedon0\snext72 Member Definition;}{\s73\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 \sbasedon0\snext73 Figure Picture;}{\s74\widctlpar\brdrl\brdrs\brdrw30\brsp80
\f4\fs20\cf5\lang2057 \sbasedon46\snext74 Comment;}{\s75\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \b\f4\fs20\lang2057 \sbasedon0\snext75 Figure Caption;}{\s76\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb
\brdrs\brdrw15\brsp20 \f4\fs20\lang2057 \sbasedon0\snext76 Figure Description;}{\s77\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f4\fs20\cf6\lang2057 \sbasedon73\snext77 Figure Status;}{\s78\li567\ri567\widctlpar\brdrt
\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20 \f5\fs20\ul\cf13\lang2057 \sbasedon0\snext78 Figure Anchor;}{\*\cs79 \additive\f5\uld\cf12 \sbasedon37 Figure Link;}{\s80\li567\ri567\widctlpar\brdrt\brdrs\brdrw15\brsp20 \brdrb\brdrs\brdrw15\brsp20
\i\f4\fs20\cf10\lang2057 \sbasedon73\snext80 Figure Directive;}{\s81\widctlpar \f4\fs20\lang2057 \sbasedon0\snext81 Body Text;}}{\info{\title Tools}{\subject Specifying projects with makmake}{\author Preferred Customer}
{\doccomm The model chapter document.\'0d\'0dHeaders & footers are different for even and odd pages.}{\operator Preferred Customer}{\creatim\yr1996\mo3\dy6\hr13\min48}{\revtim\yr2000\mo3\dy15\hr11\min47}{\printim\yr2000\mo2\dy23\hr18\min39}{\version2}
{\edmins10}{\nofpages2}{\nofwords436}{\nofchars2487}{\*\company Dell Computer Corporation}{\vern57395}}\paperw11907\paperh16840\margl851\margr851\margt1134\margb1134\gutter1134 \widowctrl\ftnbj\aenddoc\linkstyles\hyphcaps0\formshade \fet0\sectd
\binfsxn1\binsxn1\psz9\linex576\headery709\footery709\colsx709\endnhere {\header \pard\plain \s39\widctlpar\tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 {\field{\*\fldinst TITLE \\* MERGEFORMAT }{\fldrslt Tools}}\tab Company Confidential\tab
EON SDK, Copyright \'a9 2000, Symbian Ltd
\par }{\footer \pard\plain \s42\widctlpar\brdrt\brdrs\brdrw15\brsp20 \tqc\tx4536\tqr\tx9072 \f4\fs18\lang2057 {\field{\*\fldinst SUBJECT \\* MERGEFORMAT }{\fldrslt Specifying projects with makmake}}\tab Page {\field{\*\fldinst PAGE \\* MERGEFORMAT
}{\fldrslt {\lang1024 1}}}\tab Last saved {\field{\*\fldinst SAVEDATE \\* MERGEFORMAT }{\fldrslt {\lang1024 10/03/00 13:37}}}
\par }{\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta ?}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta ?}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta ?}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta ?}}{\*\pnseclvl5
\pndec\pnstart1\pnindent720\pnhang{\pntxtb ?}{\pntxta ?}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb ?}{\pntxta ?}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb ?}{\pntxta ?}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb ?}{\pntxta ?}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb ?}{\pntxta ?}}\pard\plain \s1\sb360\sa240\keepn\pagebb\widctlpar \b\f5\fs40\lang2057\kerning28 {\field\fldedit{\*\fldinst SUBJECT \\* MERGEFORMAT }{\fldrslt Build Tools
changes between ER5u and V6}}
\par \pard\plain \s74\widctlpar\brdrl\brdrs\brdrw30\brsp80 \f4\fs20\cf5\lang2057 this chapter summarizes major changes to the build system between e32toolp release 127 and e32toolp release 210.
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 UNICODEUID .mmp keyword no longer supported - use the UID keyword instead.
\par \pard\plain \widctlpar \f4\fs20\lang2057 The UNICODEUID keyword is no longer supported by Makmake. UIDs specified with the UID keyword now apply to UNICODE builds of the source rather than NARROW builds. This is possible because NARROW
builds are no longer supported.
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 PROJECT and SUBPROJECT keywords no longer supported - use New SOURCEPATH .mmp keyword instead.
\par \pard\plain \widctlpar \f4\fs20\lang2057 The SOURCEPATH keyword is intended to replace the PROJECT and SUBPROJECT keywords in {\f5 .mmp} files and thus remove the build tools\rquote
affiliation with a two-level source code tree. Either relative or absolute paths can be specified with the new keyword - relative paths will be considered relative to the directory containing the {\f5 .mmp} file, rather than the project\rquote
s top-level directory as paths specified with the SUBPROJECT keyword were.
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Default .def file location
\par \pard\plain \widctlpar \f4\fs20\lang2057 If the location for a {\f5 .def} file is not explicitly specified in a particular {\f5 .mmp} file with the DEFFILE keyword, then traditionally the location for this file has been {\cs51\f5 \\}{\cs51\i\f5 project\\}
{\cs51\f5 B}{\cs51\i\f5 <platform>}{\cs51\f5 . }Now that the PROJECT keyword is redundant in {\f5 .mmp} files the default location for {\f5 .def} files is ..{\cs51\i\f5 \\}{\cs51\f5 B}{\cs51\i\f5 <platform>}{\cs51\f5 , }relative
to the directory containing the {\f5 .mmp} file{\cs51\f5 .}
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Build directory structure
\par \pard\plain \widctlpar \f4\fs20\lang2057 This has changed from
\par \pard \fi720\widctlpar {\cs51\f5 \\EPOC32\\Build\\}{\cs51\i\f5 project\\executable_basename\\platform\\build\\
\par }\pard \widctlpar to
\par \pard \fi720\widctlpar {\cs51\f5 \\EPOC32\\Build\\}{\cs51\i\f5 absolute_path_to_mmp_file\\mmp_basename\\platform\\build}{\cs51\f5 \\
\par }\pard \widctlpar This change again relates to the redundancy of the PROJECT keyword and the build tree now better reflects the structure of the source code tree.
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 \\EPOC\\Make directory structure
\par \pard\plain \widctlpar \f4\fs20\lang2057 Makefiles generated via ABLD are now generated into the Build directory.
\par The old location was
\par \pard \fi720\widctlpar {\cs51\f5 \\EPOC32\\Make\\}{\cs51\i\f5 project\\platform\\}{\cs51\f5
\par }\pard \widctlpar and now it\rquote s
\par \pard \fi720\widctlpar {\cs51\f5 \\EPOC32\\Build\\}{\cs51\i\f5 absolute_path_to_mmp_file\\mmp_basename\\platform\\}{\cs51\f5
\par }\pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 \\EPOC\\Bldmake directory structure
\par \pard\plain \widctlpar \f4\fs20\lang2057 The files generated by BLDMAKE are now generated into the Build directory.
\par The old location was
\par \pard \fi720\widctlpar {\cs51\f5 \\EPOC32\\Bldmake\\}{\cs51\i\f5 project\\}{\cs51\f5
\par }\pard \widctlpar and now it\rquote s
\par \pard \fi720\widctlpar {\cs51\f5 \\EPOC32\\Build\\}{\cs51\i\f5 absolute_path_to_bld.inf_file\\}{\cs51\f5
\par }\pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Documentation
\par \pard\plain \fi720\widctlpar \f4\fs20\lang2057 Documentation for the build system is now exported to directory {\cs51\f5 \\EPOC32\\EngDoc}{\cs51\i\f5 \\}{\cs51\f5
\par }\pard \widctlpar
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 Test Exports
\par \pard\plain \widctlpar \f4\fs20\lang2057 A new section has been added to BLD.INF files which allows for the exporting of files from source for use with test code with command ABLD TEST EXPORT. This section is demarcated with the PRJ_TESTEXPORTS keyword.
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 ABLD LISTING
\par \pard\plain \widctlpar \f4\fs20\lang2057 The new ABLD LISTING command replaces the LISTASM utility for generating assembler code listings for source code files due to the difficulty in LISTASM coping with the new BUILD directory structure.
\par Type ABLD HELP LISTING for the syntax of this command.
\par \pard\plain \s3\sb120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \tqr\tx9072 \b\f5\fs28\lang2057 GetOpt
\par \pard\plain \widctlpar \f4\fs20\lang2057 All the build system PERL scripts from E32toolp now use the GetOpt command-line parsing module from the PERL standard library.
This means that options on command-lines for all these tools must be flagged with a hyphen (-) rather than a forward slash (/).
\par }