ROM Tools 13.1.0.1
Bug468 initialized static data built into a static library does not get initialized correctly
--- a/imgtools/romtools/group/release.txt Thu Aug 26 13:41:01 2010 +0100
+++ b/imgtools/romtools/group/release.txt Mon Aug 30 15:04:06 2010 +0800
@@ -1,3 +1,13 @@
+Version 2.13.0 (ROFSBUILD)
+===============
+Released by Jason Cui, 25/08/2010
+ 1) ROFSBUILD generates 0-length log file.
+
+Version 2.18.2 (ROMBUILD)
+===============
+Released by Lorence Wang, 20/08/2010
+ 1) ou1cimx1#537227 Rombuild crashed when "compress" and "unpageddata" coexist
+
Version 2.18.1 (ROMBUILD)
Version 2.13.1 (ROFSBUILD)
===============
--- a/imgtools/romtools/readimage/src/image_reader.cpp Thu Aug 26 13:41:01 2010 +0100
+++ b/imgtools/romtools/readimage/src/image_reader.cpp Mon Aug 30 15:04:06 2010 +0800
@@ -96,7 +96,7 @@
fullPath += SLASH_CHAR1 ;
}
int startImagePath = (int)fullPath.length();
- fullPath += aPath ;
+ fullPath += aPath ;
// create specified directory where file needs to be extracted.
// to lower
@@ -107,7 +107,6 @@
}
}
CreateSpecifiedDir(fullPath);
-
data -- ;
if(*data != SLASH_CHAR1)
fullPath += SLASH_CHAR1 ;
@@ -131,7 +130,8 @@
infile.seekg(aOffset,ios_base::beg);
//read number of bytes specified by the variable size
//from the stream and place it on to buffer.
- infile.read(buffer,aSize);
+ if (aSize)
+ infile.read(buffer,aSize);
//close the input stream after reading.
infile.close();
}
@@ -142,7 +142,8 @@
if(outfile.is_open()) {
//writes number of bytes specified by the variable size
//from buffer to the current output stream.
- outfile.write(buffer,aSize);
+ if (aSize)
+ outfile.write(buffer,aSize);
//close the output stream after writing.
outfile.close();
}
--- a/imgtools/romtools/rofsbuild/rofsbuild.cpp Thu Aug 26 13:41:01 2010 +0100
+++ b/imgtools/romtools/rofsbuild/rofsbuild.cpp Mon Aug 30 15:04:06 2010 +0800
@@ -47,7 +47,7 @@
static const TInt RofsbuildMajorVersion=2;
static const TInt RofsbuildMinorVersion=13;
-static const TInt RofsbuildPatchVersion=1;
+static const TInt RofsbuildPatchVersion=2;
static TBool SizeSummary=EFalse;
static TPrintType SizeWhere=EAlways;
@@ -86,9 +86,9 @@
TBool gIsOBYUTF8 = EFalse;
TBool gKeepGoing = EFalse;
void PrintVersion() {
- Print(EAlways,"\nROFSBUILD - Rofs/Datadrive image builder");
- Print(EAlways, " V%d.%d.%d\n", RofsbuildMajorVersion, RofsbuildMinorVersion, RofsbuildPatchVersion);
- Print(EAlways,Copyright);
+ printf("\nROFSBUILD - Rofs/Datadrive image builder");
+ printf(" V%d.%d.%d\n", RofsbuildMajorVersion, RofsbuildMinorVersion, RofsbuildPatchVersion);
+ printf("%s\n\n", "Copyright (c) 1996-2010 Nokia Corporation.");
}
char HelpText[] =
@@ -517,11 +517,11 @@
}
if(gThreadNum == 0) {
if(gCPUNum > 0) {
- Print (EWarning, "The number of processors (%d) is used as the number of concurrent jobs.\n", gCPUNum);
+ printf("WARNING: The number of processors (%d) is used as the number of concurrent jobs.\n", gCPUNum);
gThreadNum = gCPUNum;
}
else {
- Print (EWarning, "Can't automatically get the valid number of concurrent jobs and %d is used.\n", DEFAULT_THREADS);
+ printf("WARNING: Can't automatically get the valid number of concurrent jobs and %d is used.\n", DEFAULT_THREADS);
gThreadNum = DEFAULT_THREADS;
}
}
--- a/imgtools/romtools/rombuild/r_rom.cpp Thu Aug 26 13:41:01 2010 +0100
+++ b/imgtools/romtools/rombuild/r_rom.cpp Mon Aug 30 15:04:06 2010 +0800
@@ -563,7 +563,7 @@
TInt E32Rom::SetupPages()
{
- iHeader->iPageableRomStart = 0;
+ iHeader->iPageableRomStart = iSizeUsed;
iHeader->iPageableRomSize = 0;
iHeader->iDemandPagingConfig = gDemandPagingConfig;
@@ -637,6 +637,8 @@
pi->iDataStart = prev->iDataStart + prev->iDataSize;
}
TInt relSize = pi->iDataStart + pi->iDataSize;
+ if (relSize == 0)//no page is compressed
+ relSize = iSizeUsed;
memset((TUint8*)iHeader + relSize, 0xff, iSizeUsed - relSize);
TInt compression = (iSizeUsed >= 1000) ? (relSize*10)/(iSizeUsed/1000) : (relSize*10000)/iSizeUsed;
--- a/imgtools/romtools/rombuild/rombuild.cpp Thu Aug 26 13:41:01 2010 +0100
+++ b/imgtools/romtools/rombuild/rombuild.cpp Mon Aug 30 15:04:06 2010 +0800
@@ -33,7 +33,7 @@
static const TInt RombuildMajorVersion=2;
static const TInt RombuildMinorVersion=18;
-static const TInt RombuildPatchVersion=1;
+static const TInt RombuildPatchVersion=2;
static TBool SizeSummary=EFalse;
static TPrintType SizeWhere=EAlways;
static string compareROMName = "";
--- a/sbsv1/abld/e32util/e32tpver.pm Thu Aug 26 13:41:01 2010 +0100
+++ b/sbsv1/abld/e32util/e32tpver.pm Mon Aug 30 15:04:06 2010 +0800
@@ -24,7 +24,7 @@
sub E32tpver () {
- my $Version=679;
+ my $Version=680;
}
1;
--- a/sbsv1/abld/group/release.txt Thu Aug 26 13:41:01 2010 +0100
+++ b/sbsv1/abld/group/release.txt Mon Aug 30 15:04:06 2010 +0800
@@ -1,4 +1,8 @@
-
+Version 0.01.680
+=========================
+(Made by Marvin Shi 19/08/2010)
+1) bug468 initialized static data built into a static library does not get initialized correctly
+
<unchange>
================
(Made by Zheng Shen 12/06/2010)
--- a/sbsv1/abld/platform/ARMV5.mk Thu Aug 26 13:41:01 2010 +0100
+++ b/sbsv1/abld/platform/ARMV5.mk Mon Aug 30 15:04:06 2010 +0800
@@ -343,7 +343,7 @@
#---------------------------------------------------------
# Option to control the Linker warnings
-LD_WARNINGS_CONTROL_OPTION=--diag_suppress 6331,6780
+LD_WARNINGS_CONTROL_OPTION=--diag_suppress 6331,6780,6319 --keep *(.init) --keep *(.fini) --keep *(.init_array) --keep *(.fini_array)
# Option to suppress the Linker errors
LD_ERRORS_CONTROL_OPTION=
--- a/sbsv1/abld/platform/cl_arm.pm Thu Aug 26 13:41:01 2010 +0100
+++ b/sbsv1/abld/platform/cl_arm.pm Mon Aug 30 15:04:06 2010 +0800
@@ -459,7 +459,7 @@
my $InterWorking = ($ABI eq 'ARMV4') ? "" : "--inter";
$Archive=$ToolPrefix.'armar';
- $Link=$ToolPrefix."armlink ${oP}diag_suppress 6331,6780 ";
+ $Link=$ToolPrefix."armlink ${oP}diag_suppress 6331,6780,6319 --keep *(.init) --keep *(.fini) --keep *(.init_array) --keep *(.fini_array)";
$Objcopy=$ToolPrefix.'objcopy';
&Generic_Header(0,$Makecmd); # define standard things using absolute paths