diff --git a/indra/newview/fs_viewer_manifest.py b/indra/newview/fs_viewer_manifest.py index 33582e8c5d..76a2ae389c 100644 --- a/indra/newview/fs_viewer_manifest.py +++ b/indra/newview/fs_viewer_manifest.py @@ -64,6 +64,13 @@ class FSViewerManifest: print "Working directory: %s" % os.getcwd() print "Couldn't sign windows installer. Tried to sign %s" % self.args['configuration']+"\\"+substitution_strings['installer_file'] + def fs_delete_linux_symbols( self ): + debugDir = os.path.join( self.get_dst_prefix(), "bin", ".debug" ) + + if os.path.exists( debugDir ): + from shutil import rmtree + rmtree( debugDir ) + def fs_save_linux_symbols( self ): #AO: Try to package up symbols # New Method, for reading cross platform stack traces on a linux/mac host @@ -80,12 +87,18 @@ class FSViewerManifest: fileSource = os.path.join( self.get_dst_prefix(), "..", "firestorm-bin" ) debugName = "firestorm-bin.debug" + debugIndexName = "firestorm-bin.debug.gdb-index" debugDir = os.path.join( self.get_dst_prefix(), "bin", ".debug" ) debugFile = os.path.join( self.get_dst_prefix(), "bin", ".debug", debugName ) + debugIndexFile = os.path.join( self.get_dst_prefix(), "bin", ".debug", debugIndexName ) if not os.path.exists( debugDir ): os.makedirs( debugDir ) self.run_command( "objcopy %s %s" % (fileSource, debugFile) ) + + self.run_command( "gdb -batch -ex \"save gdb-index %s\" %s" % (debugDir, debugFile ) ) + self.run_command( "objcopy --add-section .gdb_index=%s --set-section-flags .gdb_index=readonly %s %s" % (debugIndexFile, debugFile, debugFile) ) + self.run_command( "cd %s && objcopy --add-gnu-debuglink=%s %s" % (debugDir, debugName, fileBin) ) if( os.path.exists( "%s/firestorm-symbols-linux.tar.bz2" % self.args['configuration'].lower()) ): diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 618c113f5f..f0240c6357 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1342,6 +1342,7 @@ class LinuxManifest(ViewerManifest): installer_name = "_".join(installer_name_components) #installer_name = self.installer_base_name() + self.fs_delete_linux_symbols() # Delete old syms self.strip_binaries() self.fs_save_linux_symbols() # Package symbols, add debug link