From 084e986bc53b2994abb56d56efbfd351ec15e125 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov Date: Fri, 25 Dec 2015 14:32:12 +0300 Subject: [PATCH] clang: Generate proper names for import/static libraries. --- ...-generate-proper-library-names-mingw.patch | 22 +++++++++++++++++++ .../0018-mingw-enable-static-libclang.patch | 11 ++++++++++ mingw-w64-clang/PKGBUILD | 10 ++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 mingw-w64-clang/0003-generate-proper-library-names-mingw.patch create mode 100644 mingw-w64-clang/0018-mingw-enable-static-libclang.patch diff --git a/mingw-w64-clang/0003-generate-proper-library-names-mingw.patch b/mingw-w64-clang/0003-generate-proper-library-names-mingw.patch new file mode 100644 index 0000000000..11015d94e9 --- /dev/null +++ b/mingw-w64-clang/0003-generate-proper-library-names-mingw.patch @@ -0,0 +1,22 @@ +--- a/cmake/modules/AddLLVM.cmake 2015-12-25 11:45:24.447038200 +0300 ++++ b/cmake/modules/AddLLVM.cmake 2015-12-25 12:14:26.848945700 +0300 +@@ -399,10 +399,15 @@ + llvm_update_compile_flags(${name}) + add_link_opts( ${name} ) + if(ARG_OUTPUT_NAME) +- set_target_properties(${name} +- PROPERTIES +- OUTPUT_NAME ${ARG_OUTPUT_NAME} +- ) ++ if(MINGW) ++ string(REGEX REPLACE "^lib([A-Za-z]+)" "\\1" LIB_OUTPUT_NAME ${ARG_OUTPUT_NAME}) ++ set_target_properties(${name} PROPERTIES OUTPUT_NAME ${LIB_OUTPUT_NAME} RUNTIME_OUTPUT_NAME ${ARG_OUTPUT_NAME} ARCHIVE_OUTPUT_NAME ${LIB_OUTPUT_NAME}) ++ else() ++ set_target_properties(${name} ++ PROPERTIES ++ OUTPUT_NAME ${ARG_OUTPUT_NAME} ++ ) ++ endif() + endif() + + if(ARG_MODULE) diff --git a/mingw-w64-clang/0018-mingw-enable-static-libclang.patch b/mingw-w64-clang/0018-mingw-enable-static-libclang.patch new file mode 100644 index 0000000000..d7bbc249f9 --- /dev/null +++ b/mingw-w64-clang/0018-mingw-enable-static-libclang.patch @@ -0,0 +1,11 @@ +--- cfe-3.7.0.src/tools/libclang/CMakeLists.txt.orig 2015-12-25 10:56:22.521432100 +0300 ++++ cfe-3.7.0.src/tools/libclang/CMakeLists.txt 2015-12-25 12:18:32.484593900 +0300 +@@ -74,7 +74,7 @@ + set(ENABLE_SHARED SHARED) + endif() + +-if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND NOT WIN32) ++if((NOT LLVM_ENABLE_PIC OR LIBCLANG_BUILD_STATIC) AND (NOT WIN32 OR MINGW)) + set(ENABLE_STATIC STATIC) + endif() + diff --git a/mingw-w64-clang/PKGBUILD b/mingw-w64-clang/PKGBUILD index 20d44db4c0..99ff666e08 100644 --- a/mingw-w64-clang/PKGBUILD +++ b/mingw-w64-clang/PKGBUILD @@ -14,7 +14,7 @@ pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-llvm" ) pkgver=3.7.0 -pkgrel=8 +pkgrel=9 pkgdesc="LC language family frontend for LLVM (mingw-w64)" arch=('any') url="http://llvm.org" @@ -37,12 +37,14 @@ source=(http://llvm.org/releases/${pkgver}/llvm-${pkgver}.src.tar.xz{,.sig} http://llvm.org/releases/${pkgver}/lld-${pkgver}.src.tar.xz{,.sig} 0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch 0002-use-DESTDIR-on-windows.patch + 0003-generate-proper-library-names-mingw.patch 0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch 0013-mingw-w64-dont-have-dl-library.patch 0014-use-DESTDIR-on-windows.patch 0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch 0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch 0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch + 0018-mingw-enable-static-libclang.patch 0031-COFF-add-the-mingw-alias-for-ImageBase.patch 0032-PECOFF-add-the-mingw-alias-for-ImageBase.patch 0033-PECOFF-add-searchLibrary-function-with-sysroot-suppo.patch @@ -75,12 +77,14 @@ sha256sums=('ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153' 'SKIP' '0804146b32138d55c611336cc81e1783c29a8fab0fe62f248ba1ad7acc711c4d' 'bf22d86c0546b80cd7212b7e7c3e1b628f00ab3aa3b9cf73ad338bf628f42597' + '6a95ed671876a6de04799d15bf7485d628016bb4a95a6764217ad452d8eed0d8' '13a95a61e9c1c44c18a69947734e07515332a549446394f48b86b52511d221de' '8f35b80eca6c18df020b176eee4eb95901c31e3e640848a6d606983aca15a3af' '962b4de1afa781ee171f71211518c58f6a3531d7fcca5ec458e39703b0fb9af7' 'f7bc109b07b5256a068dbe55097c24b46307aea442bec884d8ba455dc3ad18fd' '59e7afa5e74d186ad596c9a7625d6022fde0679faea9d1fd516fe0a622dbc01a' '47fbe90718742d1a3c0aee919b159241e616738447de3505a48a9f5886e5db96' + '0e45e76ee6d6658de52edb7b508a8bcc9f10ff0b295ff2a4e35577136a40c6a5' '421befbe54123066544f53876c7eb6013ac6684744d8173fb0a3fa9be16d68c7' '96a6fcd81b8d5134b4273a2e413cd268430022533f1bfb44ed73503ee0ae7e87' '08260b1ee54fad7e0015d66b117937701d2ce4ca1814b012250de03a0dae9317' @@ -102,6 +106,7 @@ prepare() { cd "${srcdir}/llvm-${pkgver}.src" patch -p1 -i ${srcdir}/0001-Fix-GetHostTriple-for-mingw-w64-in-msys.patch patch -p1 -i ${srcdir}/0002-use-DESTDIR-on-windows.patch + patch -p1 -i ${srcdir}/0003-generate-proper-library-names-mingw.patch cd "${srcdir}/cfe-${pkgver}.src" patch -p1 -i ${srcdir}/0012-Set-the-x86-arch-name-to-i686-for-mingw-w64.patch @@ -110,6 +115,7 @@ prepare() { patch -p1 -i ${srcdir}/0015-Fix-the-calling-convention-of-Mingw64-long-double-va.patch patch -p1 -i ${srcdir}/0016-Teach-mingw-toolchain-driver-to-properly-emit-static.patch patch -p1 -i ${srcdir}/0017-Fix-PR23472-by-emitting-initialized-variable-and-its.patch + patch -p1 -i ${srcdir}/0018-mingw-enable-static-libclang.patch cd "${srcdir}/lld-${pkgver}.src" # patch -p1 -i "${srcdir}"/0031-COFF-add-the-mingw-alias-for-ImageBase.patch @@ -195,6 +201,7 @@ build() { -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DCMAKE_CXX_FLAGS="-D_GNU_SOURCE -D_LIBCPP_HAS_NO_CONSTEXPR" \ + -DLIBCLANG_BUILD_STATIC=ON \ -DLIBCXX_ENABLE_SHARED=OFF \ -DLIBCXXABI_ENABLE_SHARED=OFF \ ../llvm-${pkgver}.src @@ -219,6 +226,7 @@ package_clang(){ cd build-${CARCH}/tools/clang make -j1 DESTDIR="$pkgdir" rebuild_cache install + cp -f lib/libclang.a ${pkgdir}$MINGW_PREFIX}/lib/ # .. Unmove cd "${srcdir}"