[Lldb-commits] [lldb] r259188 - Fix linking of lldb-server with BUILD_SHARED_LIBS

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Fri Jan 29 06:47:19 PST 2016


Zachary, Hans,

this is not super-important, as a BUILD_SHARED_LIBS build of lldb will
still remain broken due to other issues, but I'd still like to get
this into 3.8, as it will reduce the pain for anyone trying to get
this build working downstream. What do you think?

problem reported in pr26335.

cheers,
pl

On 29 January 2016 at 11:59, Pavel Labath via lldb-commits
<lldb-commits at lists.llvm.org> wrote:
> Author: labath
> Date: Fri Jan 29 05:59:57 2016
> New Revision: 259188
>
> URL: http://llvm.org/viewvc/llvm-project?rev=259188&view=rev
> Log:
> Fix linking of lldb-server with BUILD_SHARED_LIBS
>
> Summary:
> The BUILD_SHARED_LIBS branch of lldb-server link flags was hopelessly broken, at least since we
> started restricting the symbols exported by liblldb. lldb-server depends on symbols from the
> lldb_private namespace, so it cannot link to the public interface of liblldb. Instead I make it
> link to the individual libraries constituting liblldb, just like it does in the
> !BUILD_SHARED_LIBS case.
>
> This does not make the BUILD_SHARED_LIBS build of lldb fully functional yet, due to the way
> liblldb dependencies are managed, but it's a step in that direction.
>
> Reviewers: zturner, tfiala
>
> Subscribers: lldb-commits
>
> Differential Revision: http://reviews.llvm.org/D16678
>
> Modified:
>     lldb/trunk/tools/lldb-server/CMakeLists.txt
>
> Modified: lldb/trunk/tools/lldb-server/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/CMakeLists.txt?rev=259188&r1=259187&r2=259188&view=diff
> ==============================================================================
> --- lldb/trunk/tools/lldb-server/CMakeLists.txt (original)
> +++ lldb/trunk/tools/lldb-server/CMakeLists.txt Fri Jan 29 05:59:57 2016
> @@ -33,24 +33,19 @@ add_lldb_executable(lldb-server
>      LLDBServerUtilities.cpp
>  )
>
> -if (BUILD_SHARED_LIBS )
> -  target_link_libraries(lldb-server liblldb)
> -  target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS})
> +# The Darwin linker doesn't understand --start-group/--end-group.
> +if (LLDB_LINKER_SUPPORTS_GROUPS)
> +  target_link_libraries(lldb-server
> +                        -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group)
> +  target_link_libraries(lldb-server
> +                        -Wl,--start-group ${CLANG_USED_LIBS} -Wl,--end-group)
>  else()
> -  # The Darwin linker doesn't understand --start-group/--end-group.
> -  if (LLDB_LINKER_SUPPORTS_GROUPS)
> -    target_link_libraries(lldb-server
> -                          -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group)
> -    target_link_libraries(lldb-server
> -                          -Wl,--start-group ${CLANG_USED_LIBS} -Wl,--end-group)
> -  else()
> -    target_link_libraries(lldb-server ${LLDB_USED_LIBS})
> -    target_link_libraries(lldb-server ${CLANG_USED_LIBS})
> -  endif()
> -  llvm_config(lldb-server ${LLVM_LINK_COMPONENTS})
> -
> -  target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS})
> +  target_link_libraries(lldb-server ${LLDB_USED_LIBS})
> +  target_link_libraries(lldb-server ${CLANG_USED_LIBS})
>  endif()
> +llvm_config(lldb-server ${LLVM_LINK_COMPONENTS})
> +
> +target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS})
>
>  set_target_properties(lldb-server PROPERTIES VERSION ${LLDB_VERSION})
>
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


More information about the lldb-commits mailing list