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: *; };
signature.asc
Description: This is a digitally signed message part.