clang: Patch tools/llvm-shlib for Android
authorFredrik Fornwall <fredrik@fornwall.net>
Wed, 18 Jan 2017 10:33:27 +0000 (11:33 +0100)
committerFredrik Fornwall <fredrik@fornwall.net>
Wed, 18 Jan 2017 10:33:27 +0000 (11:33 +0100)
Treating Android as Linux here allows LLVM_LINK_LLVM_DYLIB to work.

packages/clang/tools-llvm-shlib-CMakeLists.txt.patch [new file with mode: 0644]

diff --git a/packages/clang/tools-llvm-shlib-CMakeLists.txt.patch b/packages/clang/tools-llvm-shlib-CMakeLists.txt.patch
new file mode 100644 (file)
index 0000000..586791a
--- /dev/null
@@ -0,0 +1,12 @@
+diff -u -r ../llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt ./tools/llvm-shlib/CMakeLists.txt
+--- ../llvm-3.9.1.src/tools/llvm-shlib/CMakeLists.txt  2016-05-26 06:35:35.000000000 +0200
++++ ./tools/llvm-shlib/CMakeLists.txt  2017-01-18 10:52:30.810184797 +0100
+@@ -39,7 +39,7 @@
+ add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
+ list(REMOVE_DUPLICATES LIB_NAMES)
+-if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") # FIXME: It should be "GNU ld for elf"
++if("${CMAKE_SYSTEM_NAME}" MATCHES "^(Linux|Android)$") # FIXME: It should be "GNU ld for elf"
+   # GNU ld doesn't resolve symbols in the version script.
+   set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
+ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")