<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108729>108729</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[lldb][rfc] rebuilding `_lldb`/`liblldb.so` for different Python versions quickly
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
arcivanov
</td>
</tr>
</table>
<pre>
The LLDB's Python package is (generally) as follows:
```bash
$ pwd
/usr/lib64/python3.12/site-packages/lldb
$ tree -I __pycache__
.
├── embedded_interpreter.py
├── formatters
│ ├── attrib_fromdict.py
│ ├── cache.py
│ ├── cpp
│ │ ├── gnu_libstdcpp.py
│ │ ├── __init__.py
│ │ └── libcxx.py
│ ├── __init__.py
│ ├── Logger.py
│ ├── metrics.py
│ └── synth.py
├── __init__.py
├── lldb-argdumper -> ../../../../bin/lldb-argdumper
├── _lldb.cpython-312-x86_64-linux-gnu.so -> ../../../liblldb.so <**************
├── _lldb.so -> ../../../liblldb.so.18.1.8
├── plugins
│ ├── __init__.py
│ ├── operating_system.py
│ ├── scripted_platform.py
│ └── scripted_process.py
└── utils
├── in_call_stack.py
├── __init__.py
└── symbolication.py
5 directories, 21 files
```
Out of all, the `_lldb` is the only native extension and it is actually the `liblldb.so`.
Which Python is used is determined by setting `PYTHON_HOME` during the initial `cmake` run.
I'd like rebuild that extension, i.e. `liblldb.so`, quickly for different versions of Python, since if I just reconfigure `cmake` with a different version of Python it'll make me rebuild the whole clang and lldb too and it will take hours and even worse if I have a 2-stage build (then it'll take days).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVltv2zgT_TX0y8CCRPkiP_ihTWq0QL8vfSiw2CeBIkfSNBSpJSk7_vcLynaci7dxNosYlCLOOXPRoWaE99QYxDWbf2bz24kYQmvdWjhJW2HsdlJZtV__bBG-f7_9zPjSw499aK2BXsh70SCQB8aLBg06ofWe8RUID7XV2u48yz-x9Jalp3WRHn6V8O3xEZ9Bv1OnfzaDd4xvNFWLGeObfvSVJxlnfOMp4PTo1kcjraozSXCIMP0GZdnvpZAtluVhMznafOFsNWOrm-NNkT7eAHYVKoWqJBPQ9Q4DuqTfvw2sretECOj8M9uCsxvOPqWHFX7HIEJwVJW1s50iGV56fQfTmPRH8H1_BfQdhI0ZSk2VD0r2_XWBvYO9LMlQKMsPEc8uEGuq5MPDBwr5vsguUny3TfNagu8g6DA4kv5Khktl8HsT2qsOwT_le9E4HtqpcI0auh4dTFn-BZKE8c2LpSJzPOJn6ytCiYBEHj4b0zzj04diUS5mU01meJg2Zki8vehUUzVivQWW3zD-6drflTG96TbJiiRLirf5ej00ZP71B-c_UKft0YlApin93gfsPkDlpaM-oCp7LUL8mn5EsY9czkr0r8R_ETQE0sdaAsBvYyVTSqF16YOQ94_kb6Fe1fsp4PLB6yqrSYpA1pxzGNc5KHIog3UUW-AN8Axq0uhf9NenmLshgK1BaB0BoUVgi3QUJVuksX3HR9boPRgRaIuADwGNJ2tAGAUUoo2QYYjt_YQ_65Yt0gQOnv5oSban-YA8DB5VvKrYTzsyqKDag8cQtRNZfvz58-vd_8uvd__7EmNRg4sb0UWsGQkdjWQn7jFuu8EkTxP7xvhSgaZ7BIfVQFpBaEU4xx_zpQSTVwHHjb8Gkvd6H1s4KKprdGgCbNFFpI8VOyQSbT0ZiUA1fINfgw_gUFpTUzM4fBbhjkIL4jXdmQ0oML7UGiIEuqeRI-xaqxGkFqYZSx8DhmDt6T3sSGsIEdjawfnxMW7RwM46f4yvFVsEAXzqQ5zODuSMF6HFs_ORQ4m9Z3z1rKSHdaLWuVrlKzHBdbbki3yZpuly0q6zIv5Vq3qRrVRVF1UuFnmhhEpzWctMTGjNUz5LV9k8zbOcL5O8mq9EtSqWtcwzUczZLMVOkE603naJdc2EvB9wnaXFkq8mWlSo_TiMcm5wB-Mu4zzOpm4dQdNqaDybpZp88GeaQEGPU-wo7Pktm392tWTz21OFj5I7CZ_xzUtVvJDC8YU9KuIomMng9LoNoR-HW75hfNNQaIcqkbYbW9b2dJn2zv5CGRjfjHnEofWY6HbN_w4AAP__LBIbww">