[Lldb-commits] [lldb] r229166 - Fix build: revert r229148 "Fix argdumper build in cmake (OS X) after r228636" and r229159 "Fix build: make_symlink_darwin_debug passes 2 arguments into make_symlink, but it requires 4 arguments"

Ilia K ki.stfu at gmail.com
Fri Feb 13 14:30:11 PST 2015


Author: ki.stfu
Date: Fri Feb 13 16:30:11 2015
New Revision: 229166

URL: http://llvm.org/viewvc/llvm-project?rev=229166&view=rev
Log:
Fix build: revert r229148 "Fix argdumper build in cmake (OS X) after r228636" and r229159 "Fix build: make_symlink_darwin_debug passes 2 arguments into make_symlink, but it requires 4 arguments"


Removed:
    lldb/trunk/tools/argdumper/CMakeLists.txt
Modified:
    lldb/trunk/scripts/Python/finish-swig-Python-LLDB.sh
    lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
    lldb/trunk/test/functionalities/launch_with_glob/TestLaunchWithGlob.py
    lldb/trunk/tools/CMakeLists.txt

Modified: lldb/trunk/scripts/Python/finish-swig-Python-LLDB.sh
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/finish-swig-Python-LLDB.sh?rev=229166&r1=229165&r2=229166&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/finish-swig-Python-LLDB.sh (original)
+++ lldb/trunk/scripts/Python/finish-swig-Python-LLDB.sh Fri Feb 13 16:30:11 2015
@@ -167,7 +167,6 @@ else
     fi
 fi
 
-# Make symlink for darwin-debug on Darwin
 if [ ${OS_NAME} = "Darwin" ] && [ $MakefileCalled -ne 0 ]
 then
     # We are being built by CMake on Darwin
@@ -187,27 +186,6 @@ then
         fi
     fi
 fi
-
-# Make symlink for argdumper on any platform
-if [ $MakefileCalled -ne 0 ]
-then
-    # We are being built by CMake
-
-    if [ ! -L "${framework_python_dir}/argdumper" ]
-    then
-        if [ $Debug -eq 1 ]
-        then
-            echo "Creating symlink for argdumper"
-        fi
-        cd "${framework_python_dir}"
-        ln -s "../../../../bin/argdumper" argdumper
-    else
-        if [ $Debug -eq 1 ]
-        then
-            echo "${framework_python_dir}/argdumper already exists."
-        fi
-    fi
-fi
 
 create_python_package () {
     package_dir="${framework_python_dir}$1"

Modified: lldb/trunk/scripts/Python/finishSwigPythonLLDB.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/finishSwigPythonLLDB.py?rev=229166&r1=229165&r2=229166&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/finishSwigPythonLLDB.py (original)
+++ lldb/trunk/scripts/Python/finishSwigPythonLLDB.py Fri Feb 13 16:30:11 2015
@@ -70,8 +70,8 @@ strMsgPyFileLocatedHere = "Python file w
 strMsgFrameWkPyExists = "Python output folder '%s' already exists";
 strMsgFrameWkPyMkDir = "Python output folder '%s' will be created";
 strErrMsgCreateFrmWkPyDirFailed = "Unable to create directory '%s' error: %s";
-strMsgSymlinkExists = "Symlink for '%s' already exists";
-strMsgSymlinkMk = "Creating symlink for %s  (%s -> %s)";
+strMsglldbsoExists = "Symlink '%s' already exists";
+strMsglldbsoMk = "Creating symlink for _lldb.so  (%s -> %s)";
 strErrMsgCpLldbpy = "copying lldb to lldb package directory";
 strErrMsgCreatePyPkgMissingSlash = "Parameter 3 fn create_py_pkg() missing slash"; 
 strErrMsgMkLinkExecute = "Command mklink failed: %s";
@@ -218,159 +218,120 @@ def copy_lldbpy_file_to_lldb_pkg_dir( vD
 		strMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
 	
 	return (bOk, strMsg);
-	
-#++---------------------------------------------------------------------------
-# Details:	Make the symbolic link on a Windows platform.
-# Args:		vstrSrcFile				- (R) Source file name.
-#			vstrTargetFile			- (R) Destination file name.
-# Returns:	Bool - True = function success, False = failure.
-#			Str - Error description on task failure.
-# Throws:	None.
-#--
-def make_symlink_windows( vstrSrcPath, vstrTargetPath ):
-	print "Making symlink from %s to %s" % (vstrSrcPath, vstrTargetPath);
-	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_windows()" );
-	bOk = True;
-	strErrMsg = "";
-
-	try:
-		csl = ctypes.windll.kernel32.CreateHardLinkW
-		csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_uint32)
-		csl.restype = ctypes.c_ubyte
-		if csl(vstrTargetPath, vstrSrcPath, 0) == 0:
-			raise ctypes.WinError()
-	except Exception as e:
-		if e.errno != 17:
-			bOk = False;
-			strErrMsg = "WinError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
-			strErrMsg += " Src:'%s' Target:'%s'" % (vstrSrcPath, vstrTargetPath);
-
-	return (bOk, strErrMsg);
-
-#++---------------------------------------------------------------------------
-# Details:	Make the symbolic link on a UNIX style platform.
-# Args:		vstrSrcFile				- (R) Source file name.
-#			vstrTargetFile			- (R) Destination file name.
-# Returns:	Bool - True = function success, False = failure.
-#			Str - Error description on task failure.
-# Throws:	None.
-#--
-def make_symlink_other_platforms( vstrSrcPath, vstrTargetPath ):
-	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_other_platforms()" );
-	bOk = True;
-	strErrMsg = "";
-
-	try:
-		os.symlink( vstrSrcPath, vstrTargetPath );
-	except OSError as e:
-		bOk = False;
-		strErrMsg = "OSError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
-		strErrMsg += " Src:'%s' Target:'%s'" % (vstrSrcPath, vstrTargetPath);
-	except:
-		bOk = False;
-		strErrMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
-
-	return (bOk, strErrMsg);
 
 #++---------------------------------------------------------------------------
-# Details:	Make the symbolic link.
+# Details:	Make the symbolic that the script bridge for Python will need in 
+# 			the Python framework directory. Code for specific to Windows.
 # Args:		vDictArgs				- (R) Program input parameters.
 #			vstrFrameworkPythonDir	- (R) Python framework directory.
-#			vstrSrcFile				- (R) Source file name.
-#			vstrTargetFile			- (R) Destination file name.
+#			vstrDllName				- (R) File name for _lldb.dll.
 # Returns:	Bool - True = function success, False = failure.
 #			Str - Error description on task failure.
 # Throws:	None.
 #--
-def make_symlink( vDictArgs, vstrFrameworkPythonDir, vstrSrcFile, vstrTargetFile ):
-	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink()" );
+def make_symlink_windows( vDictArgs, vstrFrameworkPythonDir, vstrDllName ):
+	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_windows()" );
 	bOk = True;
-	strErrMsg = "";
+	strMsg = "";
+
 	bDbg = vDictArgs.has_key( "-d" );
-	strTarget = "%s/%s" % (vstrFrameworkPythonDir, vstrTargetFile);
-	strTarget = os.path.normcase( strTarget );
+	strTarget = vstrDllName;
+	# When importing an extension module using a debug version of python, you
+	# write, for example, "import foo", but the interpreter searches for
+	# "foo_d.pyd"
+	if vDictArgs["--buildConfig"].lower() == "debug":
+		strTarget += "_d";
+	strTarget += ".pyd";
+	strDLLPath = "%s\\%s" % (vstrFrameworkPythonDir, strTarget);
+	strTarget = os.path.normcase( strDLLPath );
 	strSrc = "";
 
 	os.chdir( vstrFrameworkPythonDir );
 	bMakeFileCalled = vDictArgs.has_key( "-m" );
-	eOSType = utilsOsType.determine_os_type();
 	if not bMakeFileCalled:
-		return (bOk, strErrMsg);
+		strSrc = os.path.normcase( "../../../LLDB" );
 	else:
-		strSrc = os.path.normcase( "../../../%s" % vstrSrcFile );
+		strLibFileExtn = ".dll";
+		strSrc = os.path.normcase( "../../../bin/liblldb%s" % strLibFileExtn );
 
-	if eOSType == utilsOsType.EnumOsType.Unknown:
-		bOk = False;
-		strErrMsg = strErrMsgOsTypeUnknown;
-	elif eOSType == utilsOsType.EnumOsType.Windows:
-		if os.path.isfile( strTarget ):
-			if bDbg:
-				print strMsgSymlinkExists % vstrTargetFile;
+	if os.path.isfile( strTarget ):
 		if bDbg:
-			print strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget);
-		bOk, strErrMsg = make_symlink_windows( strSrc,
-                                               strTarget );
-	else:
-		if os.path.islink( strTarget ):
-			if bDbg:
-				print strMsgSymlinkExists % vstrTargetFile;
-		if bDbg:
-			print strMsgSymlinkMk % (vstrTargetFile, strSrc, strTarget);
-		return (bOk, strErrMsg);
-		bOk, strErrMsg = make_symlink_other_platforms( strSrc,
-													   strTarget );		
+			print strMsglldbsoExists % strTarget;
+		return (bOk, strMsg);
 
-	return (bOk, strErrMsg);
+	if bDbg:
+		print strMsglldbsoMk % (os.path.abspath(strSrc), os.path.abspath(strTarget));
+		
+	try:
+		csl = ctypes.windll.kernel32.CreateHardLinkW
+		csl.argtypes = (ctypes.c_wchar_p, ctypes.c_wchar_p, ctypes.c_uint32)
+		csl.restype = ctypes.c_ubyte
+		if csl(strTarget, strSrc, 0) == 0:
+			raise ctypes.WinError()
+	except Exception as e:
+		bOk = False;
+		strMsg = "WinError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
+		strMsg += " Src:'%s' Target:'%s'" % (strSrc, strTarget);
 
+	return (bOk, strMsg);
+	
 #++---------------------------------------------------------------------------
-# Details:	Make the symbolic that the script bridge for Python will need in 
-# 			the Python framework directory.
+# Details:	Make the symbolic link that the script bridge for Python will need in 
+# 			the Python framework directory. Code for all platforms apart from
+#			Windows.
 # Args:		vDictArgs				- (R) Program input parameters.
 #			vstrFrameworkPythonDir	- (R) Python framework directory.
-#			vstrLiblldbName			- (R) File name for _lldb library.
+#			vstrSoName				- (R) File name for _lldb.so.
 # Returns:	Bool - True = function success, False = failure.
 #			Str - Error description on task failure.
 # Throws:	None.
 #--
-def make_symlink_liblldb( vDictArgs, vstrFrameworkPythonDir, vstrLiblldbFileName ):
-	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_liblldb()" );
+def make_symlink_other_platforms( vDictArgs, vstrFrameworkPythonDir, vstrSoPath ):
+	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_other_platforms()" );
 	bOk = True;
-	strErrMsg = "";
-	strTarget = vstrLiblldbFileName
+	strMsg = "";
+	bDbg = vDictArgs.has_key( "-d" );
+	strTarget = vstrSoPath + ".so";
+	strSoPath = "%s/%s" % (vstrFrameworkPythonDir, strTarget);
+	strTarget = os.path.normcase( strSoPath );
 	strSrc = "";
-
-	eOSType = utilsOsType.determine_os_type();
-	if eOSType == utilsOsType.EnumOsType.Windows:
-		# When importing an extension module using a debug version of python, you
-		# write, for example, "import foo", but the interpreter searches for
-		# "foo_d.pyd"
-		if vDictArgs["--buildConfig"].lower() == "debug":
-			strTarget += "_d";
-		strTarget += ".pyd";
-	else:
-		strTarget += ".so";
-
+			
+	os.chdir( vstrFrameworkPythonDir );
 	bMakeFileCalled = vDictArgs.has_key( "-m" );
 	if not bMakeFileCalled:
-		strSrc = "lib/LLDB";
+		strSrc = os.path.normcase( "../../../LLDB" );
 	else:
 		strLibFileExtn = "";
-		if eOSType == utilsOsType.EnumOsType.Windows:
-			strLibFileExtn = ".dll";
-			strSrc = "bin/liblldb%s" % strLibFileExtn;
-		else:
-			if eOSType == utilsOsType.EnumOsType.Linux:
-			    strLibFileExtn = ".so";
-			elif eOSType == utilsOsType.EnumOsType.Darwin:
-			    strLibFileExtn = ".dylib";
-			strSrc = "lib/liblldb%s" % strLibFileExtn;
-
-	bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
-
-	return (bOk, strErrMsg);
+		eOSType = utilsOsType.determine_os_type();
+		if eOSType == utilsOsType.EnumOsType.Linux:
+			strLibFileExtn = ".so";
+		elif eOSType == utilsOsType.EnumOsType.Darwin:
+			strLibFileExtn = ".dylib";
+		strSrc = os.path.normcase( "../../../liblldb%s" % strLibFileExtn );
 
+	if os.path.islink( strTarget ):
+		if bDbg:
+			print strMsglldbsoExists % strTarget;
+		return (bOk, strMsg);
+	
+	if bDbg:
+		print strMsglldbsoMk;
+		
+	try:
+		os.symlink( strSrc, strTarget );
+	except OSError as e:
+		bOk = False;
+		strMsg = "OSError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
+		strMsg += " Src:'%s' Target:'%s'" % (strSrc, strTarget);
+	except:
+		bOk = False;
+		strMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
+	
+	return (bOk, strMsg);
+	
 #++---------------------------------------------------------------------------
-# Details:	Make the symbolic link to the darwin-debug.
+# Details:	Make the symbolic link to the darwin-debug. Code for all platforms
+#           apart from Windows.
 # Args:		vDictArgs				- (R) Program input parameters.
 #			vstrFrameworkPythonDir	- (R) Python framework directory.
 #			vstrDarwinDebugFileName	- (R) File name for darwin-debug.
@@ -379,51 +340,41 @@ def make_symlink_liblldb( vDictArgs, vst
 # Throws:	None.
 #--
 def make_symlink_darwin_debug( vDictArgs, vstrFrameworkPythonDir, vstrDarwinDebugFileName ):
-	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_darwin_debug()" );
-	bOk = True;
-	strErrMsg = "";
-	strTarget = vstrDarwinDebugFileName;
-	strSrc = "";
-			
-	bMakeFileCalled = vDictArgs.has_key( "-m" );
-	if not bMakeFileCalled:
-	    return (bOk, strErrMsg);
-	else:
-		strSrc = "bin/lldb-launcher";
-
-	bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
-
-	return (bOk, strErrMsg);
-
-#++---------------------------------------------------------------------------
-# Details:	Make the symbolic link to the argdumper.
-# Args:		vDictArgs				- (R) Program input parameters.
-#			vstrFrameworkPythonDir	- (R) Python framework directory.
-#			vstrArgdumperFileName	- (R) File name for argdumper.
-# Returns:	Bool - True = function success, False = failure.
-#			Str - Error description on task failure.
-# Throws:	None.
-#--
-def make_symlink_argdumper( vDictArgs, vstrFrameworkPythonDir, vstrArgdumperFileName ):
-	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_argdumper()" );
+	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_other_platforms()" );
 	bOk = True;
-	strErrMsg = "";
-	strTarget = vstrArgdumperFileName;
+	strMsg = "";
+	bDbg = vDictArgs.has_key( "-d" );
+	strTarget = vstrDarwinDebugFileName
+	strDarwinDebugPath = "%s/%s" % (vstrFrameworkPythonDir, strTarget);
+	strTarget = os.path.normcase( strDarwinDebugPath );
 	strSrc = "";
 			
+	os.chdir( vstrFrameworkPythonDir );
 	bMakeFileCalled = vDictArgs.has_key( "-m" );
 	if not bMakeFileCalled:
-	    return (bOk, strErrMsg);
+	    return (bOk, strMsg);
 	else:
-		eOSType = utilsOsType.determine_os_type();
-		strSrc = "bin/argdumper";
-		if eOSType == utilsOsType.EnumOsType.Windows:
-			strSrc += ".exe"
-			strTarget += ".exe";
-
-	bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, strSrc, strTarget );
+		strSrc = os.path.normcase( "../../../../bin/lldb-launcher" );
 
-	return (bOk, strErrMsg);
+	if os.path.islink( strTarget ):
+		if bDbg:
+			print strMsglldbsoExists % strTarget;
+		return (bOk, strMsg);
+	
+	if bDbg:
+		print strMsglldbsoMk;
+		
+	try:
+		os.symlink( strSrc, strTarget );
+	except OSError as e:
+		bOk = False;
+		strMsg = "OSError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
+		strMsg += " Src:'%s' Target:'%s'" % (strSrc, strTarget);
+	except:
+		bOk = False;
+		strMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
+	
+	return (bOk, strMsg);
 
 #++---------------------------------------------------------------------------
 # Details:	Make the symlink that the script bridge for Python will need in 
@@ -434,34 +385,34 @@ def make_symlink_argdumper( vDictArgs, v
 #			strErrMsg - Error description on task failure.
 # Throws:	None.
 #--
-def create_symlinks( vDictArgs, vstrFrameworkPythonDir ):
-	dbg = utilsDebug.CDebugFnVerbose( "Python script create_symlinks()" );
+def make_symlink( vDictArgs, vstrFrameworkPythonDir ):
+	dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink()" );
 	bOk = True;
 	strWkDir = "";
 	strErrMsg = "";
 	eOSType = utilsOsType.determine_os_type();
 
-	# Make symlink for _lldb
+    # Make symlink for _lldb
 	strSoFileName = "_lldb";
-	if bOk:
-		bOk, strErrMsg = make_symlink_liblldb( vDictArgs,
+	if eOSType == utilsOsType.EnumOsType.Unknown:
+		bOk = False;
+		strErrMsg = strErrMsgOsTypeUnknown;
+	elif eOSType == utilsOsType.EnumOsType.Windows:
+		bOk, strErrMsg = make_symlink_windows( vDictArgs, 
 											   vstrFrameworkPythonDir,
 											   strSoFileName );
+	else:
+		bOk, strErrMsg = make_symlink_other_platforms( vDictArgs, 
+													   vstrFrameworkPythonDir,
+													   strSoFileName );		
 
-	# Make symlink for darwin-debug on Darwin
+    # Make symlink for darwin-debug
 	strDarwinDebugFileName = "darwin-debug"
 	if bOk and eOSType == utilsOsType.EnumOsType.Darwin:
 		bOk, strErrMsg = make_symlink_darwin_debug( vDictArgs,
 												    vstrFrameworkPythonDir,
 												    strDarwinDebugFileName );
 
-	# Make symlink for argdumper
-	strArgdumperFileName = "argdumper"
-	if bOk:
-		bOk, strErrMsg = make_symlink_argdumper( vDictArgs,
-												 vstrFrameworkPythonDir,
-												 strArgdumperFileName );
-
 	return (bOk, strErrMsg);
 
 #++---------------------------------------------------------------------------
@@ -680,7 +631,7 @@ def main( vDictArgs ):
 		bOk, strMsg = find_or_create_python_dir( vDictArgs, strFrameworkPythonDir );
 	
 	if bOk:
-		bOk, strMsg = create_symlinks( vDictArgs, strFrameworkPythonDir );
+		bOk, strMsg = make_symlink( vDictArgs, strFrameworkPythonDir );
 	
 	if bOk:
 		bOk, strMsg = copy_lldbpy_file_to_lldb_pkg_dir( vDictArgs,

Modified: lldb/trunk/test/functionalities/launch_with_glob/TestLaunchWithGlob.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/functionalities/launch_with_glob/TestLaunchWithGlob.py?rev=229166&r1=229165&r2=229166&view=diff
==============================================================================
--- lldb/trunk/test/functionalities/launch_with_glob/TestLaunchWithGlob.py (original)
+++ lldb/trunk/test/functionalities/launch_with_glob/TestLaunchWithGlob.py Fri Feb 13 16:30:11 2015
@@ -21,6 +21,7 @@ class LaunchWithGlobTestCase(TestBase):
         self.do_test ()
 
 
+    @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
     @dwarf_test
     def test_with_dwarf (self):
         self.buildDwarf()

Modified: lldb/trunk/tools/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/CMakeLists.txt?rev=229166&r1=229165&r2=229166&view=diff
==============================================================================
--- lldb/trunk/tools/CMakeLists.txt (original)
+++ lldb/trunk/tools/CMakeLists.txt Fri Feb 13 16:30:11 2015
@@ -2,7 +2,6 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
   add_subdirectory(darwin-debug)
   add_subdirectory(debugserver)
 endif()
-  add_subdirectory(argdumper)
   add_subdirectory(driver)
 if (NOT __ANDROID_NDK__)
   add_subdirectory(lldb-mi)

Removed: lldb/trunk/tools/argdumper/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/argdumper/CMakeLists.txt?rev=229165&view=auto
==============================================================================
--- lldb/trunk/tools/argdumper/CMakeLists.txt (original)
+++ lldb/trunk/tools/argdumper/CMakeLists.txt (removed)
@@ -1,8 +0,0 @@
-add_lldb_executable(argdumper
-  argdumper.cpp
-  )
-
-target_link_libraries(argdumper liblldb)
-
-install(TARGETS argdumper
-  RUNTIME DESTINATION bin)





More information about the lldb-commits mailing list