mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[cmake] Use -ffunction-sections and -Wl,--gc-sections on MinGW targets
If compiling with GCC or linking with ld.bfd, these options have little effect, but if built with Clang and linked with LLD, they provide a quite notable size decrease - this shrinks an entire llvm-mingw distribution package by 22%. If building with BUILD_SHARED_LIBS or LLVM_BUILD_LLVM_DYLIB with LLD, this requires a version of LLD that contains a fix for auto exporting symbols from comdats, 2b01a417d7ccb001ccc1185ef5fdc967c9fac8d7. Differential Revision: https://reviews.llvm.org/D101568
This commit is contained in:
parent
3bf0debbff
commit
eff58ba276
@ -242,7 +242,7 @@ function(add_link_opts target_name)
|
||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,-z,discard-unused=sections")
|
||||
endif()
|
||||
elseif(NOT WIN32 AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD|AIX|OS390")
|
||||
elseif(NOT MSVC AND NOT CMAKE_SYSTEM_NAME MATCHES "OpenBSD|AIX|OS390")
|
||||
# TODO Revisit this later on z/OS.
|
||||
set_property(TARGET ${target_name} APPEND_STRING PROPERTY
|
||||
LINK_FLAGS " -Wl,--gc-sections")
|
||||
|
@ -898,7 +898,7 @@ endif()
|
||||
# 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.
|
||||
if(NOT CYGWIN AND NOT WIN32)
|
||||
if(NOT CYGWIN AND NOT MSVC)
|
||||
if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND
|
||||
NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
|
||||
check_c_compiler_flag("-Werror -fno-function-sections" C_SUPPORTS_FNO_FUNCTION_SECTIONS)
|
||||
|
Loading…
x
Reference in New Issue
Block a user