[Lldb-commits] [PATCH] D67583: Fix swig python package path
Haibo Huang via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Sep 18 14:14:50 PDT 2019
hhb added a comment.
In D67583#1674430 <https://reviews.llvm.org/D67583#1674430>, @hhb wrote:
> In D67583#1673356 <https://reviews.llvm.org/D67583#1673356>, @ZeGentzy wrote:
>
> > Hello folks,
> >
> > These changes break running `ninja install` when building with `-D LLVM_LIBDIR_SUFFIX=32`.
> >
> > [...]
> > -- Up-to-date: /build/llvm-git-gentz/pkg/lib32-llvm-git-gentz/opt/llvm32/include
> > -- Up-to-date: /build/llvm-git-gentz/pkg/lib32-llvm-git-gentz/opt/llvm32/include/lldb
> > -- Up-to-date: /build/llvm-git-gentz/pkg/lib32-llvm-git-gentz/opt/llvm32/include/lldb/Host
> > -- Installing: /build/llvm-git-gentz/pkg/lib32-llvm-git-gentz/opt/llvm32/include/lldb/Host/Config.h
> > CMake Error at tools/lldb/scripts/cmake_install.cmake:41 (file):
> > file INSTALL cannot find
> > "/build/llvm-git-gentz/src/_build32_final/./lib/python3.7".
> > Call Stack (most recent call first):
> > tools/lldb/cmake_install.cmake:50 (include)
> > tools/cmake_install.cmake:50 (include)
> > cmake_install.cmake:68 (include)
> >
> >
> > FAILED: CMakeFiles/install.util
> > cd /build/llvm-git-gentz/src/_build32_final && /usr/bin/cmake -P cmake_install.cmake
> > ninja: build stopped: subcommand failed.
> >
> >
> > After some investigation, I found that there is no `/build/llvm-git-gentz/src/_build32_final/./lib/python3.7` but there is an `/build/llvm-git-gentz/src/_build32_final/./lib32/python3.7`.
> >
> > I've temporary solved this problem by applying the following patch:
> >
> > diff --git a/lldb/scripts/CMakeLists.txt b/lldb/scripts/CMakeLists.txt
> > index 9de96ef5565..7d346deee7f 100644
> > --- a/lldb/scripts/CMakeLists.txt
> > +++ b/lldb/scripts/CMakeLists.txt
> > @@ -47,7 +47,7 @@ if(NOT LLDB_BUILD_FRAMEWORK)
> > if(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
> > set(swig_python_subdir Lib/site-packages)
> > else()
> > - set(swig_python_subdir lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
> > + set(swig_python_subdir lib${LLVM_LIBDIR_SUFFIX}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
> > endif()
> >
> > set(SWIG_PYTHON_DIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${swig_python_subdir})
> >
> >
> > I believe solving this problem correctly would also involve updating https://github.com/python/cpython/blob/3.8/Lib/distutils/sysconfig.py#L150 to account for `${LLVM_LIBDIR_SUFFIX}`, however, I've never used the script before and am unfamiliar with it's purpose.
> >
> > @hhb Could you please revisit this revision so that it doesn't break builds with a modified `LLVM_LIBDIR_SUFFIX` and revert this revision until then?
>
>
> Hmm that's interesting... In my case the issue is opposite: LLVM_LIBDIR_SUFFIX=64 but the file is in lib/ .
>
> I don't think we can change python to fix this. But I'm curious how the suffix is applied. Let me try LLVM_LIBDIR_SUFFIX=32...
Can you share your full compile command and environment? I tried to build on Ubuntu (Python 2.7.16) with the latest llvm source code:
$ cmake /src/llvm-project/llvm -DLLVM_LIBDIR_SUFFIX=32 "-DLLVM_ENABLE_PROJECTS=clang;lldb" -DCMAKE_INSTALL_PREFIX=/src/llvm-install -DLLDB_DISABLE_LIBEDIT=ON -GNinja
$ ninja
...
$ find -name site-packages
./lib/python2.7/site-packages
Or with python 3.6.8:
$ cmake /src/llvm-project/llvm -DLLVM_LIBDIR_SUFFIX=32 "-DLLVM_ENABLE_PROJECTS=clang;lldb" -DCMAKE_INSTALL_PREFIX=/src/llvm-install -DLLDB_DISABLE_LIBEDIT=ON -GNinja -DPYTHON_EXECUTABLE=/usr/bin/python3.6 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6 -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so
$ ninja
...
$ find -name site-packages
./lib/python3.6/site-packages
$ ls lib32/python*
zsh: no matches found: lib32/python*
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67583/new/
https://reviews.llvm.org/D67583
More information about the lldb-commits
mailing list