bug 386212 - fx-win32-tbox has lost the ability to report finishing nightly builds. r=bsmedberg
authorted.mielczarek@gmail.com
Sat, 30 Jun 2007 05:57:43 -0700
changeset 2978 ac02e1827ebe6fc1520f5b16b1dda63cfb0dadb8
parent 2977 843aeb02ebaf99feec04f79da56ee164b01f4940
child 2979 a1af7136369734677ee09957f15fafc5ca72d87a
push id1
push userbsmedberg@mozilla.com
push dateThu, 20 Mar 2008 16:49:24 +0000
treeherdermozilla-central@61007906a1f8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbsmedberg
bugs386212
milestone1.9a6pre
bug 386212 - fx-win32-tbox has lost the ability to report finishing nightly builds. r=bsmedberg
Makefile.in
toolkit/airbag/tools/symbolstore.py
--- a/Makefile.in
+++ b/Makefile.in
@@ -141,20 +141,20 @@ ifeq ($(OS_ARCH),WINNT)
 MAKE_SYM_STORE_ARGS := -c
 DUMP_SYMS_BIN := $(topsrcdir)/toolkit/airbag/tools/win32/dump_syms.exe
 # PDB files don't get moved to dist, so we need to scan the whole objdir
 MAKE_SYM_STORE_PATH := .
 endif
 ifeq ($(OS_ARCH),Darwin)
 # need to pass arch flags for universal builds
 ifdef UNIVERSAL_BINARY
-MAKE_SYM_STORE_ARGS := -a "ppc i386"
+MAKE_SYM_STORE_ARGS := -a "ppc i386" --vcs-info
 MAKE_SYM_STORE_PATH := $(DIST)/universal
 else
-MAKE_SYM_STORE_ARGS := -a $(OS_TEST)
+MAKE_SYM_STORE_ARGS := -a $(OS_TEST) --vcs-info
 MAKE_SYM_STORE_PATH := $(DIST)/bin
 endif
 DUMP_SYMS_BIN := $(DIST)/host/bin/dump_syms
 endif
 ifeq ($(OS_ARCH),Linux)
 MAKE_SYM_STORE_ARGS :=
 DUMP_SYMS_BIN := $(DIST)/host/bin/dump_syms
 MAKE_SYM_STORE_PATH := $(DIST)/bin
--- a/toolkit/airbag/tools/symbolstore.py
+++ b/toolkit/airbag/tools/symbolstore.py
@@ -141,29 +141,30 @@ class Dumper:
     and an option to copy debug info files alongside the dumped
     symbol files--|copy_debug|, mostly useful for creating a
     Microsoft Symbol Server from the resulting output.
 
     You don't want to use this directly if you intend to call
     ProcessDir.  Instead, call GetPlatformSpecificDumper to
     get an instance of a subclass."""
     def __init__(self, dump_syms, symbol_path,
-                 archs=None, srcdir=None, copy_debug=False):
+                 archs=None, srcdir=None, copy_debug=False, vcsinfo=False):
         self.dump_syms = dump_syms
         self.symbol_path = symbol_path
         if archs is None:
             # makes the loop logic simpler
             self.archs = ['']
         else:
             self.archs = ['-a %s' % a for a in archs.split()]
         if srcdir is not None:
             self.srcdir = os.path.normpath(srcdir)
         else:
             self.srcdir = None
         self.copy_debug = copy_debug
+        self.vcsinfo = vcsinfo
 
     # subclasses override this
     def ShouldProcess(self, file):
         return False
 
     def RunFileCommand(self, file):
         """Utility function, returns the output of file(1)"""
         try:
@@ -224,17 +225,18 @@ class Dumper:
                     f = open(full_path, "w")
                     f.write(module_line)
                     # now process the rest of the output
                     for line in cmd:
                         if line.startswith("FILE"):
                             # FILE index filename
                             (x, index, filename) = line.split(None, 2)
                             filename = self.FixFilenameCase(filename.rstrip())
-                            filename = GetVCSFilename(filename, self.srcdir)
+                            if self.vcsinfo:
+                                filename = GetVCSFilename(filename, self.srcdir)
                             f.write("FILE %s %s\n" % (index, filename))
                         else:
                             # pass through all other lines unchanged
                             f.write(line)
                     f.close()
                     cmd.close()
                     # we output relative paths so callers can get a list of what
                     # was generated
@@ -308,25 +310,29 @@ def main():
                       action="store_true", dest="copy_debug", default=False,
                       help="Copy debug info files into the same directory structure as symbol files")
     parser.add_option("-a", "--archs",
                       action="store", dest="archs",
                       help="Run dump_syms -a <arch> for each space separated cpu architecture in ARCHS (only on OS X)")
     parser.add_option("-s", "--srcdir",
                       action="store", dest="srcdir",
                       help="Use SRCDIR to determine relative paths to source files")
+    parser.add_option("-v", "--vcs-info",
+                      action="store_true", dest="vcsinfo",
+                      help="Try to retrieve VCS info for each FILE listed in the output")
     (options, args) = parser.parse_args()
 
     if len(args) < 3:
         parser.error("not enough arguments")
         exit(1)
 
     dumper = GetPlatformSpecificDumper(dump_syms=args[0],
                                        symbol_path=args[1],
                                        copy_debug=options.copy_debug,
                                        archs=options.archs,
-                                       srcdir=options.srcdir)
+                                       srcdir=options.srcdir,
+                                       vcsinfo=options.vcsinfo)
     for arg in args[2:]:
         dumper.Process(arg)
 
 # run main if run directly
 if __name__ == "__main__":
     main()