[lldb-dev] Python3 compatibility for the API

Pavel Labath via lldb-dev lldb-dev at lists.llvm.org
Wed Sep 14 01:48:11 PDT 2016


Sounds great, I am glad to hear python3 is working on linux as well.

As for pexpect, could we just make sure our own copy of pexpect is not
on the path in this case, and have the user install a
python3-compatible version via usual means (apt-get install
python3-pexpect, in case of ubuntu).

pl

On 13 September 2016 at 21:55, Ted Woodward via lldb-dev
<lldb-dev at lists.llvm.org> wrote:
> I just built lldb on Ubuntu 12 with Python 3.5.1. I needed to set python includes, python library and python executable in cmake.
>
> I found a problem with the tests - most ran fine, but I got errors with tests that tried to use pexpect, like TestConvenienceVariables.py.
>   File "/local/scratch/ted/8.1/llvm/tools/lldb/third_party/Python/module/pexpect-2.4/pexpect.py", line 82
>     except ImportError, e:
>                       ^
> SyntaxError: invalid syntax
>
> If we want to run the tests with Python3 we'll need to update pexpect.
>
> --
> Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>
> -----Original Message-----
> From: lldb-dev [mailto:lldb-dev-bounces at lists.llvm.org] On Behalf Of Luke Drummond via lldb-dev
> Sent: Tuesday, August 30, 2016 7:01 AM
> To: lldb-dev at lists.llvm.org
> Subject: Re: [lldb-dev] Python3 compatibility for the API
>
> Hi Zachary, Peter
>
> On 30/08/16 00:14, Zachary Turner via lldb-dev wrote:
>> Right, the existing version that is built and what you are using links
>> directly against a 2.7 libpython at compile time.  So you would
>> probably need to build LLDB from source and tweak the build system to
>> make it possible to link against your 3.x version of python.  There's
>> some build instructions on the website
>> <http://lldb.llvm.org/build.html>.  I know there's a few linux
>> developers around here, so it's possible someone else would be
>> interested in making this work as well, but I don't know that it's on anyone's immediate timeline.
>
> We build lldb against python3 regularly, because - as Zachary said - this is the only way to get scripting support on windows. To link against python3 on Linux you *should* just need the correct headers installed, and invoke CMake with the correct python path. For Ubuntu:
>
> ```
> sudo apt install python3-dev
> cmake "$PATH_TO_LLVM_SRC" -DPYTHON_EXECUTABLE:FILEPATH=$(which python3) ```
>
> *should* give you everything you need. However, you may see that cmake picks up the python3 interpreter correctly, but tries to link against the python2.7 library.
>
> -- Found PythonInterp: /usr/bin/python3 (found version "3.5.2") [...]
> -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found version "2.7.12")
>
> This appears to be due to a problem in LLVM's CMakeLists.txt specifying support for 2.7 only. I have a patch to fix the issue awaiting review
> [here](https://reviews.llvm.org/D20825) which should fix the issue on Linux when multiple pythons are installed. It may be worth applying this patch locally and see how you get on.
>
> Hope that helps
>
> Best
>
> Luke
> _______________________________________________
> lldb-dev mailing list
> 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
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


More information about the lldb-dev mailing list