summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-10-20 21:37:38 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-10-20 21:37:38 +0000
commitb9c7f601917b88f9743a42d97081b1655fe9bf06 (patch)
tree17e517bd0fabb3c700a3381fa412db4bf5263a9f /cmake
parent4e399f4500051ebc4dce6f9a54a3786967e99eca (diff)
Explain why we don't always use --gc-sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220237 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/AddLLVM.cmake4
1 files changed, 4 insertions, 0 deletions
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
index 284912c19c1..127d5389d19 100644
--- a/cmake/modules/AddLLVM.cmake
+++ b/cmake/modules/AddLLVM.cmake
@@ -143,10 +143,14 @@ endfunction(add_llvm_symbol_exports)
function(add_dead_strip target_name)
if(NOT LLVM_NO_DEAD_STRIP)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+ # ld64's implementation of -dead_strip breaks tools that use plugins.
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,-dead_strip")
elseif(NOT WIN32)
# Object files are compiled with -ffunction-data-sections.
+ # Versions of bfd ld < 2.23.1 have a bug in --gc-sections that breaks
+ # tools that use plugins. Always pass --gc-sections once we require
+ # a newer linker.
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,--gc-sections")
endif()