[Lldb-commits] [lldb] r239007 - [lldb] Enable building with Cmake/BUILD_SHARED_LIBS

Andrew Wilkins via lldb-commits lldb-commits at lists.llvm.org
Tue Nov 3 05:22:57 PST 2015


Thanks, Zachary, I'll look into it.

Cheers, Andrew

On Tue, 3 Nov 2015 6:18 am Zachary Turner <zturner at google.com> wrote:

> Resending to the correct mailing list.
>
>
> On Mon, Nov 2, 2015 at 2:17 PM Zachary Turner <zturner at 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 <axwalk at 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-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20151103/3cdc8703/attachment-0001.html>


More information about the lldb-commits mailing list