[PATCH] [CMake] Introduce LLVM_DEAD_STRIP instead of LLVM_NO_DEAD_STRIP

Chandler Carruth chandlerc at gmail.com
Tue Mar 4 13:28:47 PST 2014


On Tue, Mar 4, 2014 at 1:26 PM, Nico Weber <thakis at chromium.org> wrote:

> Do you want to change llvm/Makefile.rules too? (I picked the current name
> to be consistent with the Makefile. I agree not having a double negative is
> nice, but having the same name in cmake and make is nicer, imho.)
>

I agree with all of this. =]

>
>
> On Tue, Mar 4, 2014 at 7:48 AM, NAKAMURA Takumi <geek4civic at gmail.com>wrote:
>
>> Hi chandlerc,
>>
>> I think "LLVM_NO_DEAD_STRIP" would confuse like a double negative.
>> I propose "LLVM_DEAD_STRIP", ON if available. Each executable can turn it
>> OFF.
>>
>> http://llvm-reviews.chandlerc.com/D2941
>>
>> Files:
>>   clang/tools/driver/CMakeLists.txt
>>   llvm/cmake/modules/AddLLVM.cmake
>>   llvm/cmake/modules/HandleLLVMOptions.cmake
>>   llvm/tools/bugpoint/CMakeLists.txt
>>   llvm/tools/llc/CMakeLists.txt
>>   llvm/tools/opt/CMakeLists.txt
>>   llvm/unittests/ExecutionEngine/JIT/CMakeLists.txt
>>
>> Index: clang/tools/driver/CMakeLists.txt
>> ===================================================================
>> --- clang/tools/driver/CMakeLists.txt
>> +++ clang/tools/driver/CMakeLists.txt
>> @@ -17,7 +17,7 @@
>>    )
>>
>>  # Support plugins.
>> -set(LLVM_NO_DEAD_STRIP 1)
>> +set(LLVM_DEAD_STRIP OFF)
>>
>>  add_clang_executable(clang
>>    driver.cpp
>> Index: llvm/cmake/modules/AddLLVM.cmake
>> ===================================================================
>> --- llvm/cmake/modules/AddLLVM.cmake
>> +++ llvm/cmake/modules/AddLLVM.cmake
>> @@ -134,17 +134,19 @@
>>  endfunction(add_llvm_symbol_exports)
>>
>>  function(add_dead_strip target_name)
>> -  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)
>> -      # Object files are compiled with -ffunction-data-sections.
>> -      set_property(TARGET ${target_name} APPEND_STRING PROPERTY
>> -                   LINK_FLAGS " -Wl,--gc-sections")
>> -    endif()
>> +  if(NOT LLVM_DEAD_STRIP)
>> +    return()
>>    endif()
>> -endfunction(add_dead_strip)
>> +
>> +  if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
>> +    set_property(TARGET ${target_name} APPEND_STRING PROPERTY
>> +      LINK_FLAGS " -Wl,-dead_strip")
>> +  elseif(NOT WIN32)
>> +    # Object files are compiled with -ffunction-data-sections.
>> +    set_property(TARGET ${target_name} APPEND_STRING PROPERTY
>> +      LINK_FLAGS " -Wl,--gc-sections")
>> +  endif()
>> +endfunction()
>>
>>  # Set each output directory according to ${CMAKE_CONFIGURATION_TYPES}.
>>  # Note: Don't set variables CMAKE_*_OUTPUT_DIRECTORY any more,
>> Index: llvm/cmake/modules/HandleLLVMOptions.cmake
>> ===================================================================
>> --- llvm/cmake/modules/HandleLLVMOptions.cmake
>> +++ llvm/cmake/modules/HandleLLVMOptions.cmake
>> @@ -353,8 +353,9 @@
>>  # Add flags for add_dead_strip().
>>  # FIXME: With MSVS, consider compiling with /Gy and linking with
>> /OPT:REF?
>>  # But MinSizeRel seems to add that automatically, so maybe disable these
>> -# flags instead if LLVM_NO_DEAD_STRIP is set.
>> +# flags instead if LLVM_DEAD_STRIP is not set.
>>  if(NOT CYGWIN AND NOT WIN32)
>> +  set(LLVM_DEAD_STRIP ON)
>>    if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
>>      check_c_compiler_flag("-Werror -fno-function-sections"
>> C_SUPPORTS_FNO_FUNCTION_SECTIONS)
>>      if (C_SUPPORTS_FNO_FUNCTION_SECTIONS)
>> Index: llvm/tools/bugpoint/CMakeLists.txt
>> ===================================================================
>> --- llvm/tools/bugpoint/CMakeLists.txt
>> +++ llvm/tools/bugpoint/CMakeLists.txt
>> @@ -18,7 +18,7 @@
>>    )
>>
>>  # Support plugins.
>> -set(LLVM_NO_DEAD_STRIP 1)
>> +set(LLVM_DEAD_STRIP OFF)
>>
>>  add_llvm_tool(bugpoint
>>    BugDriver.cpp
>> Index: llvm/tools/llc/CMakeLists.txt
>> ===================================================================
>> --- llvm/tools/llc/CMakeLists.txt
>> +++ llvm/tools/llc/CMakeLists.txt
>> @@ -12,7 +12,7 @@
>>    )
>>
>>  # Support plugins.
>> -set(LLVM_NO_DEAD_STRIP 1)
>> +set(LLVM_DEAD_STRIP OFF)
>>
>>  add_llvm_tool(llc
>>    llc.cpp
>> Index: llvm/tools/opt/CMakeLists.txt
>> ===================================================================
>> --- llvm/tools/opt/CMakeLists.txt
>> +++ llvm/tools/opt/CMakeLists.txt
>> @@ -19,7 +19,7 @@
>>    )
>>
>>  # Support plugins.
>> -set(LLVM_NO_DEAD_STRIP 1)
>> +set(LLVM_DEAD_STRIP OFF)
>>
>>  add_llvm_tool(opt
>>    AnalysisWrappers.cpp
>> Index: llvm/unittests/ExecutionEngine/JIT/CMakeLists.txt
>> ===================================================================
>> --- llvm/unittests/ExecutionEngine/JIT/CMakeLists.txt
>> +++ llvm/unittests/ExecutionEngine/JIT/CMakeLists.txt
>> @@ -52,7 +52,7 @@
>>  endif()
>>
>>  # The JIT tests need to dlopen things.
>> -set(LLVM_NO_DEAD_STRIP 1)
>> +set(LLVM_DEAD_STRIP OFF)
>>
>>  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/20140304/8c835808/attachment.html>


More information about the llvm-commits mailing list