[lldb-dev] lldb-3.8.1 prebuilt binary for windows7

Ted Woodward via lldb-dev lldb-dev at lists.llvm.org
Mon Nov 28 10:53:11 PST 2016


LLDB_DEFAULT_PYTHONHOME is an internal thing; I haven’t upstreamed it – for a while, it conflicted with Zach’s implementation, but I redid it, and everything is happy now. If you think it would be useful, I could upstream it. It’s fairly small, and plays nice with Zach’s Python stuff.

 

The problem it solves is “where is my python?” on Windows. If you know you’ll be running on a system with the same python installation as the build system, then you don’t need it. Or if you can tell your users to install the same python you built with, in the same location, you’re OK. I can’t do that, so instead I ship python, and tell lldb where to find it at build time.

 

We copy over the full site-packages directory that is created by the lldb build, and end up with this directory structure:

bin/lldb.exe

bin/liblldb.dll

bin/python35.dll

lib/python35

lib/site-packages

 

--

Qualcomm Innovation Center, Inc.

The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project

 

From: Zachary Turner [mailto:zturner at google.com] 
Sent: Monday, November 28, 2016 12:17 PM
To: Vadim Chugunov <vadimcn at gmail.com>; Hans Wennborg <hans at chromium.org>
Cc: Ted Woodward <ted.woodward at codeaurora.org>; Reid Kleckner <rnk at google.com>; LLDB <lldb-dev at lists.llvm.org>
Subject: Re: [lldb-dev] lldb-3.8.1 prebuilt binary for windows7

 

I overlooked that part of it, but yes that is another separate issue.  (BTW, _lldb.pyd is simply a symlink to liblldb.dll).  

 

In any case, yea I think the entire lib/site-packages folder needs to be included.

 

On Mon, Nov 28, 2016 at 10:15 AM Vadim Chugunov <vadimcn at gmail.com <mailto:vadimcn at gmail.com> > wrote:

Please correct me if I'm wrong, but isn't the issue here that LLDB's Python support files don't get packaged into the Windows installer?   Does packaging them somehow depend on knowing what the Python installation path is?

 

On Mon, Nov 28, 2016 at 10:09 AM, Hans Wennborg <hans at chromium.org <mailto:hans at chromium.org> > wrote:

The snapshots are built with the script in
utils/release/build_llvm_package.bat. It's currently passing
-DLLDB_RELOCATABLE_PYTHON=1 and  -DPYTHON_HOME=<path>.

I was planning on trying to build a new snapshot today and can add
-DLLDB_DEFAULT_PYTHON_HOME if you think that will help.

