[llvm] r198198 - Port r198087 and r198089 (strip dead code by default) from make to cmake.

Yaron Keren yaron.keren at gmail.com
Sun Dec 29 21:36:42 PST 2013


Hi Nico,

MSVC does not support the -f* flags, so I fixed the add_dead_strip function
to be:

function(add_dead_strip target_name)
  if(NOT CYGWIN AND NOT MINGW AND NOT MSVC)
    if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")

Yaron



2013/12/30 Nico Weber <nicolasweber at gmx.de>

> Author: nico
> Date: Sun Dec 29 21:36:05 2013
> New Revision: 198198
>
> URL: http://llvm.org/viewvc/llvm-project?rev=198198&view=rev
> Log:
> Port r198087 and r198089 (strip dead code by default) from make to cmake.
>
> Modified:
>     llvm/trunk/cmake/modules/AddLLVM.cmake
>     llvm/trunk/tools/bugpoint/CMakeLists.txt
>     llvm/trunk/tools/llc/CMakeLists.txt
>     llvm/trunk/tools/opt/CMakeLists.txt
>     llvm/trunk/unittests/ExecutionEngine/JIT/CMakeLists.txt
>
> Modified: llvm/trunk/cmake/modules/AddLLVM.cmake
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/AddLLVM.cmake?rev=198198&r1=198197&r2=198198&view=diff
>
> ==============================================================================
> --- llvm/trunk/cmake/modules/AddLLVM.cmake (original)
> +++ llvm/trunk/cmake/modules/AddLLVM.cmake Sun Dec 29 21:36:05 2013
> @@ -76,10 +76,30 @@ function(add_llvm_symbol_exports target_
>    add_dependencies(${target_name} ${target_name}_exports)
>  endfunction(add_llvm_symbol_exports)
>
> +function(add_dead_strip target_name)
> +  if(NOT CYGWIN AND NOT MINGW)
> +    if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
> +       SET(CMAKE_CXX_FLAGS
> +           "${CMAKE_CXX_FLAGS}  -ffunction-sections -fdata-sections"
> +           PARENT_SCOPE)
> +    endif()
> +  endif()
> +  if(NOT LLVM_NO_DEAD_STRIP)
> +    if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
> +      set_property(TARGET ${target_name} APPEND_STRING PROPERTY
> +                   LINK_FLAGS " -Wl,-dead_strip")
> +    elseif(NOT WIN32)
> +      set_property(TARGET ${target_name} APPEND_STRING PROPERTY
> +                   LINK_FLAGS " -Wl,--gc-sections")
> +    endif()
> +  endif()
> +endfunction(add_dead_strip)
> +
>  macro(add_llvm_library name)
>    llvm_process_sources( ALL_FILES ${ARGN} )
>    add_library( ${name} ${ALL_FILES} )
>    set_property( GLOBAL APPEND PROPERTY LLVM_LIBS ${name} )
> +  add_dead_strip( ${name} )
>    if( LLVM_COMMON_DEPENDS )
>      add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
>    endif( LLVM_COMMON_DEPENDS )
> @@ -137,6 +157,7 @@ ${name} ignored.")
>
>      add_library( ${name} ${libkind} ${ALL_FILES} )
>      set_target_properties( ${name} PROPERTIES PREFIX "" )
> +    add_dead_strip( ${name} )
>
>      if (LLVM_EXPORTED_SYMBOL_FILE)
>        add_llvm_symbol_exports( ${name} ${LLVM_EXPORTED_SYMBOL_FILE} )
> @@ -173,6 +194,7 @@ macro(add_llvm_executable name)
>    else()
>      add_executable(${name} ${ALL_FILES})
>    endif()
> +  add_dead_strip( ${name} )
>
>    if (LLVM_EXPORTED_SYMBOL_FILE)
>      add_llvm_symbol_exports( ${name} ${LLVM_EXPORTED_SYMBOL_FILE} )
>
> Modified: llvm/trunk/tools/bugpoint/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/CMakeLists.txt?rev=198198&r1=198197&r2=198198&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/bugpoint/CMakeLists.txt (original)
> +++ llvm/trunk/tools/bugpoint/CMakeLists.txt Sun Dec 29 21:36:05 2013
> @@ -16,6 +16,9 @@ set(LLVM_LINK_COMPONENTS
>    Vectorize
>    )
>
> +# Support plugins.
> +set(LLVM_NO_DEAD_STRIP 1)
> +
>  add_llvm_tool(bugpoint
>    BugDriver.cpp
>    CrashDebugger.cpp
>
> Modified: llvm/trunk/tools/llc/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/CMakeLists.txt?rev=198198&r1=198197&r2=198198&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/llc/CMakeLists.txt (original)
> +++ llvm/trunk/tools/llc/CMakeLists.txt Sun Dec 29 21:36:05 2013
> @@ -11,6 +11,9 @@ set(LLVM_LINK_COMPONENTS
>    Target
>    )
>
> +# Support plugins.
> +set(LLVM_NO_DEAD_STRIP 1)
> +
>  add_llvm_tool(llc
>    llc.cpp
>    )
>
> Modified: llvm/trunk/tools/opt/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/CMakeLists.txt?rev=198198&r1=198197&r2=198198&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/opt/CMakeLists.txt (original)
> +++ llvm/trunk/tools/opt/CMakeLists.txt Sun Dec 29 21:36:05 2013
> @@ -17,6 +17,9 @@ set(LLVM_LINK_COMPONENTS
>    Vectorize
>    )
>
> +# Support plugins.
> +set(LLVM_NO_DEAD_STRIP 1)
> +
>  add_llvm_tool(opt
>    AnalysisWrappers.cpp
>    GraphPrinters.cpp
>
> Modified: llvm/trunk/unittests/ExecutionEngine/JIT/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/JIT/CMakeLists.txt?rev=198198&r1=198197&r2=198198&view=diff
>
> ==============================================================================
> --- llvm/trunk/unittests/ExecutionEngine/JIT/CMakeLists.txt (original)
> +++ llvm/trunk/unittests/ExecutionEngine/JIT/CMakeLists.txt Sun Dec 29
> 21:36:05 2013
> @@ -51,6 +51,9 @@ if(MSVC)
>    list(APPEND JITTestsSources JITTests.def)
>  endif()
>
> +# The JIT tests need to dlopen things.
> +set(LLVM_NO_DEAD_STRIP 1)
> +
>  add_llvm_unittest(JITTests
>    ${JITTestsSources}
>    )
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131230/681cd912/attachment.html>


More information about the llvm-commits mailing list