[Lldb-commits] [PATCH] D18519: Allow building LLDB on Windows with MinGW 64/4.9.2 and later

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Mon Apr 4 02:24:02 PDT 2016


labath added a comment.

In http://reviews.llvm.org/D18519#390337, @eran.ifrah wrote:

> Spoke too soon, the hack into `CMakeLists.txt` is still needed
>  Passing ` -mbig-obj` crashes `ld.exe`  (although it crashes in a much later stage, at about 77% in the build)


Clang only puts /bigobj on a couple of files, which are known to produce extremely large object files. Would that help you get past the linker error by any chance?


================
Comment at: source/API/CMakeLists.txt:74-85
@@ -73,6 +73,14 @@
 # want every single library taking a dependency on the script interpreters.
-target_link_libraries(liblldb PRIVATE
-  lldbPluginScriptInterpreterNone
-  lldbPluginScriptInterpreterPython
-  )
+if(MINGW)
+  target_link_libraries(liblldb PRIVATE
+    lldbPluginScriptInterpreterNone
+    lldbPluginScriptInterpreterPython
+    Dbghelp # Needed for MiniDumpWriteDump
+    )
+else()
+  target_link_libraries(liblldb PRIVATE
+    lldbPluginScriptInterpreterNone
+    lldbPluginScriptInterpreterPython
+    )
+endif()
 
----------------
I think you should add this library to `system_libs` in LLDBConfig.cmake. Then it should get linked in automatically.

================
Comment at: source/Plugins/Process/Windows/Live/DebuggerThread.cpp:380-383
@@ -379,5 +379,6 @@
         {
+            DWORD dwPidToDetach = m_pid_to_detach;
             WINLOG_IFANY(WINDOWS_LOG_EVENT | WINDOWS_LOG_EXCEPTION | WINDOWS_LOG_PROCESS,
                             "Breakpoint exception is cue to detach from process 0x%x",
-                            m_pid_to_detach);
+                            dwPidToDetach);
             ::DebugActiveProcessStop(m_pid_to_detach);
----------------
zturner: The point here is that m_pid_to_detach is an std::atomic, and you shouldn't be passing those through `...` (I am not sure how it even worked in the first place).

An alternative would be putting `m_pid_to_detach.load()` here...

================
Comment at: tools/argdumper/CMakeLists.txt:6-8
@@ +5,5 @@
+if(MINGW)
+  # link directly against the dll file
+  add_dependencies(lldb-argdumper liblldb)
+  target_link_libraries(lldb-argdumper -L"${CMAKE_BINARY_DIR}/bin" -llldb)
+else()
----------------
It's a hack, but I think I know why you need it... there are issues with multiply defined symbols in lldb on windows, so I guess mingw is just more sensitive to them...


http://reviews.llvm.org/D18519





More information about the lldb-commits mailing list