Windows build questions

Hi all,

I’ve read the Windows lldb build instructions. I have a few questions just to verify before I put too much time into that end:

  • Has the build been vetted on Windows 10 64-bit yet?

  • Can Visual Studio 2015 Community Edition work as the compiler toolchain? (VS 2012+ is listed as okay, so I’m hoping yes).

Thanks!

+Stephane because he just went through the pain of getting a working build on Windows, so he might be able to point out some gotchas.

About VS 2015
VS 2015 does not work because of Python. Technically, it could theoretically work but you won’t be able to run the test suite at all. I don’t plan to put a significant amount of effort into addressing this. Instead, this will be solved automatically if / when we address http://llvm.org/pr24461. You can use VS 2013 community edition though. TL;DR of the reason VS 2015 doesn’t work is because a) Python and the program embedding python must be compiled with the same compiler, and b) Python doesn’t compile with VS 2015 because it relies on implementation details of the CRT, which changed in 2015.

About Windows 10
The build shoudl work fine on Windows 10 x64. That’s what I use every day. But you should still build an x86 LLDB, not an x64 one. x64 should work in theory (insofar as the build should succeed), but the actual runtime support isn’t there yet so many things will fail.

A couple of things you might run into:

  1. Make sure PYTHONHOME and PYTHONPATH are not set, otherwise LLDB’s python and system python can run into conflicts.

  2. Make sure you check out and build LLD, test executables must be linked with LLD or they will not have debug info. Also, make sure you specify LLDB_TEST_COMPILER on the cmake command line to point to a clang.exe (If you use a release clang then ninja check-lldb will be faster by an order of magnitude)

  3. Make sure you build Python from source, run the install-custom-python.py, and specify -DPYTHON_HOME on the CMake command line.

Most of this is covered on the website build instructions, but I admit it’s a lot of steps, and it’s easy to miss one. Solving pr24461 should greatly simplify everything about building on Windows when I finally get around to it, but it’s a lot of work. Still follow the build instructions anyway because there’s other things as well, but the above 3 are probably the most likely to trip you up.

Awesome, thanks Zachary!

There’s actually not one yet. The past few weeks you might have seen me checking in a ton of changes related to XFAILing a bunch of tests on Windows and filing corresponding bugs. We are trying to get down to a baseline of 0 failing tests exactly for this reason, so that we can enable tests to run on the buildbot. I’m hoping to have that done this week, or next week at the latest. I’ve gotten over 80% of the failures triaged and bugs filed already, so I’m on the home stretch.

Zachary, when you say x64 runtime support isn’t there yet, you mean for VS2015 and/or Win 10, right? I’ve been building x64 LLDB on Win 7 with VS 2013 for 2 years now.

Yes, I just mean the debugger can’t debug x64 inferiors very well.