On Mon, Nov 28, 2016 at 9:51 AM, Zachary Turner <zturner at google.com <mailto:zturner at google.com> > wrote:
> So it sounds like you're saying that in order for Python support to work as
> part of an LLDB shipped in the installer, we need to do set 3 variables at
> CMake time.
>
> 1) -DLLDB_RELOCATABLE_PYTHON=TRUE
> 2) -DPYTHON_HOME = <path-to-python-3-5-on-build-machine>
> 3) -DLLDB_DEFAULT_PYTHON_HOME=TRUE
>
> Now because of #3, the lldb shipped in the installer will use the PYTHONHOME
> system environment variable to locate python, which must point to a valid
> Python 3.5 installation.  Is this correct?
>
> On Mon, Nov 28, 2016 at 9:35 AM Ted Woodward <ted.woodward at codeaurora.org <mailto:ted.woodward at codeaurora.org> >
> wrote:
>>
>> Windows has no concept of a default python installation, and I can’t be
>> sure what version of python my users have, if any, so I need to solve 2
>> problems:
>>
>> 1)      Where is python when I’m building?
>>
>> 2)      Where is python when I’m running?
>>
>>
>>
>> To solve #1, I set LLDB_RELOCATABLE_PYTHON to TRUE, and PYTHON_HOME to my
>> python installation (on our buildbots, c:/python351).
>>
>>
>>
>> #2 only needs to be solved if the machine you’re running on doesn’t have
>> the same python installation, in PYTHON_HOME above. To do that, I’ve added
>> code to set a cmake path LLDB_DEFAULT_PYTHONHOME, which I pass as a macro
>> down to InitializePythonHome in
>> source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp, and
>> call Py_SetPythonHome with it. My installations have the python dll and
>> python library directory. We put the library in <install>/lib/python35 and
>> the dll in <install>/bin.
>>
>> --
>>
>> Qualcomm Innovation Center, Inc.
>>
>> The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
>> Linux Foundation Collaborative Project
>>
>>
>>
>> From: Zachary Turner [mailto:zturner at google.com <mailto:zturner at google.com> ]
>> Sent: Wednesday, November 23, 2016 12:40 PM
>> To: Vadim Chugunov <vadimcn at gmail.com <mailto:vadimcn at gmail.com> >
>> Cc: Reid Kleckner <rnk at google.com <mailto:rnk at google.com> >; Hans Wennborg <hans at chromium.org <mailto:hans at chromium.org> >;
>> LLDB <lldb-dev at lists.llvm.org <mailto:lldb-dev at lists.llvm.org> >; Ted Woodward <ted.woodward at codeaurora.org <mailto:ted.woodward at codeaurora.org> >
>> Subject: Re: [lldb-dev] lldb-3.8.1 prebuilt binary for windows7
>>
>>
>>
>> I believe the way to fix this is going to be building LLDB for the
>> installer with LLDB_RELOCATABLE_PYTHON=1 at CMake time
>>
>>
>>
>> +Ted, since I believe he is one of the few people currently using this
>> flag.
>>
>> On Wed, Nov 23, 2016 at 10:36 AM Vadim Chugunov <vadimcn at gmail.com <mailto:vadimcn at gmail.com> > wrote:
>>
>> This is still broken in the October snapshot.   Do you know which script
>> is used to build the Windows installer?
>>
>>
>>
>> On Tue, Oct 11, 2016 at 6:24 PM, Zachary Turner <zturner at google.com <mailto:zturner at google.com> >
>> wrote:
>>
>> I think it is a problem with the way we built lldb.  I will look into what
>> additional steps we need to take when making the prebuilt binary so that it
>> works next time.
>>
>>
>>
>> On Tue, Oct 11, 2016 at 6:20 PM Vadim Chugunov <vadimcn at gmail.com <mailto:vadimcn at gmail.com> > wrote:
>>
>> Nope, that didn't help.
>>
>>
>>
>> On Tue, Oct 11, 2016 at 5:16 PM, Zachary Turner <zturner at google.com <mailto:zturner at google.com> >
>> wrote:
>>
>> I may know what this is.  Can you try setting PYTHONPATH though to point
>> to your Python 3.5 installation though and see if it fixes it?  (I don't
>> think it will, but let's try anyway)
>>
>>
>>
>> On Tue, Oct 11, 2016 at 4:59 PM Vadim Chugunov <vadimcn at gmail.com <mailto:vadimcn at gmail.com> > wrote:
>>
>> It outputs 'c:\Program Files (x86)\LLVM\lib\site-packages', however the
>> 'site-packages' directory does not exist.  Nor do I see '_lldb.pyd' anywhere
>> else.
>>
>> 'script import lldb' also fails, of course.
>>
>>
>>
>> On Tue, Oct 11, 2016 at 4:01 PM, Zachary Turner <zturner at google.com <mailto:zturner at google.com> >
>> wrote:
>>
>> He said he did, so I don't know.  Vadim, can you elaborate?  When you run
>> `lldb -P` from the command line, what do you see?
>>
>>
>>
>> On Tue, Oct 11, 2016 at 4:00 PM Reid Kleckner via lldb-dev
>> <lldb-dev at lists.llvm.org <mailto:lldb-dev at lists.llvm.org> > wrote:
>>
>> I imagine that Hans doesn't have Python 3 installed on his system, so LLDB
>> didn't autoconfigure with Python support.
>>
>>
>>
>> On Sun, Oct 9, 2016 at 1:07 PM, Vadim Chugunov via lldb-dev
>> <lldb-dev at lists.llvm.org <mailto:lldb-dev at lists.llvm.org> > wrote:
>>
>> > Does the 4.0 binary not work for you? It is the first release that
>> > contains prebuilt lldb binary.
>>
>>
>>
>> Looks like the Python API is not included though.   Do you know why it was
>> left out?
>>
>>
>>
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org <mailto:lldb-dev at lists.llvm.org> 
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>
>>
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at lists.llvm.org <mailto:lldb-dev at lists.llvm.org> 
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>>
>>
>>
>>
>>
>>

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20161128/94666e2c/attachment.html>


More information about the lldb-dev mailing list