62 lines
3.1 KiB
Diff
62 lines
3.1 KiB
Diff
|
From 2912190aec4a215849a6dea0463f6599425fb7c7 Mon Sep 17 00:00:00 2001
|
||
|
From: Tom Stellard <tstellar@redhat.com>
|
||
|
Date: Mon, 14 Aug 2017 17:46:14 -0700
|
||
|
Subject: [PATCH] Revert "Add a linker script to version LLVM symbols"
|
||
|
|
||
|
This reverts commit cd789d8cfe12aa374e66eafc748f4fc06e149ca7.
|
||
|
|
||
|
Conflicts:
|
||
|
tools/llvm-shlib/CMakeLists.txt
|
||
|
---
|
||
|
cmake/modules/AddLLVM.cmake | 3 +--
|
||
|
tools/llvm-shlib/CMakeLists.txt | 8 ++------
|
||
|
tools/llvm-shlib/simple_version_script.map.in | 1 -
|
||
|
3 files changed, 3 insertions(+), 9 deletions(-)
|
||
|
delete mode 100644 tools/llvm-shlib/simple_version_script.map.in
|
||
|
|
||
|
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||
|
index e1ad9b9..e5ee4ee 100644
|
||
|
--- a/cmake/modules/AddLLVM.cmake
|
||
|
+++ b/cmake/modules/AddLLVM.cmake
|
||
|
@@ -81,9 +81,8 @@ function(add_llvm_symbol_exports target_name export_file)
|
||
|
# Gold and BFD ld require a version script rather than a plain list.
|
||
|
set(native_export_file "${target_name}.exports")
|
||
|
# FIXME: Don't write the "local:" line on OpenBSD.
|
||
|
- # in the export file, also add a linker script to version LLVM symbols (form: LLVM_N.M)
|
||
|
add_custom_command(OUTPUT ${native_export_file}
|
||
|
- COMMAND echo "LLVM_${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} {" > ${native_export_file}
|
||
|
+ COMMAND echo "{" > ${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}
|
||
|
diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt
|
||
|
index 907345a..01a37b5 100644
|
||
|
--- a/tools/llvm-shlib/CMakeLists.txt
|
||
|
+++ b/tools/llvm-shlib/CMakeLists.txt
|
||
|
@@ -37,13 +37,9 @@ endif()
|
||
|
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
|
||
|
|
||
|
list(REMOVE_DUPLICATES LIB_NAMES)
|
||
|
-if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")) # FIXME: It should be "GNU ld for elf"
|
||
|
- configure_file(
|
||
|
- ${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in
|
||
|
- ${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map)
|
||
|
-
|
||
|
+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,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
|
||
|
+ set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive)
|
||
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
|
||
|
set(LIB_NAMES -Wl,-all_load ${LIB_NAMES})
|
||
|
endif()
|
||
|
diff --git a/tools/llvm-shlib/simple_version_script.map.in b/tools/llvm-shlib/simple_version_script.map.in
|
||
|
deleted file mode 100644
|
||
|
index e9515fe..0000000
|
||
|
--- a/tools/llvm-shlib/simple_version_script.map.in
|
||
|
+++ /dev/null
|
||
|
@@ -1 +0,0 @@
|
||
|
-LLVM_@LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@ { global: *; };
|
||
|
--
|
||
|
1.8.3.1
|
||
|
|