Explain why we don't always use --gc-sections.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 20 Oct 2014 21:37:38 +0000 (21:37 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 20 Oct 2014 21:37:38 +0000 (21:37 +0000)
llvm-svn: 220237

llvm/cmake/modules/AddLLVM.cmake

index 284912c..127d538 100644 (file)
@@ -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()