Control: tag -1 patch

I'm attaching a patch based on Rebecca's. I simply used a CMake variable to 
avoid harcoding a path. Note it's the patch itself and not a debdiff: you need 
to add it to quilt's series file.

I'm trying to get LLVM built into barriere.d.o. So far I've got to test 
failing but definitely due to non-related stuff, one due to a filesystem thing 
(maybe the host ran out of space for a moment?) and the other one due to lack 
of fakeroot on my side while running the tests, which I'm trying to re do now.

Sylvestre: if you can please try to build this one too. Once built there are 
two things to test:

- Are the symbols versioned? For this creating a temporary symbols files is 
enough. Ping me if you don't know how to do this.

- Install and test LLVM 3.9 with stuff built with previous versions, like for 
example kdevelop ;-) Everything should just work.

Of course I'm also trying to do this myself but if you can try it yourself the 
better.

Cheers, Lisandro.

-- 
Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/
Description: add a simple linker script to version LLVM symbols
 This patch adds a very simple linker script to version the lib's symbols
 and thus trying to avoid crashes if an application loads two different
 LLVM versions (as long as they do not share data between them).
Author: Rebecca N. Palmer <rebecca_pal...@zoho.com>
Author: Lisandro Damían Nicanor Pérez Meyer <lisan...@debian.org>
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848368

---
 tools/llvm-shlib/CMakeLists.txt            |    2 +-
 tools/llvm-shlib/simple_version_script.map |    1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Index: llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/CMakeLists.txt
===================================================================
--- llvm-toolchain-3.9-3.9.1.orig/tools/llvm-shlib/CMakeLists.txt
+++ llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/CMakeLists.txt
@@ -42,7 +42,7 @@ set_property(TARGET LLVM PROPERTY VERSIO
 list(REMOVE_DUPLICATES LIB_NAMES)
 if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "GNU" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "kFreeBSD") # 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)
+  set(LIB_NAMES -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
 elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
   set(LIB_NAMES -Wl,-all_load ${LIB_NAMES})
 endif()
Index: llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/simple_version_script.map
===================================================================
--- /dev/null
+++ llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/simple_version_script.map
@@ -0,0 +1 @@
+LLVM_3.9 { global: *; };

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to