Resending to the correct mailing list. On Mon, Nov 2, 2015 at 2:17 PM Zachary Turner <ztur...@google.com> wrote:
> Hi Andrew, > > This CL has been in for quite a while, but apparently it was broken all > this time. I reverted the changes to finishSwigPythonLLDB.py as they were > creating a dangling symlink. Please see r251840 ( > http://lists.llvm.org/pipermail/lldb-commits/Week-of-Mon-20151102/024878.html) > for > more information in case you're interested in resubmitting after you figure > out the correct fix. > > On Wed, Jun 3, 2015 at 8:56 PM Andrew Wilkins <axw...@gmail.com> wrote: > >> Author: axw >> Date: Wed Jun 3 22:12:37 2015 >> New Revision: 239007 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=239007&view=rev >> Log: >> [lldb] Enable building with Cmake/BUILD_SHARED_LIBS >> >> Summary: >> Several changes to fix CMake builds of LLDB with the >> BUILD_SHARED_LIBS setting on. >> >> - Force all internal libraries to be built STATIC. >> - Add additional library dependencies (pthread, dl, >> runtimedyld). >> - modify finalisation of SWIG wrapper to symlink the >> "lib" dir into python/site-packages, so _lldb.so's >> RPATH resolves. >> >> Test Plan: Verified one test case with "dotest.py". >> >> Reviewers: sylvestre.ledru, zturner >> >> Reviewed By: zturner >> >> Subscribers: zturner, ted, tberghammer, emaste, lldb-commits >> >> Differential Revision: http://reviews.llvm.org/D10157 >> >> Modified: >> lldb/trunk/cmake/LLDBDependencies.cmake >> lldb/trunk/cmake/modules/AddLLDB.cmake >> lldb/trunk/cmake/modules/LLDBConfig.cmake >> lldb/trunk/scripts/Python/finishSwigPythonLLDB.py >> lldb/trunk/tools/lldb-server/CMakeLists.txt >> >> Modified: lldb/trunk/cmake/LLDBDependencies.cmake >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/LLDBDependencies.cmake?rev=239007&r1=239006&r2=239007&view=diff >> >> ============================================================================== >> --- lldb/trunk/cmake/LLDBDependencies.cmake (original) >> +++ lldb/trunk/cmake/LLDBDependencies.cmake Wed Jun 3 22:12:37 2015 >> @@ -169,6 +169,7 @@ set( LLVM_LINK_COMPONENTS >> core >> mcdisassembler >> executionengine >> + runtimedyld >> option >> support >> ) >> >> Modified: lldb/trunk/cmake/modules/AddLLDB.cmake >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/AddLLDB.cmake?rev=239007&r1=239006&r2=239007&view=diff >> >> ============================================================================== >> --- lldb/trunk/cmake/modules/AddLLDB.cmake (original) >> +++ lldb/trunk/cmake/modules/AddLLDB.cmake Wed Jun 3 22:12:37 2015 >> @@ -44,13 +44,14 @@ macro(add_lldb_library name) >> set(libkind MODULE) >> elseif (PARAM_SHARED) >> set(libkind SHARED) >> - elseif (PARAM_STATIC) >> - set(libkind STATIC) >> elseif (PARAM_OBJECT) >> set(libkind OBJECT) >> else () >> - # library type unspecified - controlled by BUILD_SHARED_LIBS >> - unset(libkind) >> + # PARAM_STATIC or library type unspecified. BUILD_SHARED_LIBS >> + # does not control the kind of libraries created for LLDB, >> + # only whether or not they link to shared/static LLVM/Clang >> + # libraries. >> + set(libkind STATIC) >> endif() >> >> #PIC not needed on Win >> >> Modified: lldb/trunk/cmake/modules/LLDBConfig.cmake >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/LLDBConfig.cmake?rev=239007&r1=239006&r2=239007&view=diff >> >> ============================================================================== >> --- lldb/trunk/cmake/modules/LLDBConfig.cmake (original) >> +++ lldb/trunk/cmake/modules/LLDBConfig.cmake Wed Jun 3 22:12:37 2015 >> @@ -219,6 +219,14 @@ else() >> >> endif() >> >> +if (HAVE_LIBPTHREAD) >> + list(APPEND system_libs pthread) >> +endif(HAVE_LIBPTHREAD) >> + >> +if (HAVE_LIBDL) >> + list(APPEND system_libs ${CMAKE_DL_LIBS}) >> +endif() >> + >> if(LLDB_REQUIRES_EH) >> set(LLDB_REQUIRES_RTTI ON) >> else() >> >> Modified: lldb/trunk/scripts/Python/finishSwigPythonLLDB.py >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/finishSwigPythonLLDB.py?rev=239007&r1=239006&r2=239007&view=diff >> >> ============================================================================== >> --- lldb/trunk/scripts/Python/finishSwigPythonLLDB.py (original) >> +++ lldb/trunk/scripts/Python/finishSwigPythonLLDB.py Wed Jun 3 22:12:37 >> 2015 >> @@ -304,6 +304,8 @@ def make_symlink( vDictArgs, vstrFramewo >> # llvm/build/lib/python2.7/site-packages/lldb >> strBuildDir = os.path.join("..", "..", "..", ".."); >> strSrc = os.path.normcase(os.path.join(strBuildDir, >> vstrSrcFile)); >> + strTargetDir = os.path.dirname(strTarget); >> + strSrc = os.path.relpath(os.path.abspath(strSrc), strTargetDir); >> >> if eOSType == utilsOsType.EnumOsType.Unknown: >> bOk = False; >> @@ -371,6 +373,13 @@ def make_symlink_liblldb( vDictArgs, vst >> strLibFileExtn = ".so"; >> strSrc = os.path.join("lib", "liblldb" + strLibFileExtn); >> >> + if eOSType != utilsOsType.EnumOsType.Windows: >> + # Create a symlink to the "lib" directory, to ensure liblldb's >> RPATH is >> + # effective. >> + bOk, strErrMsg = make_symlink( vDictArgs, >> vstrFrameworkPythonDir, "lib", os.path.join("../lib") ); >> + if not bOk: >> + return (bOk, strErrMsg) >> + >> bOk, strErrMsg = make_symlink( vDictArgs, vstrFrameworkPythonDir, >> strSrc, strTarget ); >> >> return (bOk, strErrMsg); >> >> Modified: lldb/trunk/tools/lldb-server/CMakeLists.txt >> URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/CMakeLists.txt?rev=239007&r1=239006&r2=239007&view=diff >> >> ============================================================================== >> --- lldb/trunk/tools/lldb-server/CMakeLists.txt (original) >> +++ lldb/trunk/tools/lldb-server/CMakeLists.txt Wed Jun 3 22:12:37 2015 >> @@ -29,6 +29,9 @@ if (BUILD_SHARED_LIBS ) >> ) >> >> target_link_libraries(lldb-server liblldb) >> + if (HAVE_LIBPTHREAD) >> + target_link_libraries(lldb-server pthread) >> + endif () >> else() >> add_lldb_executable(lldb-server >> lldb-gdbserver.cpp >> >> >> _______________________________________________ >> lldb-commits mailing list >> lldb-comm...@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits >> >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits