mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-08-07 21:49:26 +00:00
Use versioned symbols (Closes: #848368)
This commit is contained in:
parent
1646d8a6ce
commit
3ea614c6ea
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -4,6 +4,9 @@ llvm-toolchain-snapshot (1:5.0~svn298832-1~exp1) experimental; urgency=medium
|
|||||||
* Explicit the dep of clang-tidy on same version of llvm to avoid
|
* Explicit the dep of clang-tidy on same version of llvm to avoid
|
||||||
undefined symbols
|
undefined symbols
|
||||||
|
|
||||||
|
[ Rebecca N. Palmer ]
|
||||||
|
* Use versioned symbols (Closes: #848368)
|
||||||
|
|
||||||
-- Sylvestre Ledru <sylvestre@debian.org> Mon, 27 Mar 2017 09:15:16 +0200
|
-- Sylvestre Ledru <sylvestre@debian.org> Mon, 27 Mar 2017 09:15:16 +0200
|
||||||
|
|
||||||
llvm-toolchain-snapshot (1:5.0~svn294583-1~exp1) experimental; urgency=medium
|
llvm-toolchain-snapshot (1:5.0~svn294583-1~exp1) experimental; urgency=medium
|
||||||
|
46
debian/patches/add_symbols_versioning.patch
vendored
Normal file
46
debian/patches/add_symbols_versioning.patch
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
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).
|
||||||
|
|
||||||
|
Note that we deliberately *don't* make LLVM_5.0 depend on LLVM_5.0:
|
||||||
|
they're incompatible and the whole point of this patch is
|
||||||
|
to tell the linker that.
|
||||||
|
|
||||||
|
Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
|
||||||
|
Author: Lisandro Damían Nicanor Pérez Meyer <lisandro@debian.org>
|
||||||
|
Bug-Debian: https://bugs.debian.org/848368
|
||||||
|
|
||||||
|
Index: llvm-toolchain-snapshot_5.0~svn298832/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- llvm-toolchain-snapshot_5.0~svn298832.orig/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
+++ llvm-toolchain-snapshot_5.0~svn298832/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
@@ -40,7 +40,7 @@ set_property(TARGET LLVM PROPERTY VERSIO
|
||||||
|
list(REMOVE_DUPLICATES LIB_NAMES)
|
||||||
|
if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")) # 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-snapshot_5.0~svn298832/tools/llvm-shlib/simple_version_script.map
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ llvm-toolchain-snapshot_5.0~svn298832/tools/llvm-shlib/simple_version_script.map
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+LLVM_5.0 { global: *; };
|
||||||
|
Index: llvm-toolchain-snapshot_5.0~svn298832/cmake/modules/AddLLVM.cmake
|
||||||
|
===================================================================
|
||||||
|
--- llvm-toolchain-snapshot_5.0~svn298832.orig/cmake/modules/AddLLVM.cmake
|
||||||
|
+++ llvm-toolchain-snapshot_5.0~svn298832/cmake/modules/AddLLVM.cmake
|
||||||
|
@@ -82,7 +82,7 @@ function(add_llvm_symbol_exports target_
|
||||||
|
set(native_export_file "${target_name}.exports")
|
||||||
|
# FIXME: Don't write the "local:" line on OpenBSD.
|
||||||
|
add_custom_command(OUTPUT ${native_export_file}
|
||||||
|
- COMMAND echo "{" > ${native_export_file}
|
||||||
|
+ COMMAND echo "LLVM_5.0 {" > ${native_export_file}
|
||||||
|
COMMAND grep -q "[[:alnum:]]" ${export_file} && echo " global:" >> ${native_export_file} || :
|
||||||
|
COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${export_file} >> ${native_export_file}
|
||||||
|
COMMAND echo " local: *;" >> ${native_export_file}
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -44,3 +44,4 @@ lldb-addversion-suffix-to-llvm-server-exec.patch
|
|||||||
lldb-missing-install.diff
|
lldb-missing-install.diff
|
||||||
silent-test-failing-codeverage.diff
|
silent-test-failing-codeverage.diff
|
||||||
disable-path-test-failing.diff
|
disable-path-test-failing.diff
|
||||||
|
add_symbols_versioning.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user