[PATCH] [CMake] Introduce LLVM_DEAD_STRIP instead of LLVM_NO_DEAD_STRIP
Nico Weber
thakis at chromium.org
Tue Mar 4 13:26:32 PST 2014
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.)
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}
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140304/609f6526/attachment.html>
More information about the llvm-commits
mailing list