[PATCH] [CMake] Introduce LLVM_DEAD_STRIP instead of LLVM_NO_DEAD_STRIP
NAKAMURA Takumi
geek4civic at gmail.com
Tue Mar 4 07:48:15 PST 2014
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 --------------
A non-text attachment was scrubbed...
Name: D2941.1.patch
Type: text/x-patch
Size: 3713 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140304/b0d7f471/attachment.bin>
More information about the llvm-commits
mailing list