fix: emake log output corruption fix by using output from the annotation file. Updates.
--- a/sbsv2/raptor/lib/config/make.xml Mon Mar 15 15:52:03 2010 +0000
+++ b/sbsv2/raptor/lib/config/make.xml Mon Mar 15 16:32:51 2010 +0000
@@ -47,6 +47,9 @@
<!-- is the text output with -j buffered or scrambled? -->
<set name="scrambled" value="true"/>
+
+ <!-- workaround for damaged log output from emake -->
+ <set name="copylogfromannofile" value="false"/>
</var>
<alias name="make" meaning="make_engine"/>
@@ -67,6 +70,9 @@
<set name="build" value="$(EMAKE) HAVE_ORDERONLY= -r"/>
<set name="scrambled" value="false"/>
<set name='TALON_DESCRAMBLE' value=''/>
+
+ <!-- workaround for damaged log output from emake -->
+ <set name="copylogfromannofile" value="true"/>
</var>
<alias name="emake" meaning="emake_engine"/>
--- a/sbsv2/raptor/python/raptor_make.py Mon Mar 15 15:52:03 2010 +0000
+++ b/sbsv2/raptor/python/raptor_make.py Mon Mar 15 16:32:51 2010 +0000
@@ -31,6 +31,7 @@
import traceback
import sys
from xml.sax.saxutils import escape
+from xml.sax.saxutils import unescape
class BadMakeEngineException(Exception):
@@ -139,8 +140,9 @@
if self.copyLogFromAnnoFile:
for o in self.raptor.makeOptions:
- if o.startswith("--mo=--emake-annofile="):
- self.annoFileName = o[22:]
+ if o.startswith("--emake-annofile="):
+ self.annoFileName = o[17:]
+ self.raptor.Info("annofile: " + o)
if not self.annoFileName:
self.raptor.Info("Cannot copy log from annotation file as no annotation filename was specified via the option --mo=--emake-annofile=<filename>")
@@ -599,12 +601,13 @@
else:
returncode = p.wait()
- annofilename = self.annoFileName.replace("#MAKEFILE#",makefile)
+ annofilename = self.annoFileName.replace("#MAKEFILE#", makefile)
+ self.raptor.Info("copylogfromannofile: Copying log from annotation file %s to work around a potential problem with the console output", annofilename)
try:
for l in XMLEscapeLog(AnnoFileParseOutput(annofilename)):
self.raptor.out.write(l)
except Exception,e:
- self.raptor.Error("Couldn't complete stdout output from annofile %s for %s - '%s'", annofile, command, str(e))
+ self.raptor.Error("Couldn't complete stdout output from annofile %s for %s - '%s'", annofilename, command, str(e))
# Take all the stderr output that went into the .stderr file
@@ -629,7 +632,7 @@
self.raptor.Error("Exception '%s' during '%s'", str(e), command)
self.Tidy()
# Still report end-time of the build
- self.raptor.InfoEnd(object_type = "Building", task = "Makefile",
+ self.raptor.InfoEndTime(object_type = "Building", task = "Makefile",
key = str(makefile))
return False