Fix these errors:
Some cases of PREQ1230 fail because of buildrom issue
rombuild crashs when create ext-romimage
readimage crashes on reading wk42 vasco_ui core image
vc2008 compiling issues
Version 2.19.1 (ROMBUILD)===============Released by Ross Qin, 30/11/2010 1) ou1cimx1#653168 - rombuild crashs when create ext-romimageVersion 2.2 build(3) (readimage)===============Released by Ross Qin, 30/11/2010 1) ou1cimx1#651824 - [MCL]readimage crashes on reading wk42 vasco_ui core image Version 2.19.0 (ROMBUILD)===============Released by Marvin Shi, 17/11/2010 1) feature symbol file generation from log fileVersion 2.17.0 (ROFSBUILD)===============Released by Marvin Shi, 17/11/2010 1) feature bsym format symbol file generation for rofsbuildVersion 2.16.2 (ROFSBUILD)===============Released by Ross Qin, 02/11/2010 1) Fix the issue of file missing due to too many files under a folderVersion 2.16.1 (ROFSBUILD)===============Released by Marvin Shi, 25/10/2010 1) ou1cimx1#627682 Rofsbuild hangs with "-loginput" option on linux=======Version 2.16.0 (ROFSBUILD)===============Released by Marvin Shi and Jason Cui, 21/10/2010 1) Concurrent symbol generation.Version 2.15.0 (ROFSBUILD)===============Released by Lorence Wang, 20/10/2010 1) Volume Serial NO. for FAT image.Version 2.18.4 (ROMBUILD)Version 2.14.2 (ROFSBUILD)===============Released by Ross Qin, 15/10/2010 1) ou1cimx1#616869 Copyright Info missing in symbolgenerator.*/Romtools source codes are not VC friendlyVersion 2.18.3 (ROMBUILD)Version 2.14.1 (ROFSBUILD)===============Released by Lorence Wang, 19/09/2010 1) ou1cimx1#498436 rombuild prompt 2 warnings when there's an unknown keyword in oby.Version 2.14.0 (ROFSBUILD)===============Released by Lorence Wang, 17/09/2010 1) Whole directory support in FAT.Version 2.13.3 (ROFSBUILD)===============Released by Lorence Wang, 13/09/2010 1) ou1cimx1#563537 Rofsbuild generates the log file for smr image and datadrive image in wrong locationVersion 2.13.2 (ROFSBUILD)===============Released by Jason Cui, 25/08/2010 1) ROFSBUILD generates 0-length log file.Version 2.18.2 (ROMBUILD)===============Released by Lorence Wang, 20/08/2010 1) ou1cimx1#537227 Rombuild crashed when "compress" and "unpageddata" coexistVersion 2.18.1 (ROMBUILD)Version 2.13.1 (ROFSBUILD)===============Released by Lorence Wang, 10/08/2010 1) Add -logfile=<file> option to specify log fileVersion 2.18.0 (ROMBUILD)===============Released by Jason Cui, 28/07/2010 1) UTF-8 OBY SupportVersion 2.13.0 (ROFSBUILD)===============Released by Jason Cui, 28/07/2010 1) UTF-8 OBY SupportVersion 2.12.4 (ROFSBUILD)===============Released by Lorence Wang, 23/07/2010 1) Cluster size support Version 2.12.3 (ROFSBUILD)===============Released by Marvin Shi, 09/07/2010 1) ou1cimx1#471304 Rofsbuild fails to build SMR image with non-HCR content Version 2.12.2 (ROFSBUILD)===============Released by Lorence Wang, 09/07/2010 1)Rofsbuild build empty FAT image.Version 2.17.4 (rombuild)===============Released by Lorence Wang, 06/07/2010 1)Rombuild generates ROM dependency including Paged and Unpaged section.Version 2.12.1 (ROFSBUILD)===============Released by Lorence Wang, 30/06/2010 1)Rofsbuild cache test case failed defect.Version 2.12.0 (ROFSBUILD)===============Released by Jason Cui, 13/06/2010 1)Large FAT image support in RofsbuildVersion 2.11.5 (ROFSBUILD)===============Released by Jason Cui, 10/06/2010 1)Empty Directory Support in FAT ImageVersion 2.10.5 (rofsbuild)===============Released by Lorence Wang, 01/06/2010 1) DPDEF145488 ROFSBUILD crash on extension image creationVersion 1.1.1 (fixupsym.pl)===============Released by Lorence Wang, 12/05/2010 1) DPDEF145440 fixupsym cannot startupVersion 2.17.3 (rombuild)Version 2.10.4 (rofsbuild)===============Released by Lorence Wang, 12/05/2010 1) DPDEF145436 ROMBUILD and ROFSBUILD cannot take OBY filename from command lineVersion 2.17.2 (rombuild)===============Released by Lorence Wang, 05/05/2010 1) DPDEF145420 rombuild fails on TB10.1 vasco_ui core image creation Version 2.10.3 (rofsbuild)===============Released by Lorence Wang, 29/04/2010 1) DPDEF145380 Small letters are changing to capital letters in folder and file names 2) DPDEF145381 Voide guidance file names are corrupted with following wayVersion 2.10.2 (rofsbuild)===============Released by Lorence Wang, 20/04/2010 1) DPDEF145346 rofsbuild crashs if ROFS partition is too small Version 2.10.1 (rofsbuild)Version 2.17.1 (rombuild)===============Released by Ross Qin, 12/04/2010 1) DPDEF145300 Rombuild hangs in S60 2010wk13 vasco_ui rom building Version 2.10.0 (rofsbuild)Version 2.17.0 (rombuild)===============Released by Ross Qin, 09/04/2010 1) DPDEF145281 Paged meaning change Version 2.9.5 (rofsbuild)Version 2.16.1 (rombuild)===============Released by Ross Qin, 29/03/2010 1) RDPDEF145196 rombuild/rofsbuild has extension rom/rofs recognition issues Version 2.16.0 (rombuild)===============Released by Ross Qin, 26/03/2010 1) RM-RIM406-1232: BU: MAKSYMROFS IntegrationVersion 2.9.4 (rofsbuild)===============Released by Lorence Wang, 25/03/2010 1) DPDEF145165 S60 build break caused by latest Buildrom.Version 2.15.3 (rombuild)Version 2.9.3 (rofsbuild)===============Released by Zheng Shen, 16/03/2010 1) DPDEF144882 buildrom, rombuild,rofsbuil -keepgoing optionVersion 2.15.2 (rombuild)Version 2.9.2 (rofsbuild)Version 2.2 build(2) (readimage)===============Released by Zheng Shen, 10/03/2010 1) DPDEF144887 [System build] : NE1 smoketest not booting up for TB92SF_1069 vtb92sf buildVersion 2.15.1 (rombuild)Version 2.9.1 (rofsbuild)Version 2.2 build(1) (readimage)===============Released by Zheng Shen, 05/03/2010 1) DPDEF144535 remove -fastcompress option for rombuild/rofsbuildVersion 2.15.0 (rombuild)Version 2.9.0 (rofsbuild)Version 2.2 build(0) (readimage)Version 1.1.0 (maksym)Version 1.1.0 (maksymrofs)Version 1.1.0 (hpsym)Version 1.1.0 (fixupsym)===============Released by Zheng Shen, 22/02/2010 1) DPDEF144562 Build Tools cannot be built in LinuxVersion 2.14.3 (rombuild)================(Made by Zheng Shen, 08/02/2010) 1. DPDEF143270 -compress=paged is not supported by buildrom/rombuildVersion 2.14.3 (rombuild)================(Made by Marvin Shi, 25/01/2010) 1. DPDEF143859 Bitwise compatible bytepair algorithm updateVersion 2.8.4 (rofsbuild)================(Made by Marvin Shi, 19/01/2009) 1. DPDEF143713 TSW error CSTI-7X4GHW: Buildtool creates invalid long names in FAT images 2. DPDEF143834 Creating multiple rofs images encounters a problem and rofsbuild failed 3. DPDEF143859 Bitwise compatible bytepair algorithm update Version 2.8.3 (rofsbuild)================(Made by Zheng Shen, 06/01/2009) 1. DEF143442 rofsbuild hangs occasionally with -symbols Version 2.8.2 (rofsbuild)================(Made by Zheng Shen, 09/12/2009) 1. DPDEF143314 rofsbuild cannot generate FAT16 files Version 1.0.1 (fixupsym)================(Made by Marvin Shi, 23/11/2009) 1. DPDEF142869 Fixupsym failed for romutl.pm cannot be found Version 2.14.2 (rombuild)================(Made by Marvin Shi, 18/11/2009) 1. DEF142972 buildrom produces garbled logs Version 2.8.1 (rofsbuild)================(Made by Marvin Shi, 17/11/2009) 1. DPDEF142921 TSW error CSTI-7X4GHW: Buildtool creates invalid long names in FAT images Version 2.8.0 (rofsbuild)================(Made by Marvin Shi, 13/11/2009) 1. RM-RIM406-1233: BU: MAKSYMROFS IntegrationVersion 2.7.0 (rofsbuild)===============Made by Zhi Dou 03/11/20091. RM-RIM406-1228: BU: ROFSBUILD CacheVersion 2.14.1 (rombuild)===============Made by Zhi Dou 02/11/20091. DEF142739 - rombuild.exe displays bogus error messages when trailing REM statement presentVersion 2.14.0 (rombuild)===============Made by Zhi Dou 26/10/20091. RM-RIM406-1263: BU: Visual ROM LayoutVersion 2.13.4 (rombuild)===============Made by Zhi Dou 19/10/20091. Minor change for copyright from SPL to EPL.Version 2.6.5 (rofsbuild)===============Made by Zhi Dou 19/10/20091. Minor change for copyright from SPL to EPL.Version 2.6.4 (rofsbuild)===============Made by Zhi Dou 14/10/20091. DPDEF142516 rofsbuild somtimes crash when building rofs image for tube with many times.Version 2.13.3 (rombuild)===============Made by Ross Qin 14/09/20091. DPDEF141843 Coverity defects about Resource Leak and Delete Array. Version 2.6.3 (rofsbuild)===============Made by Ross Qin 14/09/20091. DPDEF141843 Coverity defects about Resource Leak and Delete Array. Version 2.6.2 (rofsbuild)===============Made by Ross Qin 10/09/20091.DPDEF141840 ROFSBUILD is not processing "-s<log|screen|both>" and "-loglevel<012>" correctly Version 2.6.1 (rofsbuild)===============Made by Ross Qin 07/09/20091.DPDEF141838 rofsbuild behaves differently from rombuild when invalid numbers given Version 2.13.2 (rombuild)===============Made by Ross Qin 07/09/20091.DPDEF141838 rofsbuild behaves differently from rombuild when invalid numbers given 2.DPDEF141291 Update unpaged memory overflow error message of rombuild.exeVersion 2.13.1 (rombuild)===============Made by Ross Qin 03/09/20091.DPDEF141685 Low error privilege for Kernel/variant/extension links to non-extensionVersion 2.6.0 (rofsbuild)===============Made by Ross Qin 26/08/20091. REQ11940 Parallel processing - ROFSBUILDVersion 2.13.0 (rombuild)===============Made by Ross Qin 26/08/20091. REQ12560 Parallelise Content Preparation - ROMBUILD2. REQ13102 Parallelise Image Generation - ROMBUILDVersion 2.1.603 (readimage)===============Made by Ross Qin 24/08/20091. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.Version 2.12.2 (rombuild)===============Made by Ross Qin 24/08/20091. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.Version 2.5.3 (rofsbuild)===============Made by Ross Qin 24/08/2009 1. DPDEF141076 Memory leak in rofsbuild 2. DPDEF141624 Coverity reports delete array in C++ without [] and deadcode.Version 2.1.602 (readimage)===============Made by Zhi Dou 19/08/2009 1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' Version 2.12.1 (rombuild)===============Made by Zhi Dou 19/08/2009 1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' Version 2.5.1 (rofsbuild)===============Made by Zhi Dou 19/08/2009 1. DPDEF141566 Textshell ROM fails to build due to 'cannot open obey file' Version 2.5.0 (rofsbuild)===============Made by Zhi Dou 31/07/2009 1. PREQ2465's REQ12562 Byte-pair compression updateVersion 2.12.0 (rombuild)===============Made by Zhi Dou 31/07/2009 1. PREQ2465's REQ12562 Byte-pair compression updateVersion 2.4.1 (rofsbuild)===============Made by Zhi Dou 29/07/2009 1. DPDEF141175 - Removal of the "-w" option in imgtools .mmp files results in a lot of warnings Version 2.11.2 (rombuild)===============Made by Zhi Dou 29/07/2009 1. DPDEF141175 - Removal of the "-w" option in imgtools .mmp files results in a lot of warnings Version 2.11.1 (rombuild)===============Made by Zhi Dou 27/07/2009 1. DPDEF141013 ROMBUILD should prevent kernel extensions linking to user side Version 2.11.0 (rombuild)===============Made by Zhi Dou 21/07/2009 1. PREQ2465's REQ11939 Warnings for unpaged memory size overflowsVersion 2.10.0 (rombuild)===============Made by Zhi Dou 20/07/2009 1. REQ13110 HCR file in ROM (ROMBUILD)Version 2.4.0 (rofsbuild)===============Made by Zhi Dou 20/07/2009 1. REQ13111 HCR file in a separate NAND partition (ROFSBUILD)Version 2.1.602===============Made by Vino Jose 10/07/20091. ChrisN 1. MILESTONE: SymTB9.2, GT0419, MS3.36, DS.1815 PREQ2621 System Architecture Relocating header files - K&HS supportVersion 2.1.601===============Made by DeleOgunjumelo 15/01/20091. JonCo 1. MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11822: WDP support for SBSv1 2. MILESTONE: Diran, GT0421, MS3.20, DS1210, REQ11823: WDP support for romtools PREQ1954 Writeable data paging: prototype release Version 2.1.600===============Released by Kun Xu, 20/06/2008 1. DEF122540: Slight issue with readimage and sis files that specify a drive letter.Version 2.1.599===============Released by Kun Xu, 17/06/2008 1. DEF122721 READIMAGE:Files are extracted in 'reftsp.ini' directory for an ROFS image.Version 2.1.598===============Released by Kun Xu, 02/06/2008 1. DEF122243: ROMBuild deal with file contain line more than 255 characters incorrectly Version 2.1.597===============Released by Kun Xu, 02/06/2008 1. DEF122827: Rom build failure with _ONENAND switch 2. DEF119470: ROFSBUILD hangs when an empty OBY file is passed as input 3. DEF122024: Many warnings when compiling readimage tool with MSVC++ 6.0 4. DEF122533: ROFSBUILD loglevel2 generates logs which don't work for interpretsisVersion 2.1.596===============Released by ReubenH, 12/05/2008 1. DEF115401: Incomplete validation of data in loader Version 2.1.595===============Released by Mool Chand Tyagi, 13/12/2007 1. PDEF115166 Symbian rombuild.exe work incorrectly when compression is usedVersion 2.1.594===============Released by Tamilarasu Byran, 04/12/2007 1. PDEF114692: elf2e32 - failed to report relocation data.Version 2.1.593===============Released by Tamilarasu Byran, 07/11/2007 1. DEF113140: Buildrom fails with error "Use the keyword 'romsize' " for extension ROFS image.Version 2.1.592===============Released by Madhu, 31/10/2007 1. PDEF107501: readimage is not able to display output of the patched dll.Version 2.1.591===============Released by Tamilarasu Byran, 26/10/2007 1. INC112577: Readimage tool crashes when run on S60 3.2 rom image.Version 2.1.590===============Released by Tamilarasu Byran, 25/10/2007 1. DEF107096: Postlinker ignores references to imports from the data segment. 2. DEF112586: Buildrom fails while building extension rofs image.Version 2.1.589===============Released by Saurabh, 11/10/2007 1. INC112241: Operator precedence bug in Rombuild Version 2.1.588===============Released by Moolchand, 10/10/2007 1. PDEF109724: Rombuild/Rofsbuild should warn if dll or exe is located outside standard paths Version 2.1.587===============Released by Saurabh, 03/10/2007 1. DEF111903: Elf2e32 GT warning base e32 Version 2.1.586===============Released by Madhu, 28/09/2007 1. PDEF102323: rofsbuild crashes without generating appropriate error message Version 2.1.585===============Released by Tamilarasu Byran, 25/09/2007 1. DEF111695: Data drive image generation failed 2. DEF104630: elf2e32 crashesVersion 2.1.584===============Released by AndrewSmi, 09/08/20071. AndrewSmi 1. DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCLVersion 2.1.583===============Released by Tamilarasu Byran, 08/08/2007 1. DEF106861: Specifying a compression method in buildrom doesn't workVersion 2.1.582===============Released by MiguelB, 06/06/20071. Andrew Haigh 1. PREQ1426: Added Debuggable bitfield to E32 header and associated changesVersion 2.1.581===============Released by ???, dd/mm/yyyy1. SivashankarN 1. EC114: Core OS: Enhance File Server to solve 1085/1086 interoperability issue. Enhanced rofsbuild tools to handle the special attributes to create the rofs imageVersion 2.1.580===============Released by JonC, 03/04/2007 1) DEF104558 ELF2E32 should build dynamically for TOOLS2 rather than statically for TOOLSVersion 2.1.579===============Released by KunalM, 27/03/2007 1) Seclib built as part of the system buildVersion 2.1.578===============Released by KunalM, 20/03/2007 1) ROM building tools (ROMBUILD,ROFSBUILD) ported to the TOOLS2 platform, under PREQ1182, MS3.1Version 2.00.577==========================(Made by SushmitaR, 19/03/2007)1) OlegI DEFECT FIX: PDEF102522: DP: unhandled exception readimage.exe when using a XIP ROM paged core image Version 2.1.576===============Released by KunalM, 06/03/2007 1) Build tools (elfdump,uidcrc) ported to the TOOLS2 platform, under PREQ1182, MS3.6.2 2) Seclib and Zlib added as pre-built libraries in the MCL for TOOLS2Version 2.00.575==========================(Made by JonathanM, 07/02/2007)1) JonathanM DEFECT FIX: DEF101095: DP: Rofsbuild doesn't support paged, unpaged and pagingoverride keywordsVersion 2.00.574==========================(Made by Dusko, 12/12/2006)1) Dusko DEF097419: DemandPaging:Keywords paged/unpaged are case sensitiveVersion 2.00.573==========================(Made by Dusko, 11/10/2006)1) Dusko DEF095506: Change in behaviour for 0 length files (rofsbuild)Version 2.00.572==========================(Made by Dusko, 27/09/2006)1. Dusko DEF093537: Re-Introducing warnings when creating demand paged ROMs2. RajeswariR DEF087061 : PR0104 test failures - Incorrect function call, incorrect msg checking DEF088937: Incorrect usage of $ChopSrcPath in cl_bpabi.pm. DEF091008: ignorenoncallablefunction not supported in ABIV2 mode toolchain. DEF093342: Symbol name for absent exports present in the DSO file. DEF093344: ABIV2 fixup should not happen for export table relocation entries in postlinker. DEF093345: Support for no exception compiler option in the ABIV2 mode toolchain. DEF094731: Workaround to handle ARM linker veneer problem. Version 2.00.571==========================(Made by RichardC, 13/09/2006)1. RichardCo 1. DEF093954: GetSecurityInfo does not support opening unicode filenames 2. DEF092758: E32ImageFile::Open does not support opening unicode filenamesVersion 2.00.570==========================(Made by Dusko, 05/09/2006)1. Dusko INC088317 Elftran crashes during compilation of ARMV5 dll Version 2.00.569==========================(Made by JonathanM, 01/09/2006)1. DanH 1. DEF091669: Several rombuild problems in demand paged roms. Fixed various rombuild problems with different demand paging configurations, including unhandled exceptions with certain edge cases and missing support for the 'alwayspage' value for the pagingoverride keyword.Version 2.00.568==========================(Made by Dusko, 23/08/2006)1. Dusko DEF092459: Warnings when creating demand paged ROMsVersion 2.00.567==========================(Made by ????, ??/??/2006)1. AttilaV 1. DEF090973: elf2e32 can't dump header of a byte pair compressed binary Added missing image header wirting code fragment into e32imagefile.cpp E32ImageFile::WriteImage()method Bytepair compressed image generation branch. Added new case: branch for display bytepair compression method in t the imgdump.cpp E32ImageFile::DumpHeader method. 2. DEF091564: Spurious warnings when using BytePair compression. In \e32tools\e32image\e32image.cpp there are spuriou 'warning' messages whenever BytePair compression is used in "ostream& operator<<". These should be deleted. Version 2.00.566==========================(Made by RobertJ, 20/07/2006)1. DanH 1. DEF090813: Rofsbuild has warnings when creating demand paged ROMs Added support for paged/unpaged attributes in rofsbuild. No action is taken with these attributes yet (not needed until "Code Paging" support is added) but the warnings have been removed when DP ROMs are created.Version 2.00.565===========================(Made by DmitryL, 28/06/2006)1. AttilaV 1. DEF088473: ELF2E32 tool terminates if --compressionmethod bytepair CLI parameter presents Fixed an uninitialised pointer use at create byte pair compressed executable image.Version 2.00.564===========================(Made by Dusko, 19/06/2006)1. JohanG DEF088447 Change in the rom log file format breaks CW debugging ...Version 2.00.563===========================(Made by Dusko, 19/06/2006)1. JohanG 1. DEF079348: ROMBUILD doesn't always fail cleanly on OOM 2. DEF083206: elftran only dumps inferred relocations, not code or dataVersion 2.00.562===========================(Made by DjordjeK, 06/06/2006)1. AttilaV 1. DEF081770: The Loader should verify compression type.Version 2.00.561===========================(Made by DavidM, 26/05/2006)1. AttilaV Milestone: Argus,GT0286,MS3.2 Extended PETRAN, ELFTRAN, ELF2E32, ROMBUILD, ROFSBUILD to handle new compression method Byte Pair and new executable image compressed by the new compressionVersion 2.00.560===========================(Made by DuskoJ, 30/05/2006)1) SatyakamM DEF083920: Rofsbuild crashes on using patchdata for ABIV2 DLL (ABIV1 works fine)Version 2.00.559===========================(Made by DuskoJ, 13/04/2006)1) Dusko DEF083116 Validaterel always fails Version 2.00.558===========================(Made by DuskoJ, 16/03/2006)1) JonC DEF082002 - EVALID can't deal with case differences in ARMV5 DLLVersion 2.00.557===========================(Made by JonathanM, 06/03/2006)1) JonathanM MILESTONE: Argus GT0286, MS3.1 PREQ209 Demand Paging Prototype. First delivery of demand paging prototype. Delivery step DS204.Version 2.00.556===========================(Made by KuldipN, 08/02/2006)1) KuldipN DEF078510 buildrom does not validate new XML files DEF077827 buildrom feature management - should disallow default ranges with extra flags Version 2.00.555===========================(Made by DuskoJ, 24/01/2006)1) DuskoJ DEF075849 Feature registry API returning error when featreg.cfg file is greater than 64KB DEF077941 VA_* macros cannot be used with GCCE Version 2.00.554===========================(Made by JonathanM, 04/01/2006)1) JonathanM PREQ1030 - Kernel support for device driver test suites - Generic Logging Engine. This adds support for the following keywords into ROMBUILD: btrace, btracemode and btracebuffer See base/documentation/Base_How_To_BTrace.docVersion 2.00.553===========================(Made by KuldipN, 21/10/2005)1) KuldipN PREQ1086 - Device Feature Management (DS 069)Version 2.00.552===========================(Made by KuldipN, 12/10/2005)1) KuldipN PREQ1028 - Plug-in compiler integration (DS 063)Version 2.00.551===========================(Made by KuldipN, 06/10/2005)1) KuldipN PREQ1085 Flexible device ROM configurationVersion 2.00.550===========================(Made by KuldipN, 14/09/2005)1) KuldipN REQ5412: Enhance ROM tools compression options (part of PREQ1192)Version 2.00.549===========================(Made by DuskoJ, 12/07/2005)1) RajeswariR DEF065105 Using GCC-E should not require modification of existing bld.inf files DEF063447 Postlinker crashes with unsupported outfileVersion 2.00.548================(Made by JonC, 21/07/2005)1) JonC PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functionsVersion 2.00.547===========================(Made by DuskoJ, 13/07/2005)1) Dusko DEF063791 ROFSBUILD resets main ROFS file attributes when processing a ROFS extensionVersion 2.00.546===========================(Made by DuskoJ, 01/07/2005)1) Dusko DEF062362 PE_DUMP does not report all significant content in NSIS files DEF064173 secdump.exe blows up when you try and use it Version 2.00.545===========================(Made by KuldipN, 22/06/2005)1) KuldipN DEF060825 PR0104: Addition of GCCE support to CodeWarrior Version 2.00.544===========================(Made by KuldipN, 10/06/2005)1) KuldipN DEF062125 PR104: Custom DLL generation is failing Version 2.00.543===========================(Made by DuskoJ, 10/06/2005)1) Dusko DEF061701 Petran.exe can crash on certain non E32 filesVersion 2.00.542===========================(Made by KuldipN, 27/05/2005)1) KuldipN PREQ413 Changes to support the GCCE toolchain. PREQ414 Enable Commercial Compatible Compilers DEF061420 Elf2e32 ProblemsVersion 2.00.541===========================(Made by DuskoJ, 27/05/2005)1) BalaT DEF060837 RVCT2.2 emits unresolved symbols which ELFTRAN does not notice.Version 2.00.540===========================(Made by KuldipN, 11/05/2005)1) KuldipN DEF060826 - PR0104 - PostLinker Memory LeaksVersion 2.00.539===========================(Made by KuldipN, 3/05/2005)1) KuldipN PREQ413 - Changes to support the GCCE toolchain.Version 2.00.538===========================(Made by BalaT, 1/04/2005)1) BalaT DEF058002 - [System Build] Failed to build EIKCORE.DLL using RVCT2.2 Version 2.00.537===========================(Made by MiguelB, 1/03/2005)1) MiguelB DEF055301 - ROFSBUILD, COREIMAGE keyword: problem with single-char files/directories Version 2.00.536===========================(Made by Bala, 22/02/2005)1) Bala PREQ1027 Submission of RVCT 2.2 Run-Time ABI Compliance to MCLVersion 2.00.535===========================(Made by Dusko, 21/02/2005)1) BalaT DEF051265 Problems debugging .cia files in ARMV5 builds.Version 2.00.534===========================(Made by Dusko, 19/01/2005)1) Dusko DEF052809 - GENSTUB ERROR: can't open output file....Version 2.00.533===========================(Made by Dusko, 23/11/2004)1) BalaT 1) DEF051128 - armv5 library build in parallel cause conflictsVersion 2.00.532===========================(Made by KamranN, 11/11/2004)1) KamranN 1) Fix for defect DEF051421 Problems with binary search in ROFS Version 2.00.531===========================(Made by Dusko, 08/10/2004)1) BalaT 1) DEF047934 - ROMBUILD:EXE corrupts ROM directory of an extension ROM Version 2.00.530===========================(Made by Dusko, 04/10/2004)1) BalaT 1. Fix for DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib files.Patch to Version 2.00.529===========================(Made by ???, ??/??/2004)1. JonathanM 1. Fix for -dump option in PETRAN.Patch to Version 2.00.529===========================(Made by MichaelP, 27/08/2004)1. JonathanM 1. Defect Fix: DEF048051 - ROMBUILD can when PlatSecEnforceSysBin is ONVersion 2.00.529===========================(Made by KuldipN, 25/08/2004)1. NaheedA 1. DEF047579 - petran fails to report a corrupted input file. 2. DEF046271 - EVALID cannot cope with differing temp paths present in some ARMV5 .lib filesPatch to Version 2.00.528===========================(Made by JonathanM, 19/08/2004)1. JonathanM 1. Defect Fix: DEF048015 - [System Build] ROMs failed to build for MCL 03344 8.1b/9.0Version 2.00.528===========================(Made by DjordjeK, 18/08/2004)1. JonathanM 1. Added -dump option to PETRAN and ELFTRAN to select what information should be displayed about an image file. This takes a string argument consisting of letters to select the information to be dumped: h All header info s Platform Security info c Code section d Data section e Exports i Imports These letters can be used in any combinations, e.g. "PETRAN -dump ie foo.exe" will show all Imports and Exports of FOO.EXEVersion 2.00.527===========================(Made by JonathanM, 26/07/2004)1. JonathanM 1. Added PlatSecEnforceSysBin setting to ROMBUILD which forces all binary files to be placed under the \sys\bin\ directory. Part of Yankee,GT0217,MS3.1.4 PS6.3.2 Ignore path information for binary files within ROM build and loader.Version 2.00.526===========================(Made by JonathanM, 26/05/2004)1. DennisM 1. Fixed defect DEF041434 EKA2 ROMBUILD can't build extension ROMs 2. ROMBUILD now checks that kernel side code doesn't link to user side code, and vice-versa.Version 2.00.525================Made by Dusko, 18/05/20041) Dusko 1) Fix for DEF045146 EVALID does not correctly handle ARMV5 lib files or RVCT .MAP files.Version 2.00.524================Made by JonC, 29/04/20041) Jon Fixes for: 1) DEF044567 gendirective obtains ELF section header data incorrectly 2) DEF044048 RVCT version of DEF2DLL camplains about DLLs not having exports Version 2.00.523===========================(Made by JonathanM, 19/03/2004)1. JonathanM 1. Implemented the requirements: REQ2632 - Configurability of the enforcement of capabilities REQ2633 - Security violation diagnostic REQ3142 - Associate Platform Security information with an executable. See /cedar/generic/base/documentation/Base_How_To_Configure_Platform_Security_Settings.docVersion 2.00.522===========================(Made by JonathanM, 26/02/2004)1) JonathanM 1) Modifications made for implementation of Change Request JDOD-5VUJ7F - Change in executable format of EKA2 binaries. 2) Tools now use the sytax "cap1+cap2+cap3" to specify a named set of capabilities (Rather than specifying a single hexadecimal number.) 3) Added three new keywords to ROMBUILD: PlatSecEnforcement PlatSecDiagnostics PlatSecDiasabledCaps cap1+cap2+cap3 these are used for specifying Platform Security settings which are then placed in the ROM Header.Version 1.00.521================Made by DuskoJ, 16/02/20041) Dusko 1) Fix for DEF042440 - elfdump creates a new file with zero length.Version 2.01.520================Made by AndrewJ, 13/02/20041) StephanGu Implemented CLCT-5VEK4P - "Binary search in ROFS together with 'expanding ROFS entries with UIDs'". Changed Rofsbuild to provide a sorted array of offsets in order to allow the file system to perform binary search through the image. Also expended the TRofsEntry structure to include a copy of the file UID data.Version 2.01.519================Made by DuskoJ, 30/01/20041) Jon 1) Fix for - DEF040324 PETRAN access violation whilst converting THUMB build EXEDLL (Further amendment).Version 2.01.518================Made by DuskoJ, 22/01/20041) Kuldip 1) Fix for DEF40965 Changes to stop overwriting readonly attribute for directories.Version 2.01.517================Made by DuskoJ, 05/01/20041) Kuldip Fix for DEF039055 "Change in behaviour for 0 length files"Version 2.01.516================Made by DuskoJ, 19/12/20031) Dusko 1) fix for DEF039365 - Petran ignores -fixed keyword Version 2.01.515================Made by Dusko, 17/12/20031. Kuldip 1) REQ1733, A3.2 Improved Command Line Build Tools ROFSBUILD ROM flexing, Automatic sizing behaviour Automatic XIP-extension OBEYFILE, header generationVersion 2.01.514================Made by Dusko, 24/11/20031. Dusko 1) DEF039411 pediff does not ignore the header CRC File changed pediff.cppVersion 2.01.513================Made by Dusko, 03/11/20031. Dusko 1. fix for DEF039536 Non existing files referenced in Tools_e32tools.mrp...1) William 1) Added PE_DUMP to support the new EVALID.Version 2.01.512================Made by Dusko, 10/10/20031. Dusko 1. Zephyr,PRO0085,REQ1663, Remove dependencies on MSDEV Changes to BIN2COFF and WVECONV in order to build with CWVersion 2.01.511================Made by Dusko, 02/10/20031. Dusko 1. fix for DEF037065 Problem with error message from uidcrcVersion 2.01.510================Made by Dennis, 24/09/20031. Dennis 1. ROMBUILD adds sorted offsets to directory structures to enable binary searching of the ROM file system. 2. Implemented CR ATHE-5PZEAU (Add Version Numbers to Symbian OS Executables).Version 1.00.505================Made by DuskoJ, 22/08/20031) Morgan Ported ROFSBUILD extension support from beech 1) Added ROFSBUILD extension support. Start a ROFS extension with obey file commands extensionrofs = <filename> rofssize = <size> Added support for ALIASing, HIDEing and RENAMEing. Semantics and syntax for these commands are the same as ROMBUILD. Core image and extension can be joined together with tools\e32tools\rombuild\addextensions.pl Added TRofsExtensionHeader to ROFS.H Padding, Alignment and Repro assumptions: The extension assumes it will be added TRofsHeader::iMaxSize bytes after the start of the core image. It is assumed the max size of the core image will be aligned appropriately for the underlying ROM device. Core image has signature "ROFS" at offset 0, extension has signature "ROFx" at offset 0 into extension (= iMaxSize after start of core image).2) Morgan 1) Added rofsbuild\dumpdirs.pl - utility for dumping the ROFS directory structure. 2) Ported ROFSBUILD executable compression from beech3) Dusko Changes to a number of e32tools components in order to build cleanly with CodeWarriorVersion 1.00.504================Made by DuskoJ, 25/07/20031. Jon 1. Fixed DEF036679 by adding copyright statements where appropriate.Version 2.00.503================1) Morgan 1) Removed ROMBUILD build warningVersion 2.00.503================1) Dennis ROMBUILD changes: 1) 'kernelstackaddress' keyword removed. This is now always calculated by ROMBUILD. 2) Address allocation strategy modified. The initial stack is now placed immediately after the kernel .data/.bss area. The kernel heap follows the initial stack (as before). In the moving model, fixed process data chunks are placed after the kernel heap (on chunk boundaries). 3) TRomHeader::iKernStackAddress replaced with TRomHeader::iKernelLimit, which gives the end of the kernel heap rounded up to a chunk boundary except on the moving memory model where it is advanced past the space reserved for fixed process data chunks.Version 2.00.502================1) Dennis 1) Pulled out general E32Image file handling code into e32tools/e32image/... directories. This includes compression/decompression and all stuff which doesn't require the native PE or ELF file. 2) Merged the two versions of ROMBUILD. ROMBUILD.EXE now accepts E32Image files derived from either PE or ELF. It no longer accepts the native PE/ELF files directly. XIPRMBLD.EXE is no longer built. 3) Added a special instruction (TST PC, #0) to the beginning of all EKA2 entry points. This is detected by PETRAN/ELFTRAN and the file marked as having an EKA2 style entry point. The ELF-derived and JFormat flags have been generalised into header format, import format and ABI fields. An entry point type field has been added to distinguish EKA1 and EKA2 entry points. 4) Add 'nowrapper' keyword to ROMBUILD. If specified in OBY file it causes the 256 byte wrapper to be omitted. This setting can still be overridden on the command line.======================ELFDUMP version 1.0.01) Dusko 1) Adding elfdump.cpp. Elfdump is required to be a standalone program which can present an ELF object file in a form suitable for use with EVALID. It prints hex dumps of relevant sections, directive section as text and relocation information showing the symbol the name and of the section in which the relocation occurs.Version 1.00.501================EKA2 Tools1) RobertJ 1) Support for compressed executables introduced. Source code for the compression & decompression is in petran\szip. Changed PEDUMP to dump compressed executables added -compress & -nocompress options to PETRAN 2) Bumped version number of written executables to 1.10 3) Added a new format bit to iFlags JFormat (Jetstream format)Version 1.00.500================EKA2 Tools1) Dennis 1) Added support for the x86 development target to PETRAN 2) Added various values to the ROM header for EKA2 in ROMBUILD2) William 1) Added -capability <mask> option to PETRAN. There isn't yet an iCapability field in the E32ImageHeader, but everything else is ready to go.================ROMBUILD version 2.051) William 1) Fixed defect ROS-52XF6E "ROMBUILD produces incorrect S-Record checksums" by getting the length right (actually by checksumming the bytes we write instead of calculating the values twice). 2) Disable the 3-byte address form of S-Record with a #define, since it upsets some external tools and only benefitted serial download to M*Core. 3) Fixed defect ROS-52ZED7 "ROMBUILD crashes if section 1 overflows in 2 section ROMs" by checking for overflows in the right place. 4) Made verification failure use Print(EError, ...) in all cases, so that it will cause a ROMBUILD failure rather than just a small complaint at the end of the log file. 5) Extend checkstubs.pl to handle the R3UNUSED Thumb stubs, and update stubs.lstTodohandle section 1 DLLs linking to section 2 DLLs so that section 2 can be replacedrespect the E32Image flags for dll static data and called entrypoints 2) Chris 1) Updated romimage.rtf to remove screensize keyword3) Nicolas (work done as part of CR JPAR-54XMZD) 1) Added new keyword: DEBUGPORT. It takes a numeric argument which is a magic cookie as far as rombuild is concerned and is stored in the ROM header for interpretation by the kernel and bootstrap. The default value is -1. 2) Updated romimage.rtf to include DEBUGPORT. ================ROMBUILD version 2.041) Nicolas 1) Fixed bug where EPOC crashes during boot if there is a non-empty area after an empty one in the relocation table. 2) Modified the way the kernel extensions list is built to ensure the extensions are always in the same order in the list as in the obey file even when some extensions are in areas and other aren't. This is necessary because the kernel extension ordering in the obey file is important (for example an extension registering a power handler *must* be loaded after the extension that loads the power model). 3) Fixed bug in AreaSet::AddArea() (overlap was not detected when an existing area is embedded in the new one). 4) Overlap unit tests updated. 5) Fixed bug in TDllExportInfo ctor: The ptr to the export directory in the ROM buffer was wrong when the file was relocated to a non-default area (iRunAddress / iImageAddr mismatch).================ROMBUILD version 2.031) William 1) Set the default srecordbase to zero, and remove the srecordbase validation. 2) Added "data-align" attribute, and used it in the calculation of dataOffset for things sharing the SvData. It's not a great name, but it will do for now... 3) Added "KeepIAT" attribute, which builds an old-style Import Address Table instead of pointing the stubs directly at the export data. NB. this won't work for section 1 DLLs, because I haven't reinstated the machinery for putting the IAT into the second section. 4) Fix defect CLE-4ZEJBB "rom building: fatal error when file to hide isn't found" by dealing with (aKeyword==EKeywordHide) before testing for !existingFile, and issuing a warning if the existing file wasn't found. 5) Export checkstubs.pl to \epoc32\rom\tools---------------------ROMBUILD version 2.021) Nicolas 1) ROMBUILD: Introduced new area syntax (incompatible with the existing scheme): a) The "area <name> <start> <size>" statement declares an area (there is no need to declare the default ROM area). b) The "area=<name>" file attribute relocates individual files to the designated area. c) When invoking rombuild with -s, a summary of the free and used space in each area is printed. d) Areas can be used only in the first section of a sectioned ROM and are forbidden in extension ROMs. e) It is forbidden to patch a relocated file. 2) ROMBUILD: Introduced classes Area and AreaSet and associated iterators to replace all the existing dynamic arrays and indexes used to store the area-related state. Unit tests for these are built using r_t_areaset.mmp. Refactored existing code (notably E32Rom::LayoutRom()) to use those new classes. 3) ROMBUILD: Moved global variables from rombuild.cpp to r_global.cpp to allow build of r_t_areaset.exe. Made static the globals which were used only in rombuild.cpp. 4) ROMBUILD: Merged TAddressSet into TAddressRange. Renamed every "i.*Set" variable to either "i.*Range" or "i.*Section" (previously existing "i.*Section" variables have been suffixed with "Number"). 5) ROMBUILD: Updated version number to 2.02. 6) HOST: Turned the various overloads of Val() into a template function.---------------------ROMBUILD version 2.011) William 1) Fixed bug in ParseArea() which reused the area address as the area length 2) Allow for executables generated before GCC 530 by changing the assertion about unexpected data. If it looks as though the rdata is after the IAT, then the whole of the E32ImageFile text area is included in the ROM. 3) The rounding up for the ROM size to a multiple of a megabyte must not exceed the originally specified size. 4) Increased the ROMBUILD version to 2.01Version 1.00.174================Made by William, 23/03/20011) William 1) Removed the old .ipr files associated with the predecessor to DISTRIBUTION.TXT 2) Moved ROMBUILD.MMP into the ROMBUILD directory 3) Gave ROMBUILD it's own major and minor version numbers - now 2.0 4) Moved the collapsing routines into ROMBUILD\R_COLLAPSE.CPP 5) Substantial rework of the way that the E32Image files are put into the ROM: it's now almost the case that the ROM layout is established before copying any data. The layout is expressed by setting up TAddressRange and TImageSection values in the TRomBuilderEntry, and the rest of the relocation and copying to the ROM image follows from those values. 6) Change of approach on relocation: instead of relocating the file contents after copying into the ROM image, do the relocation beforehand. This allows the relocation to operate on a simple fixed layout (the one which PETRAN set up), and frees the ROM layout to be entirely different. 7) Unified all the various ROM flavours: in particular the "areas" support is part of the normal layout process. The use of TAddressSets and their derived forms makes this pretty painless. 8) Removed the Import Address Tables, saving ~240K in a Quartz 6.1 ROM. The import stubs are fixed up to point directly into the export directory for the relevant DLL. In two section ROMs the export directories are now placed at the start of the upper section to support patching: this was previously done using the import address tables. 9) Various special case handling for the Primary has been reworked using generic support. In particular the primary now gets a default code alignment of 4K, which allows the gap to be occupied by other files if the obey file is suitably arranged. 10) Area relocation is more pervasive than before. The import stubs in relocated executable no longer refer back to the unrelocated original contents of the area. 11) The sizes of the DLL reference tables are now reported in the log. 12) Fixed a bug which caused ROMBUILD to crash if a file was marked as "patched" in a two section ROM. 13) Size information in the ROM is more consistent: the size in the ROM filesystem is always the length of the contiguous section beginning at the given address, and the size summary in the log file reports the SizeInRom() information for the file, which should always reflect the real cost in ROM of the file regardless of layout.Version 1.00.173================Made by Morgan, 08/03/20011) Morgan 1) Fixed ROMBUILD to accept DLLs with no imports and DLLs with no exportsVersion 1.00.172================Made by William, 07/12/20001) William 1) Introduced ROMBUILD support for extension ROMs, the deliverable from project PR0027. Lots of churn, but the key new data structure is the TRomNode which separates the ROM directory structure information from the individual files (TRomBuilderEntry). The TRomNodes handle the DLL name matching and are used to drive the multiple-variant clever directory structure operations. 2) Reworked the ROMBUILD parsing strategy to remove the need for "files=", allowing the header statements and file statements to be mixed freely in the OBY file. 3) Use the tables which now drive the ROMBUILD parsing to generate the help information. 4) Don't create ROMBUILD.LOG unless processing an OBY file, and put extra useful information into the log. In particular, print a line include the ROM image name before processing the files and after writing the ROM image, e.g. Creating Rom image testrom.IMG ... Writing Rom image with repro header to file testrom.IMG Also report the "Writing" line to the screen, as a comfort to the user. 5) Fix ROS-4RJPTK "ROMBUILD checksums are incorrect" by computing the checksum at the right stage, and cross check to make sure it's still right when displaying the ROM stats. ROMs built with this version of ROMBUILD are likely to be different in up to 4 bytes at offsets 0x1A8 to 0x1AB (0xA8 to 0xAB for images without a REPRO header). 6) Make "unicode" the default, and introduce sensible defaults for various other keywords. 7) Remove the ROMBUILD support for bigendian images (it's still present in the files shared with PETRAN. 8) Added dumpdirs.pl which prints out the ROM root directory structures. 9) Added addextension.pl which concatenates a kernel ROM and an extension ROM, making a combined image suitable for use with Brutus. 10) Try harder to continue reporting errors rather than stopping immediately. In particular, report all of the unresolved DLL linkages rather than just the first one. 11) Introduce new keywords "hide", "alias" and "rename" to manipulate the directory structure. 12) Added romimage.rtf documentation (from the BPK, but somewhat edited) and export it to \epoc32\engdoc\e32toolsVersion 1.00.171================Made by Nicolas, 19/10/20001) William 1) Rework internals of ROMBUILD to remove arrays indexed by file number. TRomBuilderEntry is now derived from E32ImageFile, and the various arrays have become member data in the associated TRomBuilderEntry - OO, dontcha just love it! 2) Added -coff-header option, which could remove the need for bin2coff 3) Use the .idata information to get the DLL ordinals, not the IAT. This is preparation for the IAT removal idea, which involves turning the IAT into a table of pointers back to the associated stubs. 4) Added a range check to TRomBuilderEntry::AddressOfOrdinal 5) Added documentation about various forms of import stub, and checkstubs.pl which scans all of the stubs in a ROM to check that they lead to a function of the correct name. 6) Introduced TAddressSet for recording the various addresses associated with code in a ROM (address of ROMBUILD.EXE working copy, address in ROM, execution address). Currently used for handling ImportAddressTable and DllRefTable and seems to work in a two-section Brutus ROM. 7) Partial fix for EDNRFID-4J6DV3 "Corrupt reloc table generated" Allow for the possibility that there is only .bss with no .data when applying the heuristic for relocs that don't point into any known section. Fix printf format specifier typo by changing %0x8 -> %08x 8) Added a verbose option to W32REPROVersion 1.00.170================Made by Dennis, 13/09/20001) William 1) Dust off the S-Record support in ROMBUILD Use the full 78-bytes available per line, and add support for the 3-byte address form, since this is beneficial to M*Core Cogent. 2) Use "srecordfilename=*" to mean "append .srec to romname and use that" Same approach for "romnameodd=*" and "romnameeven=*" filenames. 3) Set the RomHeader iSize to be iSizeUsed rounded up to a megabyte. This is particularly beneficial on platforms which RAM-load a ROM image (Brutus, Cogent) because it allows the bootstrap to use only the amount of RAM really needed for the ROM image. 4) Add "hide" keyword to ROMBUILD, as requested by a licensee. This stops the specified file from being included in the ROM directory, but doesn't stop other ROM files from linking to the hidden file. A consequence of hiding a DLL is that it can't be dynamically loaded, which means that you can't hide kernel extensions.Version 1.00.156================Made by Morgan, 5/7/20001) Anon 1) Changes to ETOUCH ==== //EPOC/development/base/6.0/e32tools/ETOUCH/ETOUCH.CPP#1 @@ -3,6 +3,10 @@ // Copyright (c) 1996-1999 Symbian Ltd. All rights reserved. // +#if defined(__VC32__) +#pragma warning(disable : 4710) // function '...' not expanded +#endif +Version 1.00.155================Made by Dennis 22-06-2000.1) Dennis 1) Modified W32REPRO so that the -HEX option only makes it receive in hex. It always transmits in base 10. This is so it works with REPROC. 2) Fixed bug in ROMBUILD - it didn't like files with no imports.Version 1.00.154================(Made by Alastair, 10.3.2000)1) William 1) Added M*Core support Basically just another PE magic number and another TCpu code.Version 1.00.153================(Made by Pete, 24/02/2000)1) William 1) Updated PETRAN to report exports with value 0 as WARNING: No export specified for ordinal 62 and promoted the non-zero exports from an unknown section to be errors. 2) Added more information to the warning about failure to identify a section for relocation, just in case it ever happens...2) Simon 1) Added bin2coff, a utility to add a coff header to a binary image. Mainly for use with the cogent smartfirmwareVersion 1.00.152================(Made by Dennis, 19/01/2000)1) William 1) Updated W32REPRO usage statement to remove misleading limit on the baud rate The baud rate is actually passed directly to the Win32 comms device, so it should be possible to specify any baud rate supported by the device. 2) Updated W32REPRO to add a -RAW option for use with Brutus REPROB (and others). This tells W32REPRO not to expect a 256-byte header on the image, but it will still pretend that there is one, as expected by the existing REPRO code. 3) Updated W32REPRO to a -BOOT <boostrap_image> and -HEX options, to support the Cirrus Logic board. The bootstrap is sent at 9600 baud before starting the normal REPRO protocol, and -HEX changes the protocol to use base 16 rather than base 10 for numbers transmitted between W32REPRO and the other end. 4) Added W32REPRO protocol support for a new command 'D' which tells W32REPRO to disconnect after a successful transfer: REPROB could usefully be extended to send this command...2) Morgan 1) Fixed ROMBUILD so it gives appropriate errors if passed an empty file 2) ROMBUILD.LOG reports inclusion of 256 ROM repro header (Defect EDN147097) 3) Fixed EDN580686 Rombuild is not very tolerant 4) Fixed EDN210727 PEDIFF returns stupid result codes PEDIFF now returns 0 for identical files, and 2 for different files 5) Improved PETRAN dump output (Fixed EDNGLAY-463LNN)Version 1.00.151================(Made by Morgan, 3/12/99)1) Alastair 1) Created a new utility, ERUNTEST.EXE, which will take a batch file listing tests as generated by ABLD and run each test in turn, checking whether each test has succeeded or not by checking the return value from the process and also checking output to the EPOCWIND.OUT file in the temporary directory. ERUNTEST.EXE logs output to standard output. Obviously this utility will only run WINS/WINC tests. It must be invoked from the directory in which the test executables reside.2) Morgan 1) Fixed some warningsVersion 1.00.150================(Made by Morgan, 27/9/99)1) Alastair 1) Created new directory COLTAB and added COLTAB.CPP, BASEKEYS.TXT, COMPKEYS.TXT and README.TXT. COLTAB comes from Graham Asher, and is a tool for writing the collation tables in COLLATE.CPP. README.TXT contains details of the URL from which data files BASEKEYS.TXT and COMPKEYS.TXT were sourced. Type COLTAB without any parameters for help, and/or read the header in COLTAB.CPP. Console APP COLTAB.EXE will be built into \EPOC32\Tools\.2) Malcolm 1) Added code to allow the kernel debug mask to be set via the ROM.OBY file via the new KERNELTRACE keyword.3) Morgan 1) ROMBUILD internal directory structure is now sorted wrt a unique identifier for each Dir. This (hopefully) fixes the reproducability problems ("drifting-directories") experienced when building identical Roms in different NT environments.Version 1.00.125================(Made by Morgan, 26/8/99)1) Dennis 1) Added "defaultstackreserve" keyword. The argument to this keyword is added to the combined size of .data and .bss to determine the address space to reserve for the $DAT chunk of a 'fixed' process. The value defaults to zero for compatibility with previous versions. Added "stackreserve" keyword to override the default setting on a per-file basis.Version 1.00.124================(Made by Alastair, 2nd August 1999)1) Jonathan 1) Removed MAKSYM - moved to e32toolp.Version 1.00.123================(Made by Kal Patel, 22 July 1999)1) Morgan 1) New ROMMASK. Added a -verbose flag for logging, and added a -no-header for Roms with no Epoc header.2) Malcolm 1) Added Area support to ROMBUILD for Roxette. This allows the code to be fixed up to execute outside the rom where it's stored. Relocation info is written into the rom and the bootstrap uses this to copy the info out to its final location. Any file can be in any arbitrary area. This is only enabled in singleprocess mode, since the same effect can be achieved with an MMU on a real system. This is enabled by placing a "areas=<num>" line in the first section of the .oby file. Then, in the files= section, the next tranche of files can be sent to another area with a directive like "area 0x81000000 0x100000" where the first value is the address and the next the length. Up to <num> area lines can be in the file section. A relocation table is placed in ROM for the bootstrap. Its address is stored in the romheader info that rombuild uses. The table is a list of <length> <src> <dest> triples, ending with a <0,0,0> tuple. Note that any bootstrap that uses this should not process a relocation table address of 0, as this maintains backwards compatability with old rombuilds which will put zero in the address location.3) Alastair 1) Removed all .DSP and .MAK files, now that makefiles are generated. 2) Fixed minor typo in W32Repro.Version 1.00.122================(Made by Alastair, 12.7.99)1) Alastair 1) Added fetcher definition file, E32TOOLS.FTC, to the group directory. 2) Added William's new version of E32UID.CPP which no longer requires WINDOWS.H. 3) Added William's new UIDCRC.EXE, which provides a simple way to calculate the checksum: uidcrc <uid1> <uid2> <uid3> [<outputfile>] This reads the three uids (using strtoul, so decimal and 0x9999 hex are found), computes the checksum, and either prints the 4 hex values to standard output or creates <outputfile> as the 32 byte sequence which is the specified UIDs and checksum in little-endian byte order.Version 1.00.121================(Made by Alastair, 16.6.99)1) Alastair 1) Fixed EDN459831 "Wveconv help is out of date" . 2) Removed MAKTRAN, DEFMAKE and DEFTOOL. 3) Converted all projects to MAKMAKE building for the new TOOLS platform. 4) Changed zip of releasables onto the network - this is now called TOOLS.<ver> rather than E32TOOLS.<ver>. It also contains full paths to the releasables so make sure you're in the root of your EPOC drive before calling, say, "getrel e32tools tools 121". 5) Updated MNT.CMD in various ways, including adding an MNT CHECKREL. 6) Added dopcvs.pl and lock.pl to GROUP directory for use with MNT.BAT.Version 1.00.120================(Made by Morgan, 30th March 1999)1) Morgan 1) Fixed EDNGBON-46BQK4, "ROMBUILD "patched" keyword is broken". (merged in from ER5 release E32TOOLS 110) 2) Left a gap in the build numbers for ER5 maintenance releases 3) Introduced a new version of ROMMASK.EXE. The syntax has changed from previous versions. Type "ROMMASK" to see the new syntax. For example, to produce a 10Meg image split into 8 and 2, type the following: rommask -rom p2rom.img -output rom.img -log rom.log -size 10 -section 8 -section 2 (You can leave off the final -section 2, and ROMMASK will do the calculations for you.) The output of Rommask will be "rom.log", and the 2 mask files "rom.img" and "rom.im2" ROMMASK still expects the image to contain a Psion 256byte header.Version 1.00.100================(Made by Morgan, 16th February 19991) Morgan 1) Added the keyword 'srecordbase' to change the base address of the motorola srecord output file. (Defaults to address 0x0000) 2) Fixed srecord output for big and little endians. 3) Removed unused dependencies from MNT GETCOMPSVersion 1.00.099================(Made by Jonathan, 8th February 1999)1) Alastair 1) Edited PETRAN.MAK so that sources depend upon \Epoc32\Include\E32uid.h rather than ..\E32uid\E32uid.h. This change should complete the fixing of bug EDN057832 "E32Tools won't rebuild on my PC".2) Jonathan 1) Fixed ROMBUILD defect EDN853437 "Dual Boot ROM does not function on Series 5" by applying Dennis' fix to fix up data as well as executables in dual-boot images.Version 1.00.098================(Made by Jonathan, 1st February 1999)1) Petteri 1) Applied boilerplate copyright to sources.2) Jonathan 1) Fixed copyright message in executables. 2) Removed odbc32.lib and odbccp32.lib from all .DSP and .MAK files since these libraries are neither required nor always installed.Version 1.00.97===============(Made by Alastair, 28th January 1999)1) Alastair GENERAL 1) Created and added VC5 .DSP files for all projects for debugging. 2) Removed hard-coded drive letters from .DSP files. 3) Re-generated makefiles from .DSP files. 4) Reinstated E32UID directory containing files E32UID.CPP and STDAFX.H required for building ROMBUILD, PEDIFF and PETRAN. 5) Replaced hard-coded instances of 'R:' in MNT.CMD with '%s%'. MAKSYM 1) Added proper handling of two functions appearing at the same address in a ROM. 2) Removed an unnecessary destructor to prevent allocated memory being deleted twice. TMAKTRAN 1) Removed MAKTRAN tests. PEIGER, PREPRO 1) Removed these executables. Previously MNT.CMD attempted to unzip these from S:\ptool\ and then zip them up again in the e32tools release zip file. Plans are afoot to provide these tools elsewhere, since we no longer have access to S:.Version 1.00.096================(Made by Morgan, 21st January 1999)1) Morgan GENERAL 1) Removed E32UID 2) Converted all makefiles to VC5 3) Built with VC5 ROMBUILD 4) Rectified the drifting directory problem. ROM images can now be reproduced and validated reliably. READTYPE 5) Removed definitions for "true" and "false" so readtype will compile with VC5.Version 0.01.095================(Made by Alastair, 18th August 1998)MorganROMBUILD1) Big-endian bug fixAlastairDEFMAKE1) Fixed Epoc S/W Problem SW1-141 - 'DEFMAKE adds an "E" to the end of the generated DEF file'ROMBUILD1) Fixed Bluebell defect SW1-734 - "What do the tools have against August?". A rom time of 08/08/2008 08:08:08 is now acceptable.Version 0.01.094================(Made by Jonathan, 10th June 1998)1) Morgan ROMBUILD 1) Added extra info to log output.2) Graham Asher READTYPE 1) New uniflds.txt and unidata2.txt from release 2.1 of the charater database from Unicode Inc. Many additions and corrections have been made. One of them fixes defect SW1-42 (User::UpperCase is wrong for Greek final sigma (03C2) in the Unicode build) in the EPOC32 Software Problems database. 2) Changes to readtype.cpp to accommodate the new character categories in unidata2.txt.Version 0.01.093================(Made by Morgan, 15th May 1998)1) Dennis ROMBUILD1) Added support to ROMBUILD for multiple-boot ROMs: a) Added keywords 'singlekernel' and 'multikernel' to declare whether a single kernel ROM or multiple-kernel ROM is required (defaults to single). b) Added keyword 'variant' to declare which files define hardware variants; this keyword should be applied to the variant DLL (ECUST.DLL) of each hardware variant to be supported. c) Added keywords 'extension' and 'device'. These define kernel-mode DLLs which may have global data, the address of which is generated by ROMBUILD. 'device' DLLs are simply LDDs or PDDs with global data. 'extension' DLLs are not yet supported by E32. d) Files declared with one of the keywords {primary, file, data, dll, variant, extension, device} may have an additional hardware variant discriminator specified by means of the syntax file[0x05040001]=filename The hardware variant discriminator (HWVD) is an 8-digit hex number whose purpose is to specify which hardware variants the file is relevant to. The top 16 bits indicate which conceptual layer the file belongs to: 0100=independent - file is required by all hardware variants xx03=CPU-specific - file is required by all variants with same CPU yyxx=ASIC/variant specific - file is required by all variants with CPU xx and ASIC yy. The bottom 16 bits are only relevant in the last of these three cases. They form a bit mask indicating which specific variants the file is required for. A file declared with the variant keyword must be totally variant-specific, i.e. must have only one bit set in the bit mask. If the HWVD is not specified, a value of 01000000 is assumed, which means that the file appears in all hardware variants. Examples (from forthcoming Bluebell/Protea upgrade ROM): primary[0504ffff] - kernel for EIGER primary[0706ffff] - kernel for WINDERMERE (different CPU core and ASIC) variant[05040001] - variant DLL for PROTEA variant[07060001] - variant DLL for BLUEBELL v.1 variant[07060002] - variant DLL for BLUEBELL v.2 (for illustration) Static linkage between files is now restricted by the HWVDs of those files. It is possible for file A to link statically to file B iff {variants V | V requires A} is a subset of {variants V | V requires B}. For the example above, variant[0x05040001] can link to primary[0x0504ffff] but not the other way round. It is possible to have two or more files of the same name in the same directory provided that they have HWVDs which are mutually exclusive, so that the two files can never appear on the same machine. The HWVD is used to determine which of the files to use to resolve any static linkage. e) The ROM file system now has multiple root directories and directory trees, one for each hardware variant supported by the ROM. This automatically ensures that F32 only sees the files which are relevant to the hardware on which it is running. f) DLLs declared with one of the keywords {variant, device, extension} can have global data (.data and .bss) which will be allocated in the kernel static data chunk after the kernel data itself.2) The 'fixed' flag is now propagated through from PETRAN.3) The 'kernstackaddress' keyword is now optional - if it is not present in the obey file, ROMBUILD uses a default value of kerneldataaddress + Round(kernel-mode dataBss size) + Sum over all fixed .EXEs(Round(DataBss size of .EXE file)) where Round(x) rounds up to the PDE size (1Mb on ARM).Version 0.01.092================(Made by Morgan, 25th February 1998)ROMBUILD1) Fixed the 'code-align' file attribute2) Forced the image file size to a multiple of 4k for the good of Rome.Version 0.01.091================(Made by Alastair, 18th February 1998)Removed MAKMAKE and BLDMAKE - these tools are now part ofnew project E32TOOLP.Version 0.01.090================(Made by Morgan, 13th February 1998)ROMBUILD1) Added support for 'fix'ing LDDs with global static data in Rom.2) The 'file=' specifier now honours the KNoCallEntryPoints flag in the image header (as set by PETRAN). This means all 'dll=' specifiers should be changed to 'file=' and MAKMAKE used to control the entrypoint behaviour with the CALLDLLENTRYPOINTS keyword.3) Added a '-no-header' switch to suppress the Rom loader header.Version 0.01.089================(Made by Alastair, 9th February 1998)DEFMAKE1) Changed defmake.exe so that it processes freeze files without carraige returns at the end of the last line correctly. Fixes SW1-803.2) Put in warning for unfrozen exports.MAKMAKE1) Changed the warning generated if parameters appear with the NOSTRICTDEF keyword so that it doesn't just appear when MAKMAKE is invoked with the -V flag. The NOSTRICTDEF keyword, if required, should be used in addition to the DEFFILE keyword, not instead of it.2) Intermediate deffiles created by command-line makefiles no longer have the basename extensions, eg D for narrow debug, if the NOSTRICTDEF keyword is specified. 2) Added warning for any SUBPROJECT keyword appearing before a project has been specified with the PROJECT keyword. This is now necessary because MAKMAKE now stores SUBPROJECT directories as absolute paths rather than paths relative to the PROJECT directory. If a SUBPROJECT statement specifies a directory beginning with a backslash, it will be treated as an absolute directory; otherwise it will be treated as a directory relative to the PROJECT directory, as before.3) Added warnings for the non-existence of SYSTEMINCLUDE, USERINCLUDE, \PROJECT, SUBPROJECT and \PROJECT\SUBPROJECT directories.4) Put in START WINS .. END block option, NOBROWSEINFO, which can be used to stop generation of .SBR and .BSC files for command-line WINS and WINC builds.5) Changed MAKMAKE.BAT so that the help for the batch command "CALL" is no longer produced if MAKMAKE /? is typed.6) Moved all makmake releasables out of \epoc32\tools\makmake into \epoc32\tools.7) Changed MAKMAKE.BAT over to using the -S PERL switch so that the system path is searched for MAKMAKE.PL, then MAKMAKE.PL searches for the modules it depends upon in whichever \epoc32\tools is specified in the system path. This means that makmake can be installed on one drive and called to operate on .MMP files from another.8) The second UID for targettypes APP, LDD and PDD will now be added if not present.9) Restructured MAKMAKE and moved some functionality into new modules to facilitate code reuse. MAKMAKE and BLDMAKE now depend upon the following shared modules PARSECOM.PM, E32ENV.PM, E32TVER.PM, MODLOAD.PM, PATHUTL.PM, PREPFILE.PM. MMP.PM and GENUTL.PM are currently only used by MAKMAKE but may be useful for other purposes in the future.10) Renamed MAKPREP.PM MAKDEPS.PM.BLDMAKE1) Added warning that BLDMAKE ALL won't create batchfiles for preparing IDE makefiles.Version 0.01.088================(Made by Morgan, 29th January 1998)MAKMAKE1) Inserted '-bigendian' on the PETRAN command line for BE buildsPETRAN and ROMBUILD1) Added -bigendian switches to both toolsFrom Simon Lewis1) Added a new file attribute 'code-align' to ROMBUILD2) Added the switches '-align-const-section' and 'const-section-address-mask' to PETRANVersion 0.01.087================(Made by Alastair, 23th January 1998)MAKMAKE1) Changed paths within created makefiles so that they are relative to the directory where MAKMAKE was invoked rather than relative to the makefile. If you are using the /D makmake command-line flag and invoking makmake from directory \[project]\group there is therefore no longer a need to change directory to \Epoc32\Make\[platform] before calling NMAKE.2) Deffiles created by the build process in the build directories now have the build-variant dependent U, D, and UD suffixes, and are removed by a makmake -clean.3) Changed handling of EXEDLL targettypes so that they can export functions under MARM. MAKMAKE will expect EXEDLL targettypes to be function exporters for MARM if a deffile is specified in the MMP file, otherwise it will make no use of the intermediate deffile created during the build process. This means that, until a fix for dlltool becomes available from Cygnus, the first time functions are frozen for EXEDLL targettypes for MARM it is necessary to build once, put a deffile statement for MARM in the MMP file, put the intermediate deffile where the MMP deffile statement expects the freeze file to be, and build once again so that the target is frozen by ordinal.4) Changed MAKMAKE warnings so they go to STDERR rather than STDOUT.5) Added LONGBLDPATH keyword to MAKMAKE which inserts an extra directory into the build path for a project. The extra directory may be specified as a parameter to the new keyword but will default to the basename of the MMP file if the keyword is specified without a parameter.6) Added new TARGETTYPE, LIB, for creating static libraries. This is not yet implemented for MSVC5.0. The object file compiled from the first source file specified in the mmpfile is copied into the target directory and given the same basename as the target. The behaviour for this keyword is not yet finalised.7) Added new TARGETTYPE, IMPLIB, for creating import libraries for DLLs with mutual imports. Specify a new MMP file for one of the DLLs, give the name of the DLL as the argument for the TARGET keyword (so that the .LIB produced contains the right DLL name) and set the TARGETTYPE as IMPLIB. This is not yet implemented for IDE makefiles and the behaviour for this keyword is not yet finalised.8) Added handling of Win32 Resource files to command-line WINS and VC4 and VC5 makefiles because the kernel uses one.9) Added new MARM MMP file keywords to cater for unusual scenarios START MARM ALLOWDLLDATA // for dlls requiring static data DATALINKADDRESS [address] // for relocation address for dll data DLLNAME [dll basename for linking] // for dlls which are built // as one thing but linked in the ROM as another STACKSIZE // for stack size other than the default END10) Added new module SARMBE.PM for creating big-endian single-process arm makefiles11) Implemented more stringent checking of the format of UIDs in mmp files and made sure dlls with null uids link as mydll.dll rather than mydll[00000000].dll for consistency with rombuild.12) Made all relative paths in VC4 and VC5 makefiles absolute.BLDMAKE1) Added new perl tool, bldmake, which creates batch files to control the building of E32 and F32. Type bldmake without any parameters for options.Version 0.01.086================(Made by Alastair, 5th January 1998)DEFMAKE1) Added .E32_UID and .rsrc to the list of recognised sections so that, eg, "WARNING: Section '.E32_UID' removed" no longer appears during WINS builds.MAKMAKE1) Changed cl_arm.pm and cl_win.pm so that makmake -clean will remove resource headers from \Epoc32\Include if a resource file is specified.Version 0.01.085================(Made by Alastair, 9th December 1997)MAKMAKE1) Removed automatic addition of kernel32.lib and libc.lib to list of Win32 libraries for WINC EXE targettypes as this addition is apparently unnecessary.Version 0.01.084================(Made by Alastair, 9th December 1997)MAKMAKE1) Changed handling of targettype EXE for WINC, VC4WINC and VC5WINC platforms so that the LINK.EXE flag /subsystem:console is used rather that /subsystem:windows, and kernel32.lib and libc.lib are automatically added to the list of Win32 libraries to be linked to.2) Targettypes LDD and PDD makefiles for MSVC IDEs now require the presence of \epoc32\include\lddwins.def and \epoc32\include\pddwins.def respectively.Version 0.01.083================(Made by Alastair, 20th November 1997)Some Makmake Bug Fixes1) Makmake invoked with the /CLEAN flag will now erase the autouid object file if the Win32 autouid keyword is used.2) Makmake now uses the environmental variable "INCLUDE" rather than "MsDevDir" to decide which standard include directories should be searched for Win32 header files if a project is linking to Win32 libraries, so that the wrong standard include directories aren't searched when creating MSVC5 project files. Fixes SW1-698.3) Fixed bug caused by CPP inserting a space after expanding macros in .mmp files by taking the space out again. This was causing problems where, for example, a path specified as "\EPOC32\RELEASE\WINS\APP.DEF" in the .mmp file would become "\EPOC32\RELEASE\WINS \APP.DEF" after preprocessing prior to creating a WINS makefile. Lower case paths were not affected.4) Replaced link.exe flag /EXPORT:?NewApplication@@YAPAVCApaApplication@@XZ,@1,NONAME in VC4 and VC5 makefiles where the targettype is APP with the flag /def:\EPOC32\RELEASE\WINS\APP.DEF, because the former flag failed to ensure that the function in question was exported at ordinal one. This solution means that if no deffile is specified in the .mmp file for an APP, \EPOC32\RELEASE\WINS\APP.DEF must be present for the project to link. Command-line Win32 makefiles will link properly without the presence of APP.DEF because they use a defmake flag to ensure the function is exported at the right ordinal. Targettypes LDD and PDD will link by name in MSVC until their deffiles are released to \epoc32\release\wins or somewhere else suitable. Version 0.01.082================(Made by Alastair, 12th November 1997)MAKMAKE1) Added link-libraries and e(dll|exe) object as dependencies of main target. This cannot be done for MSVC IDE makefiles. Fixes SW1-565.2) Added new targettypes LDD and PDD. A frozen first ordinal export, the respective gate funtion for the targettype, is specified for these targettypes and for targettype APP if no deffile is specified for the project, otherwise the deffile controls the order of exported functions. This applies for all supported platforms. Apart from this feature, projects specifying one of these targettypes build in the same way as projects with targettype DLL. Fixes SW1-666.3) Changed MAKMAKE help information so that the build version appears and a list of platform choices appears. This list of platforms is produced by a search of .PM modules in \EPOC32\TOOLS\MAKMAKE for the comment line "# Can call in makmake command line". If the line is present in the module then the basename of the module is added to the list. This is a cheap way of producing a list of available platforms while preserving MAKMAKE's extensibility, and doesn't involve the loading of every .PM module and all the modules that each one of those depends on. The module controlling MAKMAKE help is loaded only when required and provides a brief guide to MMP file syntax if makmake is invoked MAKMAKE /MMP {PLATFORM} If PLATFORM is specified, syntax for the START .. END block relating to the platform is displayed as well as platform-independent MMP syntax. Fixes SW1-653.4) The macros "WIN32" and "_WINDOWS" are now only used in compilation by MAKMAKE- generated Win32 makefiles if the project's MMP file states that the project needs to link to Win32 libraries by listing the libraries it needs with the WIN32_LIBRARY keyword in a Win32 START .. END block. Fixes SW1-652.5) New MMP file keyword - OBJECT - is available. This keyword is intended to be used by projects having access not to the source files but only the compiled code for certain objects. Specify the basename of the object only. Created Win32 makefiles will expect object <basename>.OBJ to exist in the build directories for a project, while MARM makefiles will look for <basename>.o. These object files will appear in the dependency list for the main target in command-line makefiles - this is not possible in MSVC IDE makefiles.6) Command-line makefiles now contain extra targets MAKEWORK, MAKEWORKDEB, MAKEWORKREL, etc. The build-specific targets are included in the list of dependencies for the main makefile build-specific target, so that work directories will be automatically created when building with command-line makefiles if these directories do not already exist. The new targets could also be used to make the work directories for a project with NMAKE e.g. NMAKE /f <command line makefile> MAKEWORK would create all the makefiles for a project for all builds.7) Win32 command line makefiles now generate SBR and BSC browse files for DEBUG builds so that if a DEBUG build of a project has already been done with a Win32 command line makefile, subsequent building of the DEBUG build of the project within the MSVC IDE will not recompile everything to generate the browse files.8) Added new module MAKPREP.PM to handle everything relating to MAKMAKE's use of \EPOC32\GCC\BIN\CPP.EXE to generate lists of dependencies for source files. This module now identifies missing system and user headers - - if missing system headers have the extension .RSG or .MBG, the header is listed as existing in \EPOC32\INCLUDE, so there is no longer a need for MAKMAKE to generate a dummy resource header in \EPOC32\INCLUDE to fool CPP. - platform modules can specify standard directories to search for missing system headers. This means, e.g., Win32 makefiles can specify the MSDEV include directory for those projects linking to Win32 libraries. If the missing system header is found by the module in the standard directory, it will be left out of the dependency list since the MSVC tools will know where to find it and it can be trusted to be there and unchanged. - if a missing system header fails to satisfy both the above tests then makmake will issue a warning since the generated makefile will probably fail to build. - a warning is issued for any user headers not found in the user include or system include paths, where the user include path is the source directory if no user include paths are specified explicitly.9) Processing of MMP files now involves a lot more syntax checking and produces corresponding warnings, especially if MAKMAKE is invoked with the -V switch.10) MAKMAKE will now automatically generate WINS uid source files when creating Win32 makefiles, but only if the new keyword - AUTOUID - is specified in a Win32 START .. END MMP file block. The keyword is necessary since LINK.EXE would fail for projects which already specified UIDS in the source code, so remove WINS UID specification in the project's source code before using AUTOUID. MAKMAKE works out UID 1 from a project's targettype and takes UIDs 2 and 3, if specified, from the MMP file. It then creates the UID source file in the same directory as the MAKEFILE it is to create with the name "<target basename>.UID.cpp". The source file will look something like this // Makmake-generated uid source file #include <E32STD.H> #pragma data_seg("E32_UID") __WINS_UID(0x10000079,0x1000008D,0x100002C3) #pragma data_seg() The file will be created only if it doesn't already exist or if it is older than the project's MMP file.11) In MARM makefiles, multiple calls to GNU tool "ar" to archive the object files for a project prior to linking have been replaced by a single call to ar. The single call passes a script listing the object files to ar. This changes speeds up the archiving stage of MARM building considerably.12) Renamed MAKMAKE.CMD MAKMAKE.BAT for Windows 95 compatibility.13) Changed MSVC5 dependency generation to be the same as for other platforms, but with system headers stripped out of the list later. Before, vc5 dependencies called CPP such that only user headers were generated. This change means that CPP will no longer fail if one of the user headers is expecting a macro definition from a system header and forcing CPP to fail if it doesn't get it.14) Replaced relative with absolute filepaths where possible in CL_WIN.PM.15) Changed \e32tools\makmake\makmake.mak so that debug utilities like the perl -w switch and use of module strict.pm apply for "DEB" builds. of MAKMAKE only.16) Added SARM.PM module to be used by the base for building SARM makefiles.17) Improved path utilities module MAKPATH.PM to do more error checking and handle extra functions.GROUP1) Changed e32tools\group\mnt.cmd so that makmake is released in a way more similar to other e32tools project - from \epoc32\build\e32tools\makmake\rel.Version 0.01.081================(Made by Morgan, 4th November 1997)ROMBUILD1) Added fixed keyword for use with EXE files. This keyword results in the file being loaded as a fixed address process. The data section base address is allocated in the region between the kernel data address and the kernel stack address. The multiprocess keyword can be used to specify the chunk size; it defaults to 1Mb.PETRAN1) Added -fixed and -moving options which set and clear KImageFixedAddressExe flag respectively.2) Added the following switches -heap <min> <max> -allowdlldata -datalinkaddress <base>MAKSYM1) Removed duplicate function address error message.Version 0.01.080================(Made by Alastair, 30th September 1997)MAKMAKE1) Changed Makmake.pl so that if a project uses a resource file and the resource header file is not yet present in \epoc32\include a dummy header file will be created there so that MAKMAKE's generation of dependencies does not assume that the missing header file is in some other location.2) Changed /Fd compiler flag in Ide_vc4.pm so that pdb files have the right name rather than vc40.pdb. Version 0.01.079================(Made by Morgan, 22nd September 1997)ROMBUILD1) Integrated the code for building ROMs for the single process version of E32. Currently this code is protected with a __SINGLE__ macro. Use the keyword 'singleprocess <ChunkSize>' to generate a single process ROM. Default is 'multiprocess'.Version 0.01.078================(Made by Alastair, 15th September 1997)MAKMAKE0) Forget to say about release 077 that \[project]\bwinc is the default directory for which WINC def files are searched if the file specified with the DEFFILE keyword has no path.1) Improved MMP file reading so that a warning is generated if MAKMAKE ignores a line because it doesn't recognise the syntax.2) Makmake.pl - added new code to trap dependency generation errors.3) Makmake.pl - minor changes required to support creation of MSVC5 project files.4) Added new modules VC5.PM and VC5WINC.PM to support MSVC5. These modules will create .DSP MSVC5 project control files. When an MSVC5 .DSP file is created with makmake project files with the following extensions will be deleted - .dsw,.mak,.mdb,.ncb,.opt,.plg. The new features of MSVC5 which distinguish between header files belonging to the project and system header files are supported.5) Added new module MISA.PM to support MISA command-line makefiles.6) Tidied up VC4.PM.7) Changed MAKMAKE internal structure so that implementaion modules can share modules controlling the layout of the makefile and other common features. This change does not affect the way that MAKMAKE is invoked. VC5.PM and VC5WINC.PM share IDE_VC5.PM VC4.PM and VC4WINC.PM share IDE_VC4.PM WINS.PM and WINC.PM share CL_WIN.PM MARM.PM and MISA.PM share CL_ARM.PM8) Changed CL_WIN.PM and CL_MARM.PM to use an inline batch file in the makefile for calling fc4bat to decide whether a resource header file needs rewriting or not. Previously, if fc4bat returned an error to indicate that the header file should be rewritten, nmake would die.9) Added Makmake.mak to \e32tools\makmake\ for building makmake source to \epoc32\tools and \epoc32\tools\makmake in a way similar to C++ projects.10) Changed all .PM modules to ensure that they return a true value when loaded successfully.E32TOOLS MNT1) Changed e32tools.rel file so that readtype.exe is released.2) Updated MNT MAKEWORK and MNT GETBLD so that PGETBLD and MNT BLDALL will now work on a clean drive. Changed readtype.mak so that it searches \epoc32\include rather than \e32\inc for system header files. File \e32\inc\unicode.h needs to be listed in e32\inc\incc.prj at some point.3) Modernised MNT BLDALL so that NMAKE is invoked with the /nologo flag.4) Modernised MNT VALID so that pediff is used instead of fc /b for binary file comparison. Makmake is now included and e32uid.exe removed since it's not used or released.Version 0.01.077================(Made by Alastair, 8th September 1997)MAKMAKE1) Changed 1st stage of linking (by name) for WINS command-line builds so that linking is not attemped incrementally to stop unnecessary warning appearing.2) Added two new modules, WINC.PM and VC4WINC.PM, for use in creating WINC command-line and IDE makefiles respectively. For command-line makefiles, type "makmake {options} [project] WINC; for IDE makefiles, type "makmake {options} [project] VC4WINC. DIfferences between WINC and WINS makefiles are slight - WINC appears where WINS would otherwise appear, and WINC source files are preprocessed with the macros "__WINC__" and "__XCON__" defined as well as all the usual WINS macros including "__WINS__". Note that, in line with the macro scheme applied to source files, MAKMAKE will preprocess XXX.MMP files with macros "WINS" AND "WINC" defined when creating WINC makefiles, so keywords within "#if defined(WINS) ... #endif" and "START WINS ... END" blocks will apply for WINC builds too. This scheme required changes to the way MAKMAKE.PL processes START ... END blocks.3) Removed possibility of passing extra macros to makmake for preprocessing XXX.MMP files - this possibility was never documented and has never been requested so is now presumed unnecessary.4) Introduced keyword option which, if specified in XXX.MMP files, will cause MAKMAKE to search for the same deffile for all build variants rather than several files differentiated by suffixes "U","D" and "UD". The new keyword is "NOSTRICTDEF", originally enough. Hopefully deffiles for LDDs and PDDs can soon be done away with by having targettypes for LDDs and PDDs and having MAKMAKE implementation modules pass the correct mangled names as 1st ordinal command-line option arguments to DEFTOOL and DEFMAKE instead.5) Changed resource handling to be entirely compatible with eikrs.bat - the basename of XXX.RSS is used for XXX.R$(EPOCLANG) and all intermediate resource files. This change still does not fix SW1-204, for which a spec decision regarding the handling of differing licensee resource file requirements is required.Version 0.01.076================(Made by Alastair, 15th August 1997)MAKMAKE1) Changed MARM and WINS modules so that rcomp is called to compile resources directly rather than via eikrs.bat. This change will mean that resources will be compiled into the correct directory for MARM builds, and that the *.rss file need no longer be in the same directory as the makefile. This change addresses SW1-204 and SW1-212.2) The STRICTDEF keyword is no longer recognised by makmake. Its function in appending "D", "U", and "UD" to the base name of *.DEF files for DEB, UREL and UDEB builds is now carried out by default. There should now be a *.def file for each of these build variants in use if any definition files are used at all. This change addresses SW1-196.3) Makmake.cmd has been improved. If makmake fails, a basic perl operation will be attempted. If this fails, the user will be asked if the correct version of perl is installed. This change addresses SW1-345.Version 0.01.075================(Made by Alastair, 24th July 1997)DEFTOOL (from William Roberts)1) Modified DEFTOOL.CPP and DEFTOOL.H Basically just improved error reporting so that a) When it tells you that there are "frozen ordinals missing from supplied def file" it also tells you which ordinal numbers have been lost. b) If your DLL exports functions that weren't in the freeze file then it gives you a gentle warning, because that's not something which we'd want to allow in a release.MAKMAKE1) Changed makmake so that target makefile is created in the current working directory rather than the directory containing the *.mmp file.2) Added line of code to makpath.pm so that single dot directories are stripped from paths.3) Removed repeat occurrence of deffile flag in the link command for *.wins makefiles.4) Changed RELGDB path macros for MARM makefiles so that they are prefixed with ".\" rather than "..\\..<absolute path to makefile directory>". This is a neater way to get them to expand to something textually different from REL path macros while still specifying the same path.5) Changed "ar q" lines within MARM makefiles to include 8 object files maximum rather than 4 - this should improve efficiency without breaking limits on command-line lengths.6) Changed WINS.PM so that the $(LINK_OBJS) macro is used in the link command line in *.wins makefiles rather than a list of all the objects concerned.7) Changed MARM.PM so that the first stage of linking (by name) for a dll target creates the dll in the build directory rather than the release directory. The second stage of linking (by number) creates a dll in the build directory rather than the release directory too, overwriting the first dll. Finally, this target is petranned to the release directory and the dll left in the build directory is deleted. This change solves the problem of nmake thinking that the target has been successfully created when the build has failed anywhere between the first link stage and the petranning stage, because of the presence of an apparently up-to-date dll in the release directory.8) Changed WINS.PM similarly so that *.wins makefiles do a two-stage link. Defmake is called between the two link stages with a "freeze" file if one is specified with the DEFFILE statement (see below). The defmake-created def file is then used for the second-stage link (by number). The first stage of linking creates the target dll in the intermediate directory while the second stage creates the final target dll in the target directory and the first dll is deleted.9) Removed /NAME flag from MAKMAKE - no longer necessary due to (8).10) Radically changed behaviour of MAKMAKE towards DEFFILE and FRZFILE statements within *.mmp files. There is no longer handling of FRZFILE statements. As before, if a DEFFILE statement is placed within an #if defined(WINS) ... #endif block, the statement will be used by both WINS and VC4 makefiles but not MARM makefiles, and vice versa if a #if defined(MARM) ... #endif block is used. If the file specified has no path, the file is assumed to be in directory \<project>\bwins\ for WINS and VC4 makefiles and \<project>\bmarm\ for MARM makefiles. For VC4 makefiles, the specified file is passed to LINK.EXE as before. For WINS makefiles, the file is not used in the first stage of linking. Defmake is called and uses the file as a freeze file in the creation of a new deffile which will include any new exports produced by changes to the source code for the project. The new deffile created is used in the second stage of linking. For MARM makefiles, the specified file works in much the same way as for WINS makefiles. In other words, the DEFFILE statement should now be used to specify "freeze" files. WINS *.def files were in effect "freeze" files anyway. The choice of "DEFFILE" rather than "FRZFILE" for the new statement within *.mmp file reflects the widespread understanding of "def" vocabulary outside Psion. For more information, see the discussion on e32proposals - tools - makmake and frz files. The STRICTDEF keyword is still required if differently-named "freeze" files are required for different builds, but this requirement is under review together with potential default directories for components not using directories \<project>\bwins and \<project>\bmarm. Note that if these directories are not being used and files specified with the DEFFILE statement include a path then is is essential to place DEFFILE statements with #if defines because WINS and VC4 builds should never use the same "freeze" file as MARM builds due to the compilers mangling function names in different ways.11) A file specified with the DEFFILE statement is now put in the list of dependencies for a target in WINS and MARM makefiles, but not yet VC4.12) Changed MAKMAKE to allow for use of the WINDOWS API. If you are using this API, specify the windows libraries you wish to link to in *.mmp as follows START WINS BASEADDRESS 0x43500000 WIN32_LIBRARY kernel32.lib gdi32.lib user32.lib END ie, put the WIN32_LIBRARY statement somewhere in a START WINS ... END block and list the libraries after it. Please note that these START WINS ... END blocks are very different from #if defined(WINS) ... #endif blocks. Makmake always preprocesses the *.mmp file when invoked, and later passes any text within START ... END blocks onto the perl module specific to the platform in question. When makmake is invoked with the VC4 argument, the *.mmp file is preprocessed the WINS macro defined.13) Fixed bug causing AIF file subroutine to be ignored14) Fixed bug causing path specified with TARGETPATH statement to be left out of path to resource target for WINS makefiles.15) Changed resource file building command so that the base name of the target resource file is the same as the base name of the releasable rather than the base name of the file specified with the RESOURCE or SYSTEMRESOURCE statement.16) Changed name for target AIF from the base name of the releasable + ".aif" to the name specified by the AIF statement.18) Changed code designed to warn the user if the version of perl they are using is not supported by MAKMAKE so that it is activated before rather than after compilation - untested.Version 0.01.074================(Made by Alastair, 1st July 1997)MAKMAKE1) Fixed egregious error causing the content of LIBRARY statements in *.MMP files to be ignored. This error is present in e32tools releases 071, 072 and 073.Version 0.01.073================(Made by Morgan, 18th June 1997)1) ROMBUILD Added 'time' keyword for specifying the date/time stamp in the rom header. Syntax: time=dd/mm/yyyy hh:mm:ss Added 'reloc' file attribute to specify user process data run address for Exes. Added 'align' keyword to align files on particular alignment boundries.Version 0.01.072================(Made by Alastair, 16th June 1997)MAKMAKE1) Added line of code to makmake.pl so that makmake will refuse to work with versions of PERL released prior to version 5.003_07 . To find out what version of PERL you are using, type perl -v<return> in a DOS box.Version 0.01.071================(Made by Alastair, 9th June 1997)MAKMAKE1) Added new preprocessor macro, __PSISOFT32__, defined for all projects using MAKMAKE regardless of platform or build variant.Version 0.01.070================(Made by Matthew, 4th June 1997)Added new tool ROMMASK, for generating rom images suitable for masking.Version 0.01.069================(Made by Alastair, 4th June 1997)MAKMAKE1) Fixed bugs causing _UNICODE macro to be output without the initial underscore by marm.pm and wins.pm.2) Single call to gcc archiving tool "ar" replaced by multiple call to avoid overriding of command-line length limits for projects comprising many source files.3) Fixed bug in \e32tools\makmake\mnt.cmd so that makpath.pm is copied to directory \epoc32\tools\makmake.Version 0.01.068================(Made by Alastair, 2nd June 1997)MAKMAKE1) Removals makmake.txt - SDK documentation now available revmak.pl - redundant winsname.pm - redundant2) Fixesa) fixed dependency macro bug for VC4 platformb) fixed problem with mmp file specification of multiple subprojectsc) Other minor bug fixes3) Internal Changesa) Improved generation of dependenciesb) Improved path utility functionsc) Moved path utility functions out of makmake.pl to new module "MAKPATH.PM"d) Other structural changes4) Command-Line invocationa) Platform VC4 can now be specified to produce MSVC4.0 compatible makefiles - WINS platform now produces makefiles incompatible with MSVC4.0 allowing greater freedom for using nmake to build resource files, etc. *.MMP files will still be preprocessed with the "WINS" macro whether the platform is specified as WINS or VC4b) New flag "/clean" - deletes all non-source files for the project and platform specified.c) New flag "/lang [language]" - sets a language for the project and platform specified except for VC4.d) New flag "/name" - doesn't add any /def:[deffile] linker flags to WINS or VC4 makefiles. No effect on MARM makefiles. This flag makes linking-by-name builds possible for WINS.e) Flags can now be specified anywhere on the command-line5) *.MMP Filesa) New keyword "LANG [language]" - sets a language for the project and platform specified except VC4. This setting is overridden if the command-line language flag is used.b) New keyword "AIF [*.aif file]" - specifies an application information file. This keyword is subproject relative, and merely copies the *.aif file to the target directory at the moment (except for VC4).c) New keyword "BITMAP [*.mbm file] [*.bmp files]" - specifies a protea multi-bitmap target and compiles it to the target directory using bmconv on the windows bitmap files (except for VC4). The keyword is subproject relative, so all windows bitmaps files specified are expected to reside in the current \PROJECT\SUBPROJECT directory. This may not be the required behaviour.d) New "RESOURCE" keyword behaviour - eikrs.bat is invoked for MARM and WINS platforms to compile the resource specified to the target directory. VC4 platform uses the keyword parameter for information only. If a language is specified it is passed to eikrs.bat, defaults to "SC".e) New keyword "SYSTEMRESOURCE [*.rss file]" - subproject relative, behaves exactly as the RESOURCE keyword except that for WINS the target resource is compiled to directory \epoc32\release\wins\[build]\Z\system\data. Ignored by VC4.f) New "TARGETTYPE" keyword option - "exedll". This option can be used to specify a target which will be built as a dll under single-process platform WINS (or VC4), but as an exe for multi-process platform MARM.g) New keyword "STRICTDEPEND" - if specified, makmake will generate dependencies for each source or resource specified for all builds - DEB,UREL,RELGDB etc. If sources are unlikely to specify different include header files for different builds then there is no need to specify this keyword and dependencies will be generated once only for each source file.h) New "DEFFILE" keyword behaviour. This keyword is no longer platform-specific (within a "START [platform] ... END" block). If the deffile is specified without a path, then makmake will expect the deffile to live in directory "\PROJECT\BMARM" for the MARM platform, and in "\PROJECT\BWINS" for WINS or VC4. Note that currently the *.def file will be used in a call to dlltool in MARM makefiles as follows:- "dlltool --def [deffile] --output-def [created deffile]". This behaviour is required for at least one project, and different deffiles can be specified for different platforms using "#if defined [platform]" within *.mmp files.i) New keyword "FRZFILE [*.frz file]" - behaves the same as "DEFFILE" keyword as regards paths. A specified freeze file is ignored by makmake when producing WINS or VC4 makefiles. The file is used by MARM makefiles as follows "ld -z [frzfile] [dlltool-created deffile]".j) New keyword "STRICTDEF" - if this keyword is specified then makmake assumes that, for each *.def or *.frz files specified, there are actually as many of these files as there are different build configurations for the project. E.G. for WINS makefiles, if a deffile is secified in a *.mmp file as "DEFFILE mydef.def", then makmake will assume "mydefd.def", "mydefu.def" and "mydefud.def" for DEB, UREL, and UDEB builds respectively. Though for MARM, a RELGDB build would look for plain "mydef.def".6) Outputa) Makmake for MARM will produce *.MARM makefiles.b) Makmake for WINS will produce *.WINS makefiles.c) Makmake for VC4 will produce *.MAK makefiles.d) MARM and WINS makefiles are restructured to allow the following example NMAKE command-line invocations "NMAKE /f euactiv2.wins UREL" "NMAKE /f euactiv2.marm UDEB" "NMAKE /f euactiv2.wins CLEANDEB" "NMAKE /f euactiv2.marm CLEAN"e) Macros specifying target directories, language, build directories and so on are produced at the top of WINS and MARM makefiles.f) RELGDB builds for MARM aim to put the executable produced into \epoc32\release\marm\rel, and also use \epoc32\build\[project]\marm\rel as their building directory.g) Gcc tool OBJCOPY produces a *.sym file for MARM debug builds, including RELGDB.Version 0.01.067================(Made by Morgan, 19th May 1997)1) PEDIFF Recognises time/date stamps in debug and export directories. Ignores PETRAN version information in the header.2) PETRAN Uids take the full 32bits.3) WVECONV From \VNOTES\WVECONV. S3a to S5 sound file converter.Version 0.01.066================(Made by Alastair, 9th May 1997)MAKMAKE1) Fixed bug causing extra "print " text to be produced as part of the USERINCLUDES text outputted in verbose mode.2) Fixed bug causing makmake.pl to fail to produce the extension of a target filename when requested by *.pm modules3) Fixed bug causing makmake to fail with an error report if more than one flag is specified on the command lineMAKSYM1) Added a few lines of extra code so that the base address of a dll in the rom is printed to maksym.log when maksym cannot find the corresponding *.map file.Version 0.01.065================(Made by Alastair, 6th May 1997)MAKMAKE1) reorganised to be more easily maintainable and extensible.2) handles uid keyword in *.mmp file - uid1 is provided automatically, uid's 2 and 3 are specified ... UID <uid2> <uid3>in *.mmp file.3) dependency generation section calls CPP with flag -MG so that makmake responds gracefully to missing generated headers4) *.mdp and *.ncb files are automatically deleted from directories in which makmake is directed to create a wins makefile with the same root.5) petran is invoked from the arm makefile6) invocation syntax simplified so that makmake is invoked makmake [flags] [mmp file root] [platform] rather than makmake [flags] [mmp file] [destination makefile] [platform]7) makmake by default operates in quiet mode, verbose mode is invoked using the new "/V" flag on the command-line8) makmake will create the work directories rather than the makefile if the new "/MAKEWORK" flag is used on the command-line9) the "/q" flag for "del" commands is no longer added to marm makefiles created with makmake10) the DEFFILE keyword is no longer searched for within a START WINS ... END block, now it is platform independent though not yet utilised by the marm platform.11) winsname.pm is not currently expected to work12) PERL is no longer invoked with the -w debugger flagVersion 0.01.064================(Made by Morgan, 16th April 1997)1) ROMBUILD Removed the checks for unicode-ness of Uid[0] on Exes/Dlls2) W32REPRO An NT version of PREPRO written by WilliamRVersion 0.01.063================(Made by Morgan, 15th April 1997)1) MAKTRAN Changed over to the new (and slightly less mad) Uid scheme introduced in E32(098). Dlls now have a Uid[0] of 0x10000079 Exes now have a Uid[0] of 0x1000007A Everything else is as before.Version 0.01.062================(Made by Graham Asher, 15th April 1997)READTYPE Added this new tool, which writes the new file unitable.cpp, which contains the Unicode character attribute information. I've put a full explanation of how to use READTYPE in Notes under e32 software design.Version 0.01.061================(Made by Morgan, 13th April 1997)1) ROMBUILD 1) Bug fix when using the -S switch with Rom patching 2) Added class TRomSectionHeader to the start of the second section of the Rom so sectioned Roms can have a separate build time, language variant, and checksum. 3) Added iRomSectionHeader member to TRomHeader to point at the start of the sectioned Rom and padded TRomHeader to 256 bytes. This needs a new BOOTROM.BIN which will be released with E32(098) 4) Fixed a bug in the split rom verify code. 5) Fixed the overriding of Uids.Version 0.01.060================(Made by Morgan, 9th April 1997)1) PETRAN Fixed a PETRAN dumping bug when there are no .data relocations.2) MAKTRAN Bug fix for -P switch when no uid3 is specified.3) DEFMAKE Made the -S switch work when -Z is used.Version 0.01.059================(Made by Morgan, 7th April 1997)HIGHLIGHTS: * MAKTRAN now produces PETRANned targets. * Components should use the new -P switch instead of -U. * Suggested minimum commandline for Dlls: MAKTRAN <src .MAK> <dest .ARM> -z<Your .FRZ> -p"-uid2 <Your Uid2> -uid3 <Your Uid3> -nocall"2) MAKTRAN 1) Overhauled for releasing PETRANned components. -U switch has been removed and been replaced by new -P switch for specifying PETRAN command line arguments. Uid1 will default to the correct uid for the build type unless you specify otherwise.Version 0.01.058================(Made by Morgan, 3rd April 1997)1) ROMBUILD 1) Filenames can now be quoted ("") to include spaces. 2) More details provided when the Rom overflows. NOTE: Currently there is a bug that occurs if the Rom is exactly the correct size (byte for byte) and sectioning is being used. It's harmless - I'll fix this in a release soon.Version 0.01.057================(Made by Alastair, 2nd April 1997)1) MAKMAKE Fixed bug in wins.pm causing *.def files specified in *.mmp files to be ignored by MSVC. Included deftool flag -1 NewApplication__Fv for MARM makefiles where the target is an APP. E32TOOLS GROUP MNT.CMD Added lock, unlock and wholock parameters.Version 0.01.056================(Made by Alastair, 27th March 1997)Alastair:1) MAKMAKE MAKMAKE generates makefiles for WINS or MARM builds. It is being released because the SDK example projects now use it, and no longer use MAKTRAN. Makmake is by no means fully tested and is certainly not intended for incorporation into Epoc32 projects prior to V1 shipping. Details of its use are roughly documented in file \e32tools\makmake\makmake.txt. Use of makmake requires the installation of Perl from directory T:\UTIL\PERL.Version 0.01.055================(Made by Morgan, 20th March 1997)1) ROMBUILD CheckSum bug fix. Kernel alignment bug fix.Version 0.01.054================(Made by Morgan, 18th March 1997)1) ROMBUILD Removed some unnecesary recurtion and tidied some dodgy code. Loaded the files to Rom in the order they appear in the obey file, rather than depth first order. Roms can now be sectioned into two parts allowing the upper part of the rom to be switched for language variations and file patching. Both these processes require the original releasables, original obey file, and any new releasables. It is also advisable to supply the original Rom so the lower section can be verified to be constant. In a sectioned rom the directory structure, import address tables, and Dll reference tables of all files in the first Rom are placed after the section border. The overhead of sectioning a Rom (over and above an unsectioned one) is the space required to duplicate the import address tables of files from the first section. Last time I counted (B2) the iat's took up 42k. The 32bit sum of all 32bit words in the second section is always 0. This means the iChecksum member in TRomHeader is valid for the rom as a whole and for the first section in isolation. It is not possible to patch any files that are listed before the primary or the secondary. Doing this causes the position of the kernel's/file-server's entry in the directory table to move. This may be fixed in a future release. To section a Rom: Use the keyword section <rom offset> at the point in the obey file where you want the Rom to be split. All files before this line appear in the first (constant) section, and files after appear in the second (patch/language) section. Patching a file in the second section: Add file attribute 'patch[ed]' to the file to be patched. (This will cull the file from the first section). Supply a replacement file in the top section as required. Note, the original file is still required to guarantee consistency in the first section of Rom. Run ROMBUILD. Supplying a language dependant file: Put the file after the section keyword. Run ROMBUILD. To verify the lower section of Rom has remained constant: Specify the original Rom image on the command line with -r<FileName>Version 0.01.053================(Made by Morgan, 7th March 1997)1) ROMBUILD Bug fix to 'screen' keywordVersion 0.01.052================(Made by Morgan, 3rd March 1997)1) ROMBUILD Bug fix for Exes/Dlls with no relocations in .text or .rdata Check Uids for exporting .EXEs as well as .DLLs New 'screen' keyword. Default is: screen = 640x240x42) MAKTRAN Bug fixVersion 0.01.051================(Made by Morgan, 13th January 1997)Alastair:1) MAKSYM Generates a list of C++ symbols and their addresses in rom from ROMBUILD.LOG and accompanying .MAP files. MAKSYM ? for help.Version 0.01.050================(Made by Morgan, 6th January 1997)1) ROMBUILD Incompatable with any E32 before 083. Added some stuff to TRomHeader for the test department: A language bitfield (64bits for specifying the languages supported by the ROM), and a 32bit hardware identifier. The languages are as defined by TLanguage in E32STD.H. (ie Test is bit 0, English is bit 1, French is bit 2, etc...) Added two more obeyfile keywords for this. Usage: languages = <list of supported languages> hardware = <n> Rombuild now has a -? switch.Version 0.01.049================(Made by Morgan, 11th December 1996)1) MAKTRAN Object files are now grouped on the ar (archive) command line to speed up building. By default they are grouped in 4s but this can be changed by using the new -a<n> switch.2) ROMBUILD More informative error information when a dll is exporting by name.3) E32UID Removed.Version 0.01.048================(Made by Morgan, 22nd November 1996)1) ROMBUILD Added 128 bytes of space to TRomHeader which appears at the front of the ROM. This is to allow work on the StrongARM port to progress. Naturally, this makes ROMBUILD compatable with absolutely nothing. So a new bootrom.bin will be released with E32(075).Version 0.01.047================(Made by Morgan, 1st November 1996)1) MAKTRAN Another minor fix to deal with unusually shaped .MAK files. This time it's old link information stored in comment lines. Added "-Wno-ctor-dtor-privacy" to CPPFLAGS.2) PEDIFF Bug fix HA-283. The final section in a PE file may be truncated to its VirtualSize making the SizeOfRawData field of the header inaccurate. This was causing a problem in the release build but not the debug build. Fixed by padding the section data with zeros up to SizeOfRawData bytes.3) ROMBUILD Added a iTextSize member to TRomImageHeader. Making this version of rombuild incompatable with any E32 before build 075.Version 0.01.046================(Made by Morgan, 1st November 1996)1) MAKTRAN Added support for include directories other than ..\inc and \epoc32\includeVersion 0.01.045================(Made by Morgan, 7th October 1996)1) MAKTRAN Added a -U<Uid> switch to put the 3rd uid in the target's import stub so the Dll/Exe exports as DllName[Uid].Ext This enables you to use the type-safe static linking (based on the Dll's 3rd Uid) in E32(070)/F32(036) and ROMBUILD(043).2) ROMBUILD Officially PVCSed DW's patch to ROMBUILD(044) that disables type-safe static linking and added a -type-safe-link option to turn it back on. I'll leave it that way until people get used to the idea (or until someone comes up with a better plan). Also added checks on the first Uid against KNarrowDebugUid, KNarrowReleaseUid for Ascii builds and KWideDebugUid, KWideReleaseUid for Unicode builds. I havn't made this dependent on the -type-safe-link option because executables and dlls wont load if this Uid is not set correctly.Version 0.01.044================(Made by Morgan, 3rd October 1996)1) ROMBUILD ROMBUILD can now take E32 Image (pre-PETRANned) files as well as PE Format files as input.Version 0.01.043================(Made by Morgan, 2th October 1996)1) MAKTRAN Better filename parsing for the -z option.2) PETRAN Added a -priority option. This takes a number or one of these keywords: low, background, foreground, high, windowserver, fileserver, realtime, supervisor.3) ROMBUILD Added 'priority' inline keyword for EXEs. Added checks for type-safe static linking of DLLs.5) E32UID Jal: Displays the psion copyright message and build. Renumbered Uids to be Uid0, Uid1, and Uid2.6) ALL Redirected error output to stderr.Version 0.01.042================(Made by Morgan, 14th September 1996)1) PREPRO, PEIGER Changes to MNT.CMD to include the latest versions of PREPRO and PEIGER in the E32TOOLS release.2) MAKTRAN Minor bug fixes for -D defined symbols.3) E32UID Added a -Q quiet switch.Version 0.01.041================(Made by Morgan, 14th September 1996)1) MAKTRAN Added support for maktranning make files of static libraries. There are added complications when using static libraries from GCC: You may find that any executables linked with a static library produce reams of "bad relocation" errors from either PETRAN or ROMBUILD. At the moment, to work around this you will need to modify 2 lines for each build in the MAKTRANed file. $(LD) ... --whole-archive my_exe.in --no-whole-archive ... my_lib.lib becomes: $(LD) ... --whole-archive my_exe.in my_lib.lib --no-whole-archive ... this has the effect of including all code from the static library in your .EXE whether it is used or not, but it fixes the bad relocations generated by the GCC linker. MAKTRAN also propogates defined symbols from the MSVC4 Build/Settings dialog excluding: __WINS__,__VC32__,__EXE__,__DLL__, _UNICODE,WIN32,_WINDOWS2) DEFTOOL No longer truncates your def file if it can't find the specified freeze file.Version 0.01.040================(Made by Morgan, 2nd September 1996)!) ROMBUILD Bug fix: for EXEs/DLLs with no imports. The tab character is now treated as white space in obey files. Improved some error messages. Removed the universally dispised 'nocallentrypoint' directive on the grounds that it looked silly. Executables specified with 'file=' do not have the entry points called. New keyword 'dll=' indicates that the entry points should be called. Fixed filename case dependency.2) MAKTRAN Added the switches '--whole-archive' and '--no-whole-archive' around the .in file on the linker command line to keep GCC happy. This only effects EXEs - as DLLs did it already.Version 0.01.039================(Made by Morgan, 19th August 1996)1) MAKTRAN Added Unicode and Debug (U,D) suffixes to DEF files to make the filenames for each target different under the new directory structure. Freeze files have also been given the same treatment: specifying -z afile.frz will use afile.frz, afileD.frz, afileU.frz, afileUD.frz as freeze files for the respective builds.Version 0.01.038================(Made by Morgan, 2nd August 1996)1) MAKTRAN New maktran for the new epoc32 directory structure. -T option removed. Template instantiation is automatic. Dlls are auto-detected by looking for __DLL__ in the .MAK file, but this can be overridden with -D (to force a DLL) and -E (to force an EXE) Bug fix: MAKTRAN now deals with make files that do not have their "Win32 Release" target first.2) ETOUCH Replacement TOUCH program.3) ROMBUILD Bug fix: for data sections with no relocations4) PETRAN Added -nocallentrypoints option (can be shortened to -nocall) and -callentrypoints option ( shortened to -call) Bug fix: for executable files with no relocationsVersion 0.01.037================(Made by Morgan, 2nd August 1996)1) ROMBUILD Yet another change that will break your rom if you don't pay attention to the version numbers. This build is intended to work with E32 (065). The format of the Dll reference table has changed, and now looks like this: class TDllRefTable { public: TUint16 iFlags; TUint16 iNumberOfEntries; }; followed by iNumberOfEntries of these: class TDllRefTableEntry { public: TUint iEntryPoint; TUint iDllRefTable; }; Added another inline keyword "nocallentrypoint" to obey files. When attached to a file it prevents the entry points of linked Dlls being called. This is used to save time during loading when the Dll's entry points are trivial (=empty).2) Fiddled with the -s option. -S outputs the size summary to the screen and to the log -SLog outputs the size summary to the log only -SScreen outputs the size summary to the screen only3) Forced the primary's code section to start on a 4K page boundry for obscure operating system reasons. (ie, Getting the exception/interrupt vectors to land on a page boundry so they can be easily mapped by the MMU to the address where they are expected to be.)4) Added support for building Unicode roms. The implementation for writing Unicode filenames to ROM is temporarily dubious. A Unicode rom is made by specifying the keyword 'unicode' in the first section of the obey file.5) Added the keyword 'stop' so parsing of an obey file can be stopped prematurely.Version 0.01.036================(Made by Morgan, 11th July 1996)1) ROMBUILD Support for generating split ROM images - added the optional keywords: romnameodd=<file name> romnameeven=<file name> resulting in two half-roms. one containing all odd numbered half-words (16bits) and one containing all the even half-words. Checksums: Added a checksum member to TRomHeader and an optional keyword romchecksum=<n> for obey files. This results in a ROM where summing all 32 bit words (ignoring overflows) will return n. The default sum of all ROM words is 0. Checksums for the ROM and for split ROMs are now calculated and reported in the log. These checksums are calculated by summing all 8bit bytes and taking the least significant 32 bits of the result.Version 0.01.035================(Made by Morgan, 10th June 1996)1) MAKTRAN Added a RELGDB target which pretends to be the REL target while keeping the debug info. This has the same effect as a REL build when the makefile is generated with: MAKTRAN -no-strip-symbols -g"-g -fno-omit-frame-pointer" src dest2) DEFMAKE, DEFTOOL Added -2 switch to compliment the -f switch so you can specify the second ordinal as well as the first without the need to mess around with freeze files. This allows us to accomadate DLLs with the UID function at ordinal 1, and the GateL function at ordinal 2. Also added -1 switch which is the same as -f to keep things consistent.Version 0.01.034================(Made by Morgan, 26th June 1996)1) ROMBUILD Added facility to output Motorola S format Records. Use the optional keyword: srecordfilename=<output filename> in the first section of the obey file.2) MAKTRAN gcc option -mcpu-arm710 is now -mcpu=arm710 Added -strip-symbols and -no-strip-symbols options. These force the linker to keep or strip all symbol information (including debug symbol info). If both are omitted then symbols are striped for release builds only.Version 0.01.033================(Made by Morgan, 24th June 1996)1) MAKTRAN The -m6 flag on the CPPFLAGS line has changed to -mcpu-arm710 -mapcs-32 added -fvtable-thunks and removed -fno-implicit-templatesVersion 0.01.032================(Made by Morgan, 20th June 1996)1) PETRAN, ROMBUILD Bug fix: Relocations for the .rdata section were 4 bytes out when the executable had a .rdata section and no imports. PETRAN now performs a sanity check on all virtual addresses, and lists the dubious ones.2) MAKTRAN Made the error messages more descriptive when the .MAK file doesn't contain one of the expected targets.Version 0.01.031================(Made by Morgan, 12th June 1996)1) PEDIFF syntax: PEDIFF pefile pefile PEDIFF -e32 e32imagefile e32imagefile compares 2 PE/E32Image format files to see if they are identical ignoring all time/date stamps2) PETRAN Another change to the E32Image file format to add a time stamp.Version 0.01.030================(Made by Morgan, 11th June 1996)1) PETRAN, ROMBUILD Fixes to supply more information for the ram loader. (ie. the size of the import section) Documentation for the E32 Image file format is available from the 'E32Base' Notes database.Version 0.01.029================(Made by Morgan, 7th June 1996)1) PETRAN Added the command line switches: -stack <stack size> -uid<n> <uid> for setting the stack size and the file's uids The output of PETRAN has changed to the new E32Image file format giving a (seasonally adjusted) size reduction of between 20 and 40 bytes.2) ROMBUILD Uses the new E32Image file format. Added heap size, and uids to the file modifiers file = <src PE file> <dest EPOC file> [attributes]* where 'attributes' is attrib = [r|s|h|R|S|H]+ stack = <stack size> reloc = <specific relocation address> heapmax = <heap size> heapmin = <heap size> uid<n> = <uid> Files in the rom are now read-only (R) by default (use attrib=r to make them read/write) Made filename and import/export name compares case insensitive3) DEFMAKE DEFMAKE now accepts Alpha CPU PE FilesVersion 0.01.028================(Made by Morgan, 30th May 1996)1) MAKTRAN added a -g flag to pass extra parameters to the gcc command line eg. -g-fcheck-new adds: -fcheck-new to CPPFLAGS and -g"-fcheck-new -fsigned-char" adds: -fcheck-new -fsigned-charVersion 0.01.027================(Made by Morgan, 29th May 1996)1) ROMBUILD Changed the format of the 'file' keyword to allow overriding of various file attributes. New format is: file = <src PE file> <dest EPOC file> [attributes]* where 'attributes' is attrib = [r|s|h]+ stack = <stack size> reloc = <specific relocation address> The -s switch now lists file sizes in the same order as files occur in the obey file. Fixed a problem with reading relocations when the PE format file lies about the VirtualSize of the section.2) MAKTRAN Removed the -s flag from the linking stage of debug builds to keep gcc generated debug information.3) DEFTOOL Improved error reporting.4) General Removed the dependencies on TRomExeHeader and TRomDllHeader (from the header files of E32(059)) which are now defunct so the tools build properly with E32(060). Removed some of the dead code left over from E32ROMVersion 0.01.026================(Made by Morgan, 24th May 1996)1) ROMBUILD Altered the size summary output to include data files. Currently the files are listed in depth first directory order. I intend to change this so they appear in the same order as they appear in the obey file.2) PETRAN Fixed a bug that crashed the translator when the size of the relocation section of an executable was a multiple of 0x200 (the PE format file alignment size.)3) MAKTRAN Added a CLEAN target.Version 0.01.025================(Made by Morgan, 23rd May 1996)1) E32ROM has been killed2) ROMBUILD replaces E32ROM Syntax: ROMBUILD [-v] [-s] obeyfilename -v verbose flag -s gives a size summary of all executables in the rom Logged output appears in the file ROMBUILD.LOG The obey files for ROMBUILD are slightly different: The keyword 'resource' has been replaced with 'data' for putting data files in rom. A manditory keyword 'kernheapmax' has been added. The 'version' keyword has the syntax Major[.Minor[(Build)]]3) PETRAN Produces E32ImageFile format files from PEFiles.4) Jal, E32UID Attaches UIDs to WINS files.Version 0.01.024================(Made by Morgan, 14th May 1996)1) DEFMAKE, DEFTOOL and MAKTRAN Added -z switch to specify a frozen def file. The exports in the frozen def file appear first (and in order) in the new def file. All additional exports are added to the end. A warning will be give if an export in the frozen def file does not appear in the executable being processed.Version 0.01.023================(Made by Morgan, 3rd May 1996)1) Jane Added space for the Uid system to the Rom Exe and DLL headers.Version 0.01.022================(Made by Morgan, 1st May 1996)1) E32ROM: Added path checking so now it is not possible to create directories with the name "" The version specified by the obey file is now put into the rom.2) MAKTRAN: /f switch added to specify the name of the function to use as the first ordinal in the dll. (only works with /d switch). More looping bugs fixed. This time in the Archive generation. Added some meagre form of test suit: DIFs good .ARM files with files generated from the current version. Put in the work-around for the "ld hardcoded to C:" problem.Version 0.01.021================(Made by Morgan, 23rd April 1996)1) MAKTRAN bug fixes: Added gcc -g option to the debug builds to produce debug output. Fixed HA-103: Now rules are only output for .cpp files Having a .. or a . in the path for a source file (eg SOURCE=.\T_BLOB.CPP) no longer puts MAKTRAN into an endless loop. Also using system variables in path specifiers (eg {($INCLUDE)}"\AHeader.H" ) no longer fills your hard disk. Source files with no dependancies now generate a target.Version 0.01.020================(Made by Morgan, 11th April 1996) E32ROM:1) Jal, The 'resource' option is fixed and the rom is given the correct date.2) Jane, Added an error message if you don't supply enough parameters on any line in the files section.Version 0.01.019================(Made by Graham, 8th April, 1996)1) Changed MAKTRAN-created makefile compiler options: Added -fno-implcit-templates In the past GCC automatically instantiated template classes and functions. We now want to take complete control of this, so all such templates will have to be instantiated by hand. There is an extra switch (/T) on the command line which enables automatic template instantiation to be turned back on, but this should only be used when compiling test programs. Releasable code should take advantage of the reduction in ROM size which hand-instantiation brings. Removed -fvtable-thunks Those programs which exploit multiple-inheritence should now work. Added $(USERDEFS) This enables you to add your own definitions to the build. e.g. nmake /f elink.mak USERDEFS=-D_USE_LOG2) Changed MAKTRAN-created makefile linker options: Added --no-whole-archive option This should greatly improve the size and linking speed DLL's. In order to exploit this, you must get the next release of the GCC tools from the network. Do this by typing TOOLS GCC and making sure that \GCC\BIN is in your path.3) Fixed a bug with MSVC .MAK files which contain custom buildsVersion 0.01.018================(Made by Morgan, 3rd April, 1996)1) Extended DEFTOOL to take a -f switch (takes the name of the function to be ordinal 1).Version 0.01.017================(Made by Graham, 26th March, 1996)1) Fixed a bug in E32ROM which gave "relocation type not handled" in the presence of .reloc sections which were an exact multiple of 256 bytes in length.2) Fixed the MAKTRAN "if exist xxx.in del xxx.in" bug3) Added DEB, UREL and UDEB builds to MAKTRAN make filesJane:4) Better error reporting in E32ROM.EXEVersion 0.01.016================(Made by Graham, 19th March, 1996)1) Fixed a bug in targetting some test program make files.2) Changed "del xxx.in" to "if exist xxx.in del xxx.in"Lane:3) Changed the mechanism by which libraries to be linked are found.Jane:4) Further improvements to the error reporting for DEFMAKE.Version 0.01.015================(Made by Graham, 8th March, 1996)1) Changed all tools to display their version and build numbers.Jane:2) Fixed a couple of heap problems in E32ROM, and generally increased robustness. Will now print an error message if there are too many files for the ROM, rather than scribbling all over your nice memory.3) Improved some of the error reporting for DEFMAKE.Version 0.01.014================(Made by Graham, 6th March, 1996)1) Changed MAKTRAN to accept makefiles which have depenencies ..\..\ away from their source directory.Version 0.01.013================(Made by Graham, 5th March, 1996)1) Changed MAKTRAN to accept makefiles which are completely relative to the directory in which they reside. NB These makefiles cannot be correctly translated if they are moved to a different directory.Version 0.01.012================(Made by Graham, 4th March, 1996)1) Changed MAKTRAN to assume DEFTOOL.EXE is in your path2) Changed MAKTRAN so that it correctly sets __DLL__ and __EXE__3) Changed MAKTRAN to handle specially named DLL's - .DEV .MTD etc4) Changed MAKTRAN to handle projects with non-compilable components5) Changed the mechanism by which MAKTRAN decides group and project.Version 0.01.011================(Made by Graham, 27th February, 1996)1) Changed E32ROM to give each .EXE an 8K Stack2) Fixed bugs in MAKTRAN to do with picking up the name of the target3) Removed --whole-archive from .EXE make files built by MAKTRANVersion 0.01.010================(Made by Jane, 26th February, 1996)1) Fixed mnd.cmd for command line buildsVersion 0.01.009================(Made by Jane, 23rd February, 1996)1) Switched to Visual C++ 4.02) E32ROM - Added support for REM statement in obeyfiles3) E32ROM - Fixed an obeyfile init bug which became apparent under the new compiler4) DEFMAKE & E32ROM - added support for export table being in .rdata section, as it is now with Visual C++. (Export table in .edata is still supported.)5) DEFMAKE - added -q option which surrounds symbols names in "". This is mostly needed by gcc builds where all destructors have a full stop in their name.6) First release of MAKTRAN and DEFTOOL from Lane MAKTRAN converts msvc .mak files to gcc format. DEFTOOL is used by MAKTRAN to strip out garbage from .def files and to insert "NONAME" as required by gcc. For MAKTRAN usage type "MAKTRAN".7) E32ROM - in log now displays absolute ROM addresses rather than offsets, and for text onlyVersion 0.01.008================(Made by Jane, 31st January, 1996)1) Removed support for old time classVersion 0.01.007================(Made by Jane, 8th January, 1996)1) Changed to new time classVersion 0.01.006================(Made by Jane, 21st December 1995)1) Added versions to tools2) E32ROM - Changed heap min size for apps to 32k.3) E32ROM - Exits with error if files fail to fixup due to importing by nameVersion 0.01.004/005====================(Made by Jane, 15th November 1995)1) Added -R option to DEFMAKE so that the omission of ??__Dbg names in the .DEF (release 003, (1)) can be optional.2) DEFMAKE alone now prints the meaning of the switches as well as help text.Version 0.01.003================(Made by Jane, 7th November 1995)1) Changed DEFMAKE not to write any exports after it hits the first ??__Dbg prefixed name, allowing me to automate the E32 build completely.2) E32ROM - Added code to avoid overwriting the first byte of a file if presented with an invalid RVA of 0. (Bug in Cygnus tools).Version 0.01.002================(Made by Jane, 2nd November 1995)1) Converted DEFMAKE to the new HOST scheme.2) Sorted MNT.CMD so E32ROM will actually build.Version 0.01.001================(Made by Jane, 1st November 1995)1) First release.