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

Rafael EspĂ­ndola rafael.espindola at gmail.com
Mon Jan 6 14:47:06 PST 2014


This is awesome. Could ENABLE_EXPORTS be merged into this?

On 30 December 2013 00:39, NAKAMURA Takumi <geek4civic at gmail.com> wrote:
> It is less harmful and I will fix soon.
>
> -  if(NOT CYGWIN AND NOT MINGW)
> +  if(NOT CYGWIN AND NOT WIN32)
>
> 2013/12/30 Yaron Keren <yaron.keren at gmail.com>:
>> 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
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list