about summary refs log tree commit diff homepage
path: root/cmake
diff options
context:
space:
mode:
authorDan Liew <daniel.liew@imperial.ac.uk>2016-12-19 11:49:41 +0000
committerDan Liew <daniel.liew@imperial.ac.uk>2016-12-19 11:49:41 +0000
commit48d0feb983232250b42785c04fc87251d436f4d3 (patch)
tree9a0eb74a550921a21e5f8f146b3977d861496665 /cmake
parentba009ba1f66396f0951c703e6a68e393d01be7af (diff)
downloadklee-48d0feb983232250b42785c04fc87251d436f4d3.tar.gz
[CMake] Fix linker warning about mixed linking modes when LLVM was
built with `-fvisibility-inlines-hidden`.

This was observed when using a bottled version of LLVM 3.4 on macOS
that appears to have been built with this option.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/find_llvm.cmake5
1 files changed, 5 insertions, 0 deletions
diff --git a/cmake/find_llvm.cmake b/cmake/find_llvm.cmake
index 53b2b392..0df6b4b5 100644
--- a/cmake/find_llvm.cmake
+++ b/cmake/find_llvm.cmake
@@ -33,6 +33,8 @@ if (USE_CMAKE_FIND_PACKAGE_LLVM)
     endif()
     set(${output_var} ${${output_var}} PARENT_SCOPE)
   endfunction()
+  # HACK: This information is not exported so just pretend its OFF for now.
+  set(LLVM_ENABLE_VISIBILITY_INLINES_HIDDEN OFF)
 else()
   # Use the llvm-config binary to get the information needed.
   # Try to detect it in the user's environment. The user can
@@ -116,6 +118,7 @@ else()
   set(LLVM_ENABLE_ASSERTIONS ON)
   set(LLVM_ENABLE_EH ON)
   set(LLVM_ENABLE_RTTI ON)
+  set(LLVM_ENABLE_VISIBILITY_INLINES_HIDDEN OFF)
   _run_llvm_config(_llvm_cxx_flags "--cxxflags")
   string_to_list("${_llvm_cxx_flags}" _llvm_cxx_flags_list)
   foreach (flag ${_llvm_cxx_flags_list})
@@ -127,6 +130,8 @@ else()
       set(LLVM_ENABLE_EH OFF)
     elseif ("${flag}" STREQUAL "-fno-rtti")
       set(LLVM_ENABLE_RTTI OFF)
+    elseif ("${flag}" STREQUAL "-fvisibility-inlines-hidden")
+      set(LLVM_ENABLE_VISIBILITY_INLINES_HIDDEN ON)
     endif()
   endforeach()