summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorPetr Hosek <phosek@google.com>2022-01-21 09:53:14 -0800
committerPetr Hosek <phosek@google.com>2022-01-21 09:53:14 -0800
commit10e5c513b59bff0a049cc2a24bb7d41cd874ad7a (patch)
treebf1ed214c3833b9c0d0d54c428a5077e9524c366 /cmake
parent26cbc430197a3432075c7c5dfec41765f92b97ed (diff)
downloadllvm-10e5c513b59bff0a049cc2a24bb7d41cd874ad7a.tar.gz
Revert "[cmake] Duplicate `{llvm,compiler_rt}_check_linker_flag` for runtime libs and llvm"
This reverts commit 4af11272f57a4a6fed2932e9e0857b2c1a707c51.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/CheckLinkerFlag.cmake17
1 files changed, 17 insertions, 0 deletions
diff --git a/cmake/Modules/CheckLinkerFlag.cmake b/cmake/Modules/CheckLinkerFlag.cmake
new file mode 100644
index 000000000000..722fe5b1b8ea
--- /dev/null
+++ b/cmake/Modules/CheckLinkerFlag.cmake
@@ -0,0 +1,17 @@
+include(CMakePushCheckState)
+include(CheckCCompilerFlag)
+
+function(llvm_check_linker_flag flag dest)
+ # If testing a flag with check_c_compiler_flag, it gets added to the compile
+ # command only, but not to the linker command in that test. If the flag
+ # is vital for linking to succeed, the test would fail even if it would
+ # have succeeded if it was included on both commands.
+ #
+ # Therefore, try adding the flag to CMAKE_REQUIRED_FLAGS, which gets
+ # added to both compiling and linking commands in the tests.
+
+ cmake_push_check_state()
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${flag}")
+ check_c_compiler_flag("" ${dest})
+ cmake_pop_check_state()
+endfunction()