mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
alarm/llvm37 to 3.7.1-2
This commit is contained in:
parent
7a3fddfa6b
commit
b653b3391f
2 changed files with 199 additions and 12 deletions
180
alarm/llvm37/0001-backport-so-versioning.patch
Normal file
180
alarm/llvm37/0001-backport-so-versioning.patch
Normal file
|
@ -0,0 +1,180 @@
|
|||
From 889531a776155aec2a36a6cf47183dea90549759 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
Date: Mon, 4 Jul 2016 08:32:42 -0600
|
||||
Subject: [PATCH] backport so versioning
|
||||
|
||||
---
|
||||
cmake/modules/AddLLVM.cmake | 93 +++++++++++++++++++++++++++++++---
|
||||
cmake/modules/LLVMInstallSymlink.cmake | 21 ++++++++
|
||||
tools/llvm-shlib/CMakeLists.txt | 2 +-
|
||||
3 files changed, 109 insertions(+), 7 deletions(-)
|
||||
create mode 100644 cmake/modules/LLVMInstallSymlink.cmake
|
||||
|
||||
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
|
||||
index 6b6e6e0..b9d67d9 100644
|
||||
--- a/cmake/modules/AddLLVM.cmake
|
||||
+++ b/cmake/modules/AddLLVM.cmake
|
||||
@@ -316,10 +316,12 @@ endfunction(set_windows_version_resource_properties)
|
||||
# Same semantics as target_link_libraries().
|
||||
# ADDITIONAL_HEADERS
|
||||
# May specify header files for IDE generators.
|
||||
+# SONAME
|
||||
+# Should set SONAME link flags and create symlinks
|
||||
# )
|
||||
function(llvm_add_library name)
|
||||
cmake_parse_arguments(ARG
|
||||
- "MODULE;SHARED;STATIC;DISABLE_LLVM_LINK_LLVM_DYLIB"
|
||||
+ "MODULE;SHARED;STATIC;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME"
|
||||
"OUTPUT_NAME"
|
||||
"ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS"
|
||||
${ARGN})
|
||||
@@ -421,11 +423,6 @@ function(llvm_add_library name)
|
||||
PREFIX ""
|
||||
)
|
||||
endif()
|
||||
-
|
||||
- set_target_properties(${name}
|
||||
- PROPERTIES
|
||||
- SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}
|
||||
- VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
|
||||
endif()
|
||||
|
||||
if(ARG_MODULE OR ARG_SHARED)
|
||||
@@ -440,6 +437,24 @@ function(llvm_add_library name)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
+ if(ARG_SHARED AND UNIX)
|
||||
+ if(NOT APPLE AND ARG_SONAME)
|
||||
+ get_target_property(output_name ${name} OUTPUT_NAME)
|
||||
+ if(${output_name} STREQUAL "output_name-NOTFOUND")
|
||||
+ set(output_name ${name})
|
||||
+ endif()
|
||||
+ set(library_name ${output_name}-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX})
|
||||
+ set(api_name ${output_name}-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
|
||||
+ set_target_properties(${name} PROPERTIES OUTPUT_NAME ${library_name})
|
||||
+ llvm_install_library_symlink(${api_name} ${library_name} SHARED
|
||||
+ COMPONENT ${name}
|
||||
+ ALWAYS_GENERATE)
|
||||
+ llvm_install_library_symlink(${output_name} ${library_name} SHARED
|
||||
+ COMPONENT ${name}
|
||||
+ ALWAYS_GENERATE)
|
||||
+ endif()
|
||||
+ endif()
|
||||
+
|
||||
# Add the explicit dependency information for this library.
|
||||
#
|
||||
# It would be nice to verify that we have the dependencies for this library
|
||||
@@ -970,3 +985,69 @@ function(add_lit_testsuites project directory)
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
+
|
||||
+function(llvm_install_library_symlink name dest type)
|
||||
+ cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
|
||||
+ foreach(path ${CMAKE_MODULE_PATH})
|
||||
+ if(EXISTS ${path}/LLVMInstallSymlink.cmake)
|
||||
+ set(INSTALL_SYMLINK ${path}/LLVMInstallSymlink.cmake)
|
||||
+ break()
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
+
|
||||
+ set(component ${ARG_COMPONENT})
|
||||
+ if(NOT component)
|
||||
+ set(component ${name})
|
||||
+ endif()
|
||||
+
|
||||
+ set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
|
||||
+ set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
|
||||
+
|
||||
+ set(output_dir lib)
|
||||
+ if(WIN32 AND "${type}" STREQUAL "SHARED")
|
||||
+ set(output_dir bin)
|
||||
+ endif()
|
||||
+
|
||||
+ install(SCRIPT ${INSTALL_SYMLINK}
|
||||
+ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
|
||||
+ COMPONENT ${component})
|
||||
+
|
||||
+ if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
|
||||
+ add_custom_target(install-${name}
|
||||
+ DEPENDS ${name} ${dest} install-${dest}
|
||||
+ COMMAND "${CMAKE_COMMAND}"
|
||||
+ -DCMAKE_INSTALL_COMPONENT=${name}
|
||||
+ -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
+ endif()
|
||||
+endfunction()
|
||||
+
|
||||
+function(llvm_install_symlink name dest)
|
||||
+ cmake_parse_arguments(ARG "ALWAYS_GENERATE" "" "" ${ARGN})
|
||||
+ foreach(path ${CMAKE_MODULE_PATH})
|
||||
+ if(EXISTS ${path}/LLVMInstallSymlink.cmake)
|
||||
+ set(INSTALL_SYMLINK ${path}/LLVMInstallSymlink.cmake)
|
||||
+ break()
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
+
|
||||
+ if(ARG_ALWAYS_GENERATE)
|
||||
+ set(component ${dest})
|
||||
+ else()
|
||||
+ set(component ${name})
|
||||
+ endif()
|
||||
+
|
||||
+ set(full_name ${name}${CMAKE_EXECUTABLE_SUFFIX})
|
||||
+ set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
|
||||
+
|
||||
+ install(SCRIPT ${INSTALL_SYMLINK}
|
||||
+ CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
|
||||
+ COMPONENT ${component})
|
||||
+
|
||||
+ if (NOT CMAKE_CONFIGURATION_TYPES AND NOT ARG_ALWAYS_GENERATE)
|
||||
+ add_custom_target(install-${name}
|
||||
+ DEPENDS ${name} ${dest} install-${dest}
|
||||
+ COMMAND "${CMAKE_COMMAND}"
|
||||
+ -DCMAKE_INSTALL_COMPONENT=${name}
|
||||
+ -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||
+ endif()
|
||||
+endfunction()
|
||||
diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
|
||||
new file mode 100644
|
||||
index 0000000..482697b
|
||||
--- /dev/null
|
||||
+++ b/cmake/modules/LLVMInstallSymlink.cmake
|
||||
@@ -0,0 +1,21 @@
|
||||
+# We need to execute this script at installation time because the
|
||||
+# DESTDIR environment variable may be unset at configuration time.
|
||||
+# See PR8397.
|
||||
+
|
||||
+function(install_symlink name target outdir)
|
||||
+ if(UNIX)
|
||||
+ set(LINK_OR_COPY create_symlink)
|
||||
+ set(DESTDIR $ENV{DESTDIR})
|
||||
+ else()
|
||||
+ set(LINK_OR_COPY copy)
|
||||
+ endif()
|
||||
+
|
||||
+ set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
|
||||
+
|
||||
+ message("Creating ${name}")
|
||||
+
|
||||
+ execute_process(
|
||||
+ COMMAND "${CMAKE_COMMAND}" -E ${LINK_OR_COPY} "${target}" "${name}"
|
||||
+ WORKING_DIRECTORY "${bindir}")
|
||||
+
|
||||
+endfunction()
|
||||
diff --git a/tools/llvm-shlib/CMakeLists.txt b/tools/llvm-shlib/CMakeLists.txt
|
||||
index 9b407bd..d47a01f 100644
|
||||
--- a/tools/llvm-shlib/CMakeLists.txt
|
||||
+++ b/tools/llvm-shlib/CMakeLists.txt
|
||||
@@ -82,7 +82,7 @@ else()
|
||||
add_custom_target(libLLVMExports DEPENDS ${LLVM_EXPORTED_SYMBOL_FILE})
|
||||
endif()
|
||||
|
||||
-add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB ${SOURCES})
|
||||
+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"
|
||||
--
|
||||
2.9.0
|
||||
|
|
@ -18,7 +18,7 @@ buildarch=4
|
|||
|
||||
pkgname=('llvm37' 'llvm37-libs' 'clang37' )
|
||||
pkgver=3.7.1
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
_ocaml_ver=4.02.3
|
||||
arch=('i686' 'x86_64')
|
||||
url="http://llvm.org/"
|
||||
|
@ -40,7 +40,8 @@ source=(http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz{,.sig}
|
|||
lldb-3.7.0-avoid-linking-to-libLLVM.patch
|
||||
0001-New-MSan-mapping-layout-llvm-part.patch
|
||||
0001-New-MSan-mapping-layout-compiler-rt-part.patch
|
||||
llvm-Config-llvm-config.h)
|
||||
llvm-Config-llvm-config.h
|
||||
0001-backport-so-versioning.patch)
|
||||
sha256sums=('be7794ed0cec42d6c682ca8e3517535b54555a3defabec83554dbc74db545ad5'
|
||||
'SKIP'
|
||||
'56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674'
|
||||
|
@ -58,7 +59,8 @@ sha256sums=('be7794ed0cec42d6c682ca8e3517535b54555a3defabec83554dbc74db545ad5'
|
|||
'2d53b6ed4c7620eeade87e7761b98093a0434801ddd599056daed7881141fb01'
|
||||
'c5f4e329143bef36b623ba5daf311b5a73fa99ab05fed4ba506c1c3bc4cf5ee7'
|
||||
'f44e8fe3cef9b6f706d651f443922261e1dcf53bcaabdd0ac7edb1758e4bc44d'
|
||||
'597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48')
|
||||
'597dc5968c695bbdbb0eac9e8eb5117fcd2773bc91edf5ec103ecffffab8bc48'
|
||||
'39244c657b48bdec7c6124505fffe9ca70de91fdcd93528b3486e84d45d48661')
|
||||
validpgpkeys=('11E521D646982372EB577A1F8F0871F202119294'
|
||||
'B6C8F98282B944E3B0D5C2530FC3042E345AD05D')
|
||||
|
||||
|
@ -97,6 +99,9 @@ prepare() {
|
|||
patch -Np1 -i ../0001-New-MSan-mapping-layout-llvm-part.patch
|
||||
patch -d projects/compiler-rt -Np1 <../0001-New-MSan-mapping-layout-compiler-rt-part.patch
|
||||
|
||||
# backport versioned so files
|
||||
patch -p1 -i ../0001-backport-so-versioning.patch
|
||||
|
||||
# Use Python 2
|
||||
find tools/lldb -name Makefile -exec sed -i 's/python-config/python2-config/' {} +
|
||||
sed -i 's|/usr/bin/env python|&2|' \
|
||||
|
@ -157,8 +162,15 @@ package_llvm37() {
|
|||
rm -r "$pkgdir"/usr/share/doc/llvm/html/{_sources,.buildinfo}
|
||||
|
||||
# The runtime libraries go into llvm-libs
|
||||
mv -f "$pkgdir"/usr/lib/lib{LLVM,LTO}.so* "$srcdir"
|
||||
mv -f "$pkgdir"/usr/lib/LLVMgold.so "$srcdir"
|
||||
mv -f "$pkgdir/usr/lib/libLLVM-$pkgver.so" "$srcdir/"
|
||||
mv -f "$pkgdir/usr/lib/libLLVM-${pkgver%.*}.so" "$srcdir/"
|
||||
rm "$pkgdir/usr/lib/libLLVM.so"
|
||||
|
||||
# Get rid of example Hello transformation
|
||||
rm "$pkgdir"/usr/lib/*LLVMHello.*
|
||||
|
||||
# Remove LTO libs which conflict with llvm-libs
|
||||
rm "$pkgdir"/usr/lib/{LLVMgold,libLTO,BugpointPasses}.so
|
||||
|
||||
# OCaml bindings go to a separate package
|
||||
rm -rf "$srcdir"/ocaml.{lib,doc}
|
||||
|
@ -183,15 +195,10 @@ package_llvm37-libs() {
|
|||
|
||||
install -d "$pkgdir/usr/lib"
|
||||
cp -P \
|
||||
"$srcdir"/lib{LLVM,LTO}.so* \
|
||||
"$srcdir"/LLVMgold.so \
|
||||
"$srcdir/libLLVM-$pkgver.so" \
|
||||
"$srcdir/libLLVM-${pkgver%.*}.so" \
|
||||
"$pkgdir/usr/lib/"
|
||||
|
||||
# Symlink LLVMgold.so from /usr/lib/bfd-plugins
|
||||
# https://bugs.archlinux.org/task/28479
|
||||
install -d "$pkgdir/usr/lib/bfd-plugins"
|
||||
ln -s ../LLVMgold.so "$pkgdir/usr/lib/bfd-plugins/LLVMgold.so"
|
||||
|
||||
install -Dm644 "$srcdir/llvm-$pkgver.src/LICENSE.TXT" \
|
||||
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue