[Lldb-commits] [PATCH] D29266: Synchronize PlatformNetBSD with Linux
krytarowski added a comment. I need to finish three patches: - llvm::call_once, - auxv reading, - six.py conflict removal and I will join here. After that, I will switch the PT_WATCHPOINT* interface to PT_GETDBREGS and PT_SETDBREGS -- and in the end, add dbregs support in NetBSD's userdata. Later on, I will need to finish few tasks on the NetBSD side (thread suspend/resume; detect simple false positives in the check-lldb target). Repository: rL LLVM https://reviews.llvm.org/D29266 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r293948 - Fix mac build breakage due to StringStream move
Author: labath Date: Thu Feb 2 16:38:12 2017 New Revision: 293948 URL: http://llvm.org/viewvc/llvm-project?rev=293948=rev Log: Fix mac build breakage due to StringStream move Modified: lldb/trunk/source/Host/macosx/Host.mm Modified: lldb/trunk/source/Host/macosx/Host.mm URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Host.mm?rev=293948=293947=293948=diff == --- lldb/trunk/source/Host/macosx/Host.mm (original) +++ lldb/trunk/source/Host/macosx/Host.mm Thu Feb 2 16:38:12 2017 @@ -62,7 +62,7 @@ #include "lldb/Core/Module.h" #include "lldb/Core/ModuleSpec.h" #include "lldb/Core/StreamFile.h" -#include "lldb/Core/StreamString.h" +#include "lldb/Utility/StreamString.h" #include "lldb/Core/StructuredData.h" #include "lldb/Host/ConnectionFileDescriptor.h" #include "lldb/Host/Endian.h" ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D29405: Install six.py conditionally
labath added a comment. Look at top level CmakeLists.txt file you will find an add_custom_target rule that runs it. Repository: rL LLVM https://reviews.llvm.org/D29405 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D29405: Install six.py conditionally
krytarowski added a comment. I will try to reverse engineer it.. Repository: rL LLVM https://reviews.llvm.org/D29405 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D29405: Install six.py conditionally
krytarowski added a comment. In https://reviews.llvm.org/D29405#664957, @labath wrote: > Unfortunately, this prevents six.py being copied into the build directory, so > a non-installed lldb will still not work (if you don't have the system > six.py). > > It looks like you will have to pass this flag into finishSwigPythonLLDB.py > and check the condition there. I would do it but I understand how to pass a flag to this script. What and when is calling it? I guess that swig executable? Is there an option to install this file to a build directory with CMake? This part is clearer. Repository: rL LLVM https://reviews.llvm.org/D29405 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D29405: Install six.py conditionally
labath added a comment. Unfortunately, this prevents six.py being copied into the build directory, so a non-installed lldb will still not work (if you don't have the system six.py). It looks like you will have to pass this flag into finishSwigPythonLLDB.py and check the condition there. Repository: rL LLVM https://reviews.llvm.org/D29405 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r293913 - Fix windows build after r293821
Author: labath Date: Thu Feb 2 12:14:04 2017 New Revision: 293913 URL: http://llvm.org/viewvc/llvm-project?rev=293913=rev Log: Fix windows build after r293821 We started passing the list of libraries to link to the add_lldb_unittest macro, but that macro wasn't actually doing anything with them. Fix that. Modified: lldb/trunk/unittests/CMakeLists.txt Modified: lldb/trunk/unittests/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/CMakeLists.txt?rev=293913=293912=293913=diff == --- lldb/trunk/unittests/CMakeLists.txt (original) +++ lldb/trunk/unittests/CMakeLists.txt Thu Feb 2 12:14:04 2017 @@ -40,7 +40,7 @@ function(add_lldb_unittest test_name) COMMAND "${CMAKE_COMMAND}" -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Inputs) lldb_link_common_libs(${test_name} EXE) - target_link_libraries(${test_name} ${CLANG_USED_LIBS} ${LLDB_SYSTEM_LIBS}) + target_link_libraries(${test_name} ${ARG_LINK_LIBS} ${CLANG_USED_LIBS} ${LLDB_SYSTEM_LIBS}) endfunction() function(add_unittest_inputs test_name inputs) ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D29406: Unify PlatformPOSIX::ResolveExecutable
This revision was automatically updated to reflect the committed changes. Closed by commit rL293910: Unify PlatformPOSIX::ResolveExecutable (authored by labath). Changed prior to commit: https://reviews.llvm.org/D29406?vs=86672=86846#toc Repository: rL LLVM https://reviews.llvm.org/D29406 Files: lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h lldb/trunk/source/Plugins/Platform/Kalimba/PlatformKalimba.cpp lldb/trunk/source/Plugins/Platform/Kalimba/PlatformKalimba.h lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.h lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h lldb/trunk/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp lldb/trunk/source/Plugins/Platform/NetBSD/PlatformNetBSD.h lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.h Index: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h === --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h @@ -31,10 +31,6 @@ // // lldb_private::Platform functions // - lldb_private::Error ResolveExecutable( - const lldb_private::ModuleSpec _spec, lldb::ModuleSP _sp, - const lldb_private::FileSpecList *module_search_paths_ptr) override; - lldb_private::Error ResolveSymbolFile(lldb_private::Target , const lldb_private::ModuleSpec _spec, Index: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp === --- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp +++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp @@ -194,120 +194,6 @@ return file_list; } -Error PlatformDarwin::ResolveExecutable( -const ModuleSpec _spec, lldb::ModuleSP _module_sp, -const FileSpecList *module_search_paths_ptr) { - Error error; - // Nothing special to do here, just use the actual file and architecture - - char exe_path[PATH_MAX]; - ModuleSpec resolved_module_spec(module_spec); - - if (IsHost()) { -// If we have "ls" as the exe_file, resolve the executable loation based on -// the current path variables -if (!resolved_module_spec.GetFileSpec().Exists()) { - module_spec.GetFileSpec().GetPath(exe_path, sizeof(exe_path)); - resolved_module_spec.GetFileSpec().SetFile(exe_path, true); -} - -if (!resolved_module_spec.GetFileSpec().Exists()) - resolved_module_spec.GetFileSpec().ResolveExecutableLocation(); - -// Resolve any executable within a bundle on MacOSX -Host::ResolveExecutableInBundle(resolved_module_spec.GetFileSpec()); - -if (resolved_module_spec.GetFileSpec().Exists()) - error.Clear(); -else { - const uint32_t permissions = - resolved_module_spec.GetFileSpec().GetPermissions(); - if (permissions && (permissions & eFilePermissionsEveryoneR) == 0) -error.SetErrorStringWithFormat( -"executable '%s' is not readable", -resolved_module_spec.GetFileSpec().GetPath().c_str()); - else -error.SetErrorStringWithFormat( -"unable to find executable for '%s'", -resolved_module_spec.GetFileSpec().GetPath().c_str()); -} - } else { -if (m_remote_platform_sp) { - error = - GetCachedExecutable(resolved_module_spec, exe_module_sp, - module_search_paths_ptr, *m_remote_platform_sp); -} else { - // We may connect to a process and use the provided executable (Don't use - // local $PATH). - - // Resolve any executable within a bundle on MacOSX - Host::ResolveExecutableInBundle(resolved_module_spec.GetFileSpec()); - - if (resolved_module_spec.GetFileSpec().Exists()) -error.Clear(); - else -error.SetErrorStringWithFormat( -"the platform is not currently connected, and '%s' doesn't exist " -"in the system root.", -resolved_module_spec.GetFileSpec().GetFilename().AsCString("")); -} - } - - if (error.Success()) { -if (resolved_module_spec.GetArchitecture().IsValid()) { - error = ModuleList::GetSharedModule(resolved_module_spec, exe_module_sp, - module_search_paths_ptr, NULL, NULL); - - if (error.Fail() || exe_module_sp.get() == NULL || - exe_module_sp->GetObjectFile() == NULL) { -exe_module_sp.reset(); -error.SetErrorStringWithFormat( -"'%s' doesn't contain the architecture %s", -
[Lldb-commits] [lldb] r293910 - Unify PlatformPOSIX::ResolveExecutable
Author: labath Date: Thu Feb 2 11:50:03 2017 New Revision: 293910 URL: http://llvm.org/viewvc/llvm-project?rev=293910=rev Log: Unify PlatformPOSIX::ResolveExecutable Summary: various platforms very using nearly identical code for this method. As far as I can tell there was nothing platform-specific about the differences, but rather it looked like it was caused by tiny tweaks being made to individual copies without affecting the overall functionality. I have taken the superset of all these tweaks and put it into one method in the base class (incidentaly, nobody was using the base class implementation of the method, as all classes were overriding it). From the darwin class I took the slightly improved error reporting (checking whether the file is readable) and the ResolveExecutableInBundle call (which has no effect elsewhere as the function is already a no-op on non-darwin platforms). From the linux class I took the set-the-triple-vendor-to-host-if-unspecified tweak (present in PlatformKalimba as well). PlatformWindows has an identical copy as well. We could resolve that by pushing this code further down into Platform class, that that would require pushing the m_remote_platform_sp member as well, which seems like a bad design choice. Reviewers: clayborg, emaste, krytarowski Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D29406 Modified: lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h lldb/trunk/source/Plugins/Platform/Kalimba/PlatformKalimba.cpp lldb/trunk/source/Plugins/Platform/Kalimba/PlatformKalimba.h lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.cpp lldb/trunk/source/Plugins/Platform/Linux/PlatformLinux.h lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.h lldb/trunk/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp lldb/trunk/source/Plugins/Platform/NetBSD/PlatformNetBSD.h lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.h Modified: lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp?rev=293910=293909=293910=diff == --- lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp (original) +++ lldb/trunk/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp Thu Feb 2 11:50:03 2017 @@ -134,112 +134,6 @@ Error PlatformFreeBSD::RunShellCommand(c } } -Error PlatformFreeBSD::ResolveExecutable( -const ModuleSpec _spec, lldb::ModuleSP _module_sp, -const FileSpecList *module_search_paths_ptr) { - Error error; - // Nothing special to do here, just use the actual file and architecture - - char exe_path[PATH_MAX]; - ModuleSpec resolved_module_spec(module_spec); - - if (IsHost()) { -// If we have "ls" as the module_spec's file, resolve the executable -// location based on -// the current path variables -if (!resolved_module_spec.GetFileSpec().Exists()) { - module_spec.GetFileSpec().GetPath(exe_path, sizeof(exe_path)); - resolved_module_spec.GetFileSpec().SetFile(exe_path, true); -} - -if (!resolved_module_spec.GetFileSpec().Exists()) - resolved_module_spec.GetFileSpec().ResolveExecutableLocation(); - -if (resolved_module_spec.GetFileSpec().Exists()) - error.Clear(); -else { - error.SetErrorStringWithFormat( - "unable to find executable for '%s'", - resolved_module_spec.GetFileSpec().GetPath().c_str()); -} - } else { -if (m_remote_platform_sp) { - error = - GetCachedExecutable(resolved_module_spec, exe_module_sp, - module_search_paths_ptr, *m_remote_platform_sp); -} else { - // We may connect to a process and use the provided executable (Don't use - // local $PATH). - - // Resolve any executable within a bundle on MacOSX - Host::ResolveExecutableInBundle(resolved_module_spec.GetFileSpec()); - - if (resolved_module_spec.GetFileSpec().Exists()) { -error.Clear(); - } else { -error.SetErrorStringWithFormat( -"the platform is not currently connected, and '%s' doesn't exist " -"in the system root.", -resolved_module_spec.GetFileSpec().GetPath().c_str()); - } -} - } - - if (error.Success()) { -if (resolved_module_spec.GetArchitecture().IsValid()) { - error = ModuleList::GetSharedModule(resolved_module_spec, exe_module_sp, - module_search_paths_ptr, NULL, NULL); - - if (!exe_module_sp || exe_module_sp->GetObjectFile() == NULL) { -exe_module_sp.reset(); -error.SetErrorStringWithFormat( -"'%s' doesn't contain the
[Lldb-commits] [PATCH] D29405: Install six.py conditionally
krytarowski added a comment. @labath patch done. I'm specifying `-DLLDB_USE_SYSTEM_SIX:BOOL=TRUE` in pkgsrc. It works for me. Repository: rL LLVM https://reviews.llvm.org/D29405 ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D29405: Install six.py copy into subdirectory lldb
krytarowski updated this revision to Diff 86828. krytarowski added a comment. LLDB_USE_SYSTEM_SIX approach Repository: rL LLVM https://reviews.llvm.org/D29405 Files: cmake/modules/LLDBConfig.cmake scripts/CMakeLists.txt scripts/Python/finishSwigPythonLLDB.py Index: scripts/Python/finishSwigPythonLLDB.py === --- scripts/Python/finishSwigPythonLLDB.py +++ scripts/Python/finishSwigPythonLLDB.py @@ -70,7 +70,6 @@ strErrMsgMkLinkExecute = "Command mklink failed: %s" strErrMsgMakeSymlink = "creating symbolic link" strErrMsgUnexpected = "Unexpected error: %s" -strMsgCopySixPy = "Copying six.py from '%s' to '%s'" strErrMsgCopySixPyFailed = "Unable to copy '%s' to '%s'" @@ -527,33 +526,6 @@ return (bOk, strErrMsg) -def copy_six(vDictArgs, vstrFrameworkPythonDir): -dbg = utilsDebug.CDebugFnVerbose("Python script copy_six()") -bDbg = "-d" in vDictArgs -bOk = True -strMsg = "" -site_packages_dir = os.path.dirname(vstrFrameworkPythonDir) -six_module_filename = "six.py" -src_file = os.path.join( -vDictArgs['--srcRoot'], -"third_party", -"Python", -"module", -"six", -six_module_filename) -src_file = os.path.normpath(src_file) -target = os.path.join(site_packages_dir, six_module_filename) - -if bDbg: -print((strMsgCopySixPy % (src_file, target))) -try: -shutil.copyfile(src_file, target) -except: -bOk = False -strMsg = strErrMsgCopySixPyFailed % (src_file, target) - -return (bOk, strMsg) - #++--- # Details: Look for the directory in which to put the Python files if it # does not already exist, attempt to make it. @@ -822,9 +794,6 @@ vDictArgs, strFrameworkPythonDir, strLldbLibDir) if bOk: -bOk, strMsg = copy_six(vDictArgs, strFrameworkPythonDir) - -if bOk: bOk, strMsg = copy_lldbpy_file_to_lldb_pkg_dir(vDictArgs, strFrameworkPythonDir, strCfgBldDir) Index: scripts/CMakeLists.txt === --- scripts/CMakeLists.txt +++ scripts/CMakeLists.txt @@ -56,5 +56,18 @@ # Install the LLDB python module install(DIRECTORY ${SWIG_PYTHON_DIR} DESTINATION ${SWIG_INSTALL_DIR}) +execute_process( + COMMAND "${PYTHON_EXECUTABLE}" -c "if True: +from distutils import sysconfig as sc +print(sc.get_python_lib(prefix='', plat_specific=True))" + OUTPUT_VARIABLE PYTHON_SITE + OUTPUT_STRIP_TRAILING_WHITESPACE) + +if(NOT LLDB_USE_SYSTEM_SIX) + install(FILES +${LLDB_SOURCE_DIR}/third_party/Python/module/six/six.py +DESTINATION ${PYTHON_SITE}/) +endif() + # build Python modules add_subdirectory(Python/modules) Index: cmake/modules/LLDBConfig.cmake === --- cmake/modules/LLDBConfig.cmake +++ cmake/modules/LLDBConfig.cmake @@ -29,6 +29,9 @@ set(LLDB_RELOCATABLE_PYTHON 0 CACHE BOOL "Causes LLDB to use the PYTHONHOME environment variable to locate Python.") +set(LLDB_USE_SYSTEM_SIX 0 CACHE BOOL + "Use six.py shipped with system and do not install a copy of it") + if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") set(LLDB_EXPORT_ALL_SYMBOLS 0 CACHE BOOL "Causes lldb to export all symbols when building liblldb.") Index: scripts/Python/finishSwigPythonLLDB.py === --- scripts/Python/finishSwigPythonLLDB.py +++ scripts/Python/finishSwigPythonLLDB.py @@ -70,7 +70,6 @@ strErrMsgMkLinkExecute = "Command mklink failed: %s" strErrMsgMakeSymlink = "creating symbolic link" strErrMsgUnexpected = "Unexpected error: %s" -strMsgCopySixPy = "Copying six.py from '%s' to '%s'" strErrMsgCopySixPyFailed = "Unable to copy '%s' to '%s'" @@ -527,33 +526,6 @@ return (bOk, strErrMsg) -def copy_six(vDictArgs, vstrFrameworkPythonDir): -dbg = utilsDebug.CDebugFnVerbose("Python script copy_six()") -bDbg = "-d" in vDictArgs -bOk = True -strMsg = "" -site_packages_dir = os.path.dirname(vstrFrameworkPythonDir) -six_module_filename = "six.py" -src_file = os.path.join( -vDictArgs['--srcRoot'], -"third_party", -"Python", -"module", -"six", -six_module_filename) -src_file = os.path.normpath(src_file) -target = os.path.join(site_packages_dir, six_module_filename) - -if bDbg: -print((strMsgCopySixPy % (src_file, target))) -try: -shutil.copyfile(src_file, target) -except: -bOk = False -strMsg = strErrMsgCopySixPyFailed % (src_file, target) - -return (bOk, strMsg) - #++--- # Details: Look for the
[Lldb-commits] [PATCH] D29403: Fix multi-process-driver.cpp build on NetBSD
This revision was automatically updated to reflect the committed changes. Closed by commit rL293895: Fix multi-process-driver.cpp build on NetBSD (authored by kamil). Changed prior to commit: https://reviews.llvm.org/D29403?vs=8=86807#toc Repository: rL LLVM https://reviews.llvm.org/D29403 Files: lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp Index: lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp === --- lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp +++ lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp @@ -15,7 +15,7 @@ #include #include - +#include #include "lldb/API/LLDB.h" #include "lldb/API/SBCommandInterpreter.h" Index: lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp === --- lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp +++ lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp @@ -15,7 +15,7 @@ #include #include - +#include #include "lldb/API/LLDB.h" #include "lldb/API/SBCommandInterpreter.h" ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [lldb] r293895 - Fix multi-process-driver.cpp build on NetBSD
Author: kamil Date: Thu Feb 2 09:05:56 2017 New Revision: 293895 URL: http://llvm.org/viewvc/llvm-project?rev=293895=rev Log: Fix multi-process-driver.cpp build on NetBSD Summary: Include for strcmp(3) and memset(3). Sponsored by Reviewers: joerg, clayborg, emaste, labath Reviewed By: clayborg Subscribers: #lldb Tags: #lldb Differential Revision: https://reviews.llvm.org/D29403 Modified: lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp Modified: lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp?rev=293895=293894=293895=diff == --- lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp (original) +++ lldb/trunk/packages/Python/lldbsuite/test/api/multiple-debuggers/multi-process-driver.cpp Thu Feb 2 09:05:56 2017 @@ -15,7 +15,7 @@ #include #include - +#include #include "lldb/API/LLDB.h" #include "lldb/API/SBCommandInterpreter.h" ___ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits