Skip to content

Commit

Permalink
Always use -Wl,-gc-sections on our build.
Browse files Browse the repository at this point in the history
Both bfd ld and gold correctly handle --export-dynamic, so gc-sections is safe even for binaries
that support plugins.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220174 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
espindola committed Oct 19, 2014
1 parent 551a3d7 commit 0ea9c06
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions cmake/modules/AddLLVM.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,18 @@ function(add_llvm_symbol_exports target_name export_file)
endfunction(add_llvm_symbol_exports)

function(add_dead_strip target_name)
if(NOT LLVM_NO_DEAD_STRIP)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# ld64's implementation of -dead_strip breaks tools that use plugins.
if(NOT LLVM_NO_DEAD_STRIP)
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()
elseif(NOT WIN32)
# Object files are compiled with -ffunction-data-sections.
# On ELF --gc-sections handles --export-dynamic correctly, so we can always
# use it.
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
LINK_FLAGS " -Wl,--gc-sections")
endif()
endfunction(add_dead_strip)

Expand Down

0 comments on commit 0ea9c06

Please sign in to comment.