[pkg-d-commits] [ldc] 03/74: CMake: fix LTO build: prevent applying LTO flags when building the runtime libraries.
Matthias Klumpp
mak at moszumanska.debian.org
Thu Jul 13 20:54:09 UTC 2017
This is an automated email from the git hooks/post-receive script.
mak pushed a commit to annotated tag v1.3.0-beta2
in repository ldc.
commit 704d95c54c3832bba03b95e0334dbd4e7f0f4a37
Author: Johan Engelen <jbc.engelen at gmail.com>
Date: Sat Apr 29 15:23:12 2017 +0200
CMake: fix LTO build: prevent applying LTO flags when building the runtime libraries.
Resolves issue #2082
---
cmake/Modules/ExtractDMDSystemLinker.cmake | 4 ++--
cmake/Modules/HandleLTOPGOBuildOptions.cmake | 15 +++------------
2 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/cmake/Modules/ExtractDMDSystemLinker.cmake b/cmake/Modules/ExtractDMDSystemLinker.cmake
index 544669b..b2f6638 100644
--- a/cmake/Modules/ExtractDMDSystemLinker.cmake
+++ b/cmake/Modules/ExtractDMDSystemLinker.cmake
@@ -25,9 +25,9 @@ file(WRITE ${source_file} "void main() {}")
set(result_code)
set(stdout)
if(UNIX)
- separate_arguments(cmdflags UNIX_COMMAND "${D_COMPILER_FLAGS}")
+ separate_arguments(cmdflags UNIX_COMMAND "${D_COMPILER_FLAGS} ${DDMD_DFLAGS} ${DDMD_LFLAGS}")
else()
- separate_arguments(cmdflags WINDOWS_COMMAND "${D_COMPILER_FLAGS}")
+ separate_arguments(cmdflags WINDOWS_COMMAND "${D_COMPILER_FLAGS} ${DDMD_DFLAGS} ${DDMD_LFLAGS}")
endif()
execute_process(
COMMAND ${D_COMPILER} ${cmdflags} -v ${source_file}
diff --git a/cmake/Modules/HandleLTOPGOBuildOptions.cmake b/cmake/Modules/HandleLTOPGOBuildOptions.cmake
index fc48b78..8efc8b7 100644
--- a/cmake/Modules/HandleLTOPGOBuildOptions.cmake
+++ b/cmake/Modules/HandleLTOPGOBuildOptions.cmake
@@ -19,7 +19,8 @@ if(__LTO_FLAG)
message(STATUS "Building LDC using LTO: ${__LTO_FLAG}")
check_cxx_compiler_flag(${__LTO_FLAG} CXX_COMPILER_ACCEPTS_FLTO_${uppercase_LDC_BUILD_WITH_LTO})
if (CXX_COMPILER_ACCEPTS_FLTO_${uppercase_LDC_BUILD_WITH_LTO})
- append(${__LTO_FLAG} CMAKE_CXX_FLAGS CMAKE_C_FLAGS CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
+ append(${__LTO_FLAG} LDC_CXXFLAGS)
+ list(APPEND LLVM_LDFLAGS ${__LTO_FLAG})
endif()
check_d_source_compiles("void main(){}" D_COMPILER_ACCEPTS_FLTO_${uppercase_LDC_BUILD_WITH_LTO} FLAGS ${__LTO_FLAG})
@@ -30,17 +31,7 @@ if(__LTO_FLAG)
if(uppercase_LDC_BUILD_WITH_LTO STREQUAL "THIN")
# On darwin, enable the lto cache.
if(APPLE)
- append("-Wl,-cache_path_lto,${PROJECT_BINARY_DIR}/lto.cache" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
- endif()
- endif()
- if(uppercase_LDC_BUILD_WITH_LTO MATCHES "^(THIN|FULL)$")
- if (APPLE)
- # Explicitly use the LTO library that shipped with the host LDC, assuming it is newer than the system-installed lib.
- get_filename_component(HOST_LDC_BINDIR ${D_COMPILER} DIRECTORY)
- if(EXISTS ${HOST_LDC_BINDIR}/../lib/libLTO-ldc.dylib)
- message(STATUS "Using ${HOST_LDC_BINDIR}/../lib/libLTO-ldc.dylib for LTO")
- append("-Wl,-lto_library,${HOST_LDC_BINDIR}/../lib/libLTO-ldc.dylib" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
- endif()
+ list(APPEND LLVM_LDFLAGS "-Wl,-cache_path_lto,${PROJECT_BINARY_DIR}/lto.cache")
endif()
endif()
endif()
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-d/ldc.git
More information about the pkg-d-commits
mailing list