<div dir="ltr">I will defer to Pavel for this one.  Mostly because I'm not as familiar with the details of LLVM / LLDB on Linux as I am with Windows.</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 20, 2015 at 9:57 AM Hans Wennborg <<a href="mailto:hans@chromium.org">hans@chromium.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">+zturner<br>
<br>
OK for merging to 3.7?<br>
<br>
On Mon, Jul 20, 2015 at 7:27 AM, Pavel Labath <<a href="mailto:labath@google.com" target="_blank">labath@google.com</a>> wrote:<br>
> Another candidate for the 3.7 branch.<br>
><br>
> cheers,<br>
> pl<br>
><br>
><br>
> ---------- Forwarded message ----------<br>
> From: Pavel Labath <<a href="mailto:labath@google.com" target="_blank">labath@google.com</a>><br>
> Date: 17 July 2015 at 16:26<br>
> Subject: [Lldb-commits] [lldb] r242525 - Fix liblldb linking on RHEL 6<br>
> (bug #24140)<br>
> To: <a href="mailto:lldb-commits@cs.uiuc.edu" target="_blank">lldb-commits@cs.uiuc.edu</a><br>
><br>
><br>
> Author: labath<br>
> Date: Fri Jul 17 10:26:27 2015<br>
> New Revision: 242525<br>
><br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D242525-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=MEqT8U_n7oNfuDW5NRbY3ZV384ZquXIYFPWmprwUdKM&m=fUBVSzL-SBx1AKwJubFFLukuKutKKoAIoKRcMTiolvE&s=S3xpdDMFAqLdIJGMSc5tIJFtvdVUz7LQ_BZUsWEgtX0&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=242525&view=rev</a><br>
> Log:<br>
> Fix liblldb linking on RHEL 6 (bug #24140)<br>
><br>
> Patch by Eugene Zelenko.<br>
><br>
> Modified:<br>
>     lldb/trunk/cmake/modules/AddLLDB.cmake<br>
>     lldb/trunk/cmake/modules/LLDBConfig.cmake<br>
>     lldb/trunk/tools/lldb-server/CMakeLists.txt<br>
><br>
> Modified: lldb/trunk/cmake/modules/AddLLDB.cmake<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_lldb_trunk_cmake_modules_AddLLDB.cmake-3Frev-3D242525-26r1-3D242524-26r2-3D242525-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=MEqT8U_n7oNfuDW5NRbY3ZV384ZquXIYFPWmprwUdKM&m=fUBVSzL-SBx1AKwJubFFLukuKutKKoAIoKRcMTiolvE&s=jksYKPUSCx3gloxShLBNV3gBdXWehVhFA-SutKEKrz4&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/AddLLDB.cmake?rev=242525&r1=242524&r2=242525&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/cmake/modules/AddLLDB.cmake (original)<br>
> +++ lldb/trunk/cmake/modules/AddLLDB.cmake Fri Jul 17 10:26:27 2015<br>
> @@ -3,18 +3,12 @@ function(lldb_link_common_libs name targ<br>
>      return()<br>
>    endif()<br>
><br>
> -  set(COMPILER_SUPPORTS_GROUPS OFF)<br>
> -  if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}"<br>
> MATCHES "Darwin")<br>
> -    # The Darwin linker doesn't understand --start-group/--end-group.<br>
> -    set(COMPILER_SUPPORTS_GROUPS ON)<br>
> -  endif()<br>
> -<br>
>    if(${targetkind} MATCHES "SHARED")<br>
>      set(LINK_KEYWORD ${cmake_2_8_12_PUBLIC})<br>
>    endif()<br>
> -<br>
> +<br>
>    if(${targetkind} MATCHES "SHARED" OR ${targetkind} MATCHES "EXE")<br>
> -    if (COMPILER_SUPPORTS_GROUPS)<br>
> +    if (LLDB_LINKER_SUPPORTS_GROUPS)<br>
>        target_link_libraries(${name} ${LINK_KEYWORD}<br>
>                              -Wl,--start-group ${LLDB_USED_LIBS}<br>
> -Wl,--end-group)<br>
>      else()<br>
> @@ -24,7 +18,7 @@ function(lldb_link_common_libs name targ<br>
>  endfunction(lldb_link_common_libs)<br>
><br>
>  macro(add_lldb_library name)<br>
> -  # only supported parameters to this macro are the optional<br>
> +  # only supported parameters to this macro are the optional<br>
>    # MODULE;SHARED;STATIC library type and source files<br>
>    cmake_parse_arguments(PARAM<br>
>      "MODULE;SHARED;STATIC;OBJECT"<br>
> @@ -66,13 +60,13 @@ macro(add_lldb_library name)<br>
><br>
>      lldb_link_common_libs(${name} "${libkind}")<br>
><br>
> -<br>
> -    target_link_libraries(${name})<br>
> -    if (COMPILER_SUPPORTS_GROUPS)<br>
> +    if (PARAM_SHARED)<br>
> +      if (LLDB_LINKER_SUPPORTS_GROUPS)<br>
>          target_link_libraries(${name} ${cmake_2_8_12_PUBLIC}<br>
>                      -Wl,--start-group ${CLANG_USED_LIBS} -Wl,--end-group)<br>
> -    else()<br>
> +      else()<br>
>          target_link_libraries(${name} ${cmake_2_8_12_PUBLIC}<br>
> ${CLANG_USED_LIBS})<br>
> +      endif()<br>
>      endif()<br>
>      llvm_config(${name} ${LLVM_LINK_COMPONENTS})<br>
><br>
><br>
> Modified: lldb/trunk/cmake/modules/LLDBConfig.cmake<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_lldb_trunk_cmake_modules_LLDBConfig.cmake-3Frev-3D242525-26r1-3D242524-26r2-3D242525-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=MEqT8U_n7oNfuDW5NRbY3ZV384ZquXIYFPWmprwUdKM&m=fUBVSzL-SBx1AKwJubFFLukuKutKKoAIoKRcMTiolvE&s=kSJ1gGU4SeomnL-_t-y5PO6M6gBW7x-jDSsnyzl56Ds&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/cmake/modules/LLDBConfig.cmake?rev=242525&r1=242524&r2=242525&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/cmake/modules/LLDBConfig.cmake (original)<br>
> +++ lldb/trunk/cmake/modules/LLDBConfig.cmake Fri Jul 17 10:26:27 2015<br>
> @@ -2,6 +2,12 @@ set(LLDB_PROJECT_ROOT ${CMAKE_CURRENT_SO<br>
>  set(LLDB_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/source")<br>
>  set(LLDB_INCLUDE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/include")<br>
><br>
> +set(LLDB_LINKER_SUPPORTS_GROUPS OFF)<br>
> +if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}"<br>
> MATCHES "Darwin")<br>
> +  # The Darwin linker doesn't understand --start-group/--end-group.<br>
> +  set(LLDB_LINKER_SUPPORTS_GROUPS ON)<br>
> +endif()<br>
> +<br>
>  if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )<br>
>    set(LLDB_DEFAULT_DISABLE_PYTHON 0)<br>
>    set(LLDB_DEFAULT_DISABLE_CURSES 1)<br>
> @@ -21,7 +27,7 @@ set(LLDB_DISABLE_CURSES ${LLDB_DEFAULT_D<br>
>    "Disables the Curses integration.")<br>
><br>
>  set(LLDB_ENABLE_PYTHON_SCRIPTS_SWIG_API_GENERATION 1 CACHE BOOL<br>
> -  "Enables using new Python scripts for SWIG API generation .")<br>
> +  "Enables using new Python scripts for SWIG API generation .")<br>
>  set(LLDB_RELOCATABLE_PYTHON 0 CACHE BOOL<br>
>    "Causes LLDB to use the PYTHONHOME environment variable to locate Python.")<br>
><br>
> @@ -40,7 +46,7 @@ if (NOT LLDB_DISABLE_PYTHON)<br>
>        set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")<br>
>      endif()<br>
>    endif()<br>
> -<br>
> +<br>
>    if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")<br>
>      if (NOT "${PYTHON_HOME}" STREQUAL "")<br>
>        file(TO_CMAKE_PATH "${PYTHON_HOME}" PYTHON_HOME)<br>
> @@ -53,26 +59,26 @@ if (NOT LLDB_DISABLE_PYTHON)<br>
>          file(TO_CMAKE_PATH "${PYTHON_HOME}/libs/python27.lib" PYTHON_LIBRARY)<br>
>          file(TO_CMAKE_PATH "${PYTHON_HOME}/python27.dll" PYTHON_DLL)<br>
>        endif()<br>
> -<br>
> +<br>
>        file(TO_CMAKE_PATH "${PYTHON_HOME}/Include" PYTHON_INCLUDE_DIR)<br>
>        if (NOT LLDB_RELOCATABLE_PYTHON)<br>
>          add_definitions( -DLLDB_PYTHON_HOME="${PYTHON_HOME}" )<br>
>        endif()<br>
>      else()<br>
>        message("Embedding Python on Windows without specifying a value<br>
> for PYTHON_HOME is deprecated.  Support for this will be dropped<br>
> soon.")<br>
> -<br>
> +<br>
>        if ("${PYTHON_INCLUDE_DIR}" STREQUAL "" OR "${PYTHON_LIBRARY}"<br>
> STREQUAL "")<br>
>          message("-- LLDB Embedded python disabled.  Embedding python<br>
> on Windows requires "<br>
>                  "manually specifying PYTHON_INCLUDE_DIR *and* PYTHON_LIBRARY")<br>
>          set(LLDB_DISABLE_PYTHON 1)<br>
>        endif()<br>
>      endif()<br>
> -<br>
> +<br>
>      if (PYTHON_LIBRARY)<br>
>        message("-- Found PythonLibs: ${PYTHON_LIBRARY}")<br>
>        include_directories(${PYTHON_INCLUDE_DIR})<br>
>      endif()<br>
> -<br>
> +<br>
>    else()<br>
>      find_package(PythonLibs REQUIRED)<br>
>      include_directories(${PYTHON_INCLUDE_DIRS})<br>
> @@ -118,7 +124,7 @@ if( MSVC )<br>
>      -wd4521 # Suppress 'warning C4521: 'type' : multiple copy<br>
> constructors specified'<br>
>      -wd4530 # Suppress 'warning C4530: C++ exception handler used,<br>
> but unwind semantics are not enabled.'<br>
>    )<br>
> -endif()<br>
> +endif()<br>
><br>
>  set(LLDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})<br>
>  set(LLDB_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})<br>
><br>
> Modified: lldb/trunk/tools/lldb-server/CMakeLists.txt<br>
> URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_lldb_trunk_tools_lldb-2Dserver_CMakeLists.txt-3Frev-3D242525-26r1-3D242524-26r2-3D242525-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=MEqT8U_n7oNfuDW5NRbY3ZV384ZquXIYFPWmprwUdKM&m=fUBVSzL-SBx1AKwJubFFLukuKutKKoAIoKRcMTiolvE&s=6LMHJZmsggJL_HXo9LyjVeEh3qaNzRvzGYlPevFoHEE&e=" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/CMakeLists.txt?rev=242525&r1=242524&r2=242525&view=diff</a><br>
> ==============================================================================<br>
> --- lldb/trunk/tools/lldb-server/CMakeLists.txt (original)<br>
> +++ lldb/trunk/tools/lldb-server/CMakeLists.txt Fri Jul 17 10:26:27 2015<br>
> @@ -42,7 +42,7 @@ else()<br>
>      )<br>
><br>
>    # The Darwin linker doesn't understand --start-group/--end-group.<br>
> -  if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND NOT "${CMAKE_SYSTEM_NAME}"<br>
> MATCHES "Darwin")<br>
> +  if (LLDB_LINKER_SUPPORTS_GROUPS)<br>
>      target_link_libraries(lldb-server<br>
>                            -Wl,--start-group ${LLDB_USED_LIBS} -Wl,--end-group)<br>
>      target_link_libraries(lldb-server<br>
><br>
><br>
> _______________________________________________<br>
> lldb-commits mailing list<br>
> <a href="mailto:lldb-commits@cs.uiuc.edu" target="_blank">lldb-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits</a><br>
</blockquote></div>