diff -r 000000000000 -r 83f4b4db085c toolsandutils/e32tools/group/release.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolsandutils/e32tools/group/release.txt Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,3566 @@ +Version is unchanged +=============== +Made by Zheng Shen 24/08/2009 + 1. REQ12628 Tools codeline refactoring for SymTB9.2 + ROM Tools are removed from MCL. + +Version 2.2.0 (readimage) +=============== +Made by Zhi Dou 31/07/2009 + + 1. PREQ2465 REQ12562 Byte-pair compression update + +Version 2.12.0 (rombuild) +================ +(Made by Zhi Dou, 31/07/2009) + 1. PREQ2465 REQ12562 Byte-pair compression update + +Version 2.5.0 (rofsbuild) +================ +(Made by Zhi Dou, 31/07/2009) + 1. PREQ2465 REQ12562 Byte-pair compression update + +Version 2.11.0 (rombuild) +================ +(Made by Zheng Shen, 23/07/2009) + 1. PREQ2465 REQ11939 Warnings for unpaged memory size overflows + +Version 2.10.1 (rombuild) +=============== +Made by Zhi Dou 29/07/2009 + + 1. DEF140763 ROMBUILD should prevent kernel extensions linking to user side + +Version 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/2009 + +1. ChrisN + 1. MILESTONE: SymTB9.2, GT0419, MS3.36, DS.1815 PREQ2621 System Architecture Relocating header files - K&HS support + +Version 2.1.601 +=============== +Made by DeleOgunjumelo 15/01/2009 + +1. 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 interpretsis + +Version 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 used + +Version 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 crashes + +Version 2.1.584 +=============== +Released by AndrewSmi, 09/08/2007 +1. AndrewSmi + 1. DEF110094: Run mode debug: debuggable keyword not supported for armv5_abiv1 in MCL + +Version 2.1.583 +=============== +Released by Tamilarasu Byran, 08/08/2007 + 1. DEF106861: Specifying a compression method in buildrom doesn't work + +Version 2.1.582 +=============== +Released by MiguelB, 06/06/2007 + +1. Andrew Haigh + 1. PREQ1426: Added Debuggable bitfield to E32 header and associated changes + + +Version 2.1.581 +=============== +Released by ???, dd/mm/yyyy +1. 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 image + +Version 2.1.580 +=============== +Released by JonC, 03/04/2007 + + 1) DEF104558 ELF2E32 should build dynamically for TOOLS2 rather than statically for TOOLS + +Version 2.1.579 +=============== +Released by KunalM, 27/03/2007 + + 1) Seclib built as part of the system build + +Version 2.1.578 +=============== +Released by KunalM, 20/03/2007 + + 1) ROM building tools (ROMBUILD,ROFSBUILD) ported to the TOOLS2 platform, under PREQ1182, MS3.1 + +Version 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 TOOLS2 + + +Version 2.00.575 +========================== +(Made by JonathanM, 07/02/2007) + +1) JonathanM + DEFECT FIX: DEF101095: DP: Rofsbuild doesn't support paged, unpaged and pagingoverride keywords + +Version 2.00.574 +========================== +(Made by Dusko, 12/12/2006) + +1) Dusko + DEF097419: DemandPaging:Keywords paged/unpaged are case sensitive + +Version 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 ROMs + +2. 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 filenames + +Version 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 ROMs + +Version 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 data + + +Version 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 compression + + +Version 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 DLL + +Version 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.doc + +Version 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 configuration +Version 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 outfile + +Version 2.00.548 +================ +(Made by JonC, 21/07/2005) +1) JonC + PREQ1032 Hardware-dependent support for "VFP" floating point acceleration and accelerated maths functions + +Version 2.00.547 +=========================== +(Made by DuskoJ, 13/07/2005) +1) Dusko + DEF063791 ROFSBUILD resets main ROFS file attributes when processing a ROFS extension + +Version 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 files + +Version 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 Problems + +Version 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 Leaks + +Version 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 MCL + +Version 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 conflicts + +Version 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 ON + + +Version 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 files + +Patch 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.0 + +Version 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.EXE + +Version 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/2004 + +1) 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/2004 + +1) 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.doc + +Version 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/2004 + +1) Dusko + 1) Fix for DEF042440 - elfdump creates a new file with zero length. + + +Version 2.01.520 +================ +Made by AndrewJ, 13/02/2004 + +1) 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/2004 + +1) Jon + 1) Fix for - DEF040324 PETRAN access violation whilst converting THUMB build EXEDLL + (Further amendment). + +Version 2.01.518 +================ +Made by DuskoJ, 22/01/2004 + +1) Kuldip + 1) Fix for DEF40965 Changes to stop overwriting readonly attribute for directories. + + +Version 2.01.517 +================ +Made by DuskoJ, 05/01/2004 + +1) Kuldip + Fix for DEF039055 "Change in behaviour for 0 length files" + +Version 2.01.516 +================ +Made by DuskoJ, 19/12/2003 + +1) Dusko + 1) fix for DEF039365 - Petran ignores -fixed keyword + + +Version 2.01.515 +================ +Made by Dusko, 17/12/2003 + +1. Kuldip + 1) REQ1733, A3.2 Improved Command Line Build Tools + ROFSBUILD ROM flexing, Automatic sizing behaviour + Automatic XIP-extension OBEYFILE, header generation + +Version 2.01.514 +================ +Made by Dusko, 24/11/2003 + +1. Dusko + 1) DEF039411 pediff does not ignore the header CRC + File changed pediff.cpp + +Version 2.01.513 +================ +Made by Dusko, 03/11/2003 + +1. 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/2003 + +1. Dusko + 1. Zephyr,PRO0085,REQ1663, Remove dependencies on MSDEV + Changes to BIN2COFF and WVECONV in order to build with CW + + +Version 2.01.511 +================ +Made by Dusko, 02/10/2003 + +1. Dusko + 1. fix for DEF037065 Problem with error message from uidcrc + +Version 2.01.510 +================ + +Made by Dennis, 24/09/2003 + +1. 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/2003 + +1) Morgan + Ported ROFSBUILD extension support from beech + 1) Added ROFSBUILD extension support. Start a ROFS extension with obey file + commands + extensionrofs = + rofssize = + 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 beech + +3) Dusko Changes to a number of e32tools components in order to build cleanly with CodeWarrior + + +Version 1.00.504 +================ +Made by DuskoJ, 25/07/2003 + +1. Jon + 1. Fixed DEF036679 by adding copyright statements where appropriate. + + +Version 2.00.503 +================ + +1) Morgan + 1) Removed ROMBUILD build warning + +Version 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.0 +1) 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 Tools + +1) 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 Tools + +1) Dennis + 1) Added support for the x86 development target to PETRAN + 2) Added various values to the ROM header for EKA2 in ROMBUILD +2) William + 1) Added -capability option to PETRAN. There isn't yet an iCapability field in the + E32ImageHeader, but everything else is ready to go. + + +================ +ROMBUILD version 2.05 + +1) 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.lst + +Todo +handle section 1 DLLs linking to section 2 DLLs so that section 2 can be replaced +respect the E32Image flags for dll static data and called entrypoints + + +2) Chris + 1) Updated romimage.rtf to remove screensize keyword + +3) 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.04 + +1) 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.03 + +1) 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.02 + +1) Nicolas + + 1) ROMBUILD: Introduced new area syntax (incompatible with the existing + scheme): + + a) The "area " statement declares an area + (there is no need to declare the default ROM area). + + b) The "area=" 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.01 + +1) 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.01 + +Version 1.00.174 +================ +Made by William, 23/03/2001 + +1) 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/2001 + +1) Morgan + 1) Fixed ROMBUILD to accept DLLs with no imports and DLLs with no exports + + +Version 1.00.172 +================ +Made by William, 07/12/2000 + +1) 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\e32tools + + +Version 1.00.171 +================ +Made by Nicolas, 19/10/2000 + +1) 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 W32REPRO + + +Version 1.00.170 +================ +Made by Dennis, 13/09/2000 + +1) 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/2000 + +1) 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 smartfirmware + +Version 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 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 warnings + + +Version 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=" 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 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 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 [] + + 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 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. rather than E32TOOLS.. 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 1999 + +1) 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 GETCOMPS + + +Version 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) + +Morgan +ROMBUILD +1) Big-endian bug fix + +Alastair +DEFMAKE +1) Fixed Epoc S/W Problem SW1-141 - 'DEFMAKE adds an "E" to the end of + the generated DEF file' +ROMBUILD +1) 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 + ROMBUILD +1) 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) + +ROMBUILD +1) Fixed the 'code-align' file attribute +2) 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 of +new project E32TOOLP. + + +Version 0.01.090 +================ +(Made by Morgan, 13th February 1998) + +ROMBUILD +1) 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) + +DEFMAKE +1) 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. + +MAKMAKE +1) 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. + + +BLDMAKE +1) Added warning that BLDMAKE ALL won't create batchfiles for preparing + IDE makefiles. + + +Version 0.01.088 +================ +(Made by Morgan, 29th January 1998) + +MAKMAKE +1) Inserted '-bigendian' on the PETRAN command line for BE builds + +PETRAN and ROMBUILD +1) Added -bigendian switches to both tools + +From Simon Lewis +1) Added a new file attribute 'code-align' to ROMBUILD +2) Added the switches '-align-const-section' and + 'const-section-address-mask' to PETRAN + + +Version 0.01.087 +================ +(Made by Alastair, 23th January 1998) + +MAKMAKE +1) 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 + END + +10) Added new module SARMBE.PM for creating big-endian single-process + arm makefiles + +11) 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. + +BLDMAKE +1) 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) + +DEFMAKE +1) 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. + +MAKMAKE +1) 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) + +MAKMAKE +1) 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) + +MAKMAKE +1) 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 Fixes +1) 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) + +MAKMAKE +1) 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 .OBJ to exist in the build directories + for a project, while MARM makefiles will look for .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 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 ".UID.cpp". The source file will look something like this + + // Makmake-generated uid source file + #include + #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. + +GROUP +1) 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) + +ROMBUILD +1) 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. + +PETRAN +1) Added -fixed and -moving options which set and clear KImageFixedAddressExe + flag respectively. + +2) Added the following switches + -heap + -allowdlldata + -datalinkaddress + +MAKSYM +1) Removed duplicate function address error message. + + +Version 0.01.080 +================ +(Made by Alastair, 30th September 1997) + +MAKMAKE +1) 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) + +ROMBUILD +1) 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 ' to generate a + single process ROM. Default is 'multiprocess'. + + +Version 0.01.078 +================ +(Made by Alastair, 15th September 1997) + +MAKMAKE + +0) 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.PM + +8) 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 MNT + +1) 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) + +MAKMAKE + +1) 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) + +MAKMAKE + +1) 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. + +MAKMAKE + +1) 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 "..\\..". + 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 + \\bwins\ for WINS and VC4 makefiles and \\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 + \\bwins and \\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 ignored +14) 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) + +MAKMAKE +1) 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) + +MAKMAKE +1) 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 in a DOS box. + + +Version 0.01.071 +================ +(Made by Alastair, 9th June 1997) + +MAKMAKE +1) 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) + +MAKMAKE + +1) 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) + +MAKMAKE + +1) Removals + makmake.txt - SDK documentation now available + revmak.pl - redundant + winsname.pm - redundant + +2) Fixes + +a) fixed dependency macro bug for VC4 platform +b) fixed problem with mmp file specification of + multiple subprojects +c) Other minor bug fixes + +3) Internal Changes + +a) Improved generation of dependencies +b) Improved path utility functions +c) Moved path utility functions out of makmake.pl to + new module "MAKPATH.PM" +d) Other structural changes + +4) Command-Line invocation + +a) 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 VC4 +b) 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-line + +5) *.MMP Files + +a) 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) Output + +a) 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) + +MAKMAKE + +1) 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 modules + +3) Fixed bug causing makmake to fail with an error report if + more than one flag is specified on the command line + +MAKSYM + +1) 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) + +MAKMAKE + +1) 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 + +in *.mmp file. + +3) dependency generation section calls CPP with flag -MG so that + makmake responds gracefully to missing generated headers + +4) *.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 makefile + +6) 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-line + +8) makmake will create the work directories rather than the makefile + if the new "/MAKEWORK" flag is used on the command-line + +9) the "/q" flag for "del" commands is no longer added to marm makefiles + created with makmake + +10) 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 work + +12) PERL is no longer invoked with the -w debugger flag + +Version 0.01.064 +================ +(Made by Morgan, 16th April 1997) + +1) ROMBUILD + Removed the checks for unicode-ness of Uid[0] on Exes/Dlls + +2) W32REPRO + An NT version of PREPRO written by WilliamR + + +Version 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 -z -p"-uid2 -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 + 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 + + +Version 0.01.053 +================ +(Made by Morgan, 7th March 1997) + +1) ROMBUILD + Bug fix to 'screen' keyword + + +Version 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 = 640x240x4 + +2) MAKTRAN + Bug fix + + +Version 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 = + hardware = + + 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 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\include + + +Version 0.01.045 +================ +(Made by Morgan, 7th October 1996) + +1) MAKTRAN + Added a -U 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,_WINDOWS + +2) 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 relocations + +4) PETRAN + Added -nocallentrypoints option (can be shortened to -nocall) + and -callentrypoints option ( shortened to -call) + Bug fix: for executable files with no relocations + + +Version 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 only + +3) 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= + romnameeven= + 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= + 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 dest + +2) 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= + 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-templates + + +Version 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 stamps + +2) 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 + -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 = [attributes]* + where 'attributes' is + attrib = [r|s|h|R|S|H]+ + stack = + reloc = + heapmax = + heapmin = + 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 insensitive + +3) DEFMAKE + DEFMAKE now accepts Alpha CPU PE Files + + +Version 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-char + + +Version 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 = [attributes]* + where 'attributes' is + attrib = [r|s|h]+ + stack = + reloc = + + 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 E32ROM + + +Version 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 killed + +2) 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_LOG + +2) 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 builds + + +Version 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" bug + +3) Added DEB, UREL and UDEB builds to MAKTRAN make files + +Jane: + +4) Better error reporting in E32ROM.EXE + + +Version 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 path +2) Changed MAKTRAN so that it correctly sets __DLL__ and __EXE__ +3) Changed MAKTRAN to handle specially named DLL's - .DEV .MTD etc +4) Changed MAKTRAN to handle projects with non-compilable components +5) 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 Stack +2) Fixed bugs in MAKTRAN to do with picking up the name of the target +3) Removed --whole-archive from .EXE make files built by MAKTRAN + +Version 0.01.010 +================ +(Made by Jane, 26th February, 1996) + +1) Fixed mnd.cmd for command line builds + +Version 0.01.009 +================ +(Made by Jane, 23rd February, 1996) + +1) Switched to Visual C++ 4.0 + +2) E32ROM - Added support for REM statement in obeyfiles + +3) E32ROM - Fixed an obeyfile init bug which became apparent under the new compiler + +4) 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 only + +Version 0.01.008 +================ +(Made by Jane, 31st January, 1996) + +1) Removed support for old time class + + +Version 0.01.007 +================ +(Made by Jane, 8th January, 1996) + +1) Changed to new time class + + +Version 0.01.006 +================ +(Made by Jane, 21st December 1995) + +1) Added versions to tools + +2) E32ROM - Changed heap min size for apps to 32k. + +3) E32ROM - Exits with error if files fail to fixup due to importing by name + + +Version 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. +