summaryrefslogtreecommitdiffstats
path: root/llvm/cmake/modules
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-01-22 14:06:51 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-01-22 14:06:51 +0000
commitbb5d09f0e3884a5b0ebcb16d1b9d0d2505925127 (patch)
tree50d59669f613e718ae2cf520b2d39d61d65946c8 /llvm/cmake/modules
parent229984947b89c94451cf5c8f85d81b1177b1ad71 (diff)
downloadbcm5719-llvm-bb5d09f0e3884a5b0ebcb16d1b9d0d2505925127.tar.gz
bcm5719-llvm-bb5d09f0e3884a5b0ebcb16d1b9d0d2505925127.zip
Pass -Wl,-z,defs when building shared libraries, but not with the sanitizers.
llvm-svn: 226828
Diffstat (limited to 'llvm/cmake/modules')
-rw-r--r--llvm/cmake/modules/HandleLLVMOptions.cmake8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index 2ee0dd5b1b7..9397225d5db 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -104,6 +104,14 @@ if(APPLE)
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-flat_namespace -Wl,-undefined -Wl,suppress")
endif()
+# Pass -Wl,-z,defs. This makes sure all symbols are defined. Otherwise a DSO
+# build might work on ELF but fail on MachO/COFF.
+if(NOT (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR WIN32) AND
+ NOT LLVM_USE_SANITIZER)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,defs")
+endif()
+
+
function(append value)
foreach(variable ${ARGN})
set(${variable} "${${variable}} ${value}" PARENT_SCOPE)
OpenPOWER on IntegriCloud