Accepting request 433539 from devel:tools:compiler
- Remove unneeded emacs-nox dependency. - BuildIgnore emacs and vim to avoid cycles. - Split out llvm and lldb into a version-specific package. - Turn this package into a wrapper around the version-specific packages. - Remove patches: * default-to-i586.patch * assume-opensuse.patch * glibc-2.23-libcxx.patch * arm_suse_support.diff * llvm-remove-clang-only-flags.patch * clang-resourcedirs.patch * lldb-add-pthread-dl-libs.patch * llvm-nonvoid-return.patch * glibc-2.24-libcxx.patch * revert-cmake-soname.patch * set-revision.patch * lldb-cmake.patch * D15067.id41365.diff * llvm-fix-find-gcc5-install.patch OBS-URL: https://build.opensuse.org/request/show/433539 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/llvm?expand=0&rev=88
This commit is contained in:
commit
00c234f8a5
3822
D15067.id41365.diff
3822
D15067.id41365.diff
File diff suppressed because it is too large
Load Diff
139
README.packaging
Normal file
139
README.packaging
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
========
|
||||||
|
OVERVIEW
|
||||||
|
|
||||||
|
This package is a dummy package that always depends on the
|
||||||
|
version of corresponding LLVM packages that openSUSE
|
||||||
|
currently supports. This file documents the procedure for
|
||||||
|
updating the various LLVM components.
|
||||||
|
|
||||||
|
There are three major update scenarios that will be addressed
|
||||||
|
here, patch-level updates to the current LLVM version,
|
||||||
|
patch-level updates to older LLVM versions, and major/minor
|
||||||
|
version updates.
|
||||||
|
|
||||||
|
LLVM version numbers come in three levels. For version
|
||||||
|
X.Y.Z, changes to the X level are major updates, changes to
|
||||||
|
the Y level are minor updates, and changes to the Z level
|
||||||
|
are patch-level updates. Library .so numbers are based on
|
||||||
|
the major and minor version, for example libllvm.so.X.Y.
|
||||||
|
Patch-level updates do not update the version number of
|
||||||
|
libraries. For this reason, only changes to major and minor
|
||||||
|
version numbers get a new llvm package.
|
||||||
|
|
||||||
|
There are up to three packages that need to be handled in a
|
||||||
|
given update. This package, the base "llvm" package, the
|
||||||
|
current "llvmX_Y" package (X and Y are the major and minor
|
||||||
|
version numbers, respectively), and the next "llvmX_Y"
|
||||||
|
package if the major or minor version has been changed.
|
||||||
|
|
||||||
|
NOTE: This package should always have the same "License"
|
||||||
|
tag as the currently-supported version of the llvmX_Y
|
||||||
|
package.
|
||||||
|
|
||||||
|
===========================================
|
||||||
|
PATCH-LEVEL UPDATES TO CURRENT LLVM VERSION
|
||||||
|
|
||||||
|
For patch level updates, this package (llvm) and the current
|
||||||
|
llvmX_Y package need to be updated.
|
||||||
|
|
||||||
|
1. llvmX_Y package:
|
||||||
|
1. Add the new sources to the package and delete the old
|
||||||
|
ones
|
||||||
|
2. Update the "Version" tag in llvmX_Y.spec and
|
||||||
|
lldbX_Y.spec to match the new sources.
|
||||||
|
3. Update the "_revsn" tag in llvmX_Y.spec and
|
||||||
|
lldbX_Y.spec to match the revision number of the
|
||||||
|
tag. This can be found on
|
||||||
|
http://lists.llvm.org/pipermail/llvm-branch-commits
|
||||||
|
and should have like "[llvm-tag]" and
|
||||||
|
"Creating release candidate final" in the subject
|
||||||
|
line. You want to find the one for the current LLVM
|
||||||
|
release.
|
||||||
|
4. Update the "_relver" tag in llvmX_Y.spec to match
|
||||||
|
the "Version" tag.
|
||||||
|
5. Confirm everything builds successfully and there are
|
||||||
|
no new rpmlint issues.
|
||||||
|
2. llvm package:
|
||||||
|
1. Update the "Version" tag to match the new llvmX_Y
|
||||||
|
version.
|
||||||
|
|
||||||
|
========================================
|
||||||
|
PATCH-LEVEL UPDATES TO OLD LLVM VERSIONS
|
||||||
|
|
||||||
|
For patch-level updates to versions of LLVM before the
|
||||||
|
current version, only the corresponding llvmX_Y package
|
||||||
|
needs to be updated.
|
||||||
|
|
||||||
|
1. llvmX_Y package:
|
||||||
|
1. Add the new sources to the package and delete the old
|
||||||
|
ones
|
||||||
|
2. Update the "Version" tag in llvmX_Y.spec and
|
||||||
|
lldbX_Y.spec to match the new sources.
|
||||||
|
3. Update the "_revsn" tag in llvmX_Y.spec and
|
||||||
|
lldbX_Y.spec to match the revision number of the
|
||||||
|
tag. This can be found on
|
||||||
|
http://lists.llvm.org/pipermail/llvm-branch-commits
|
||||||
|
and should have like "[llvm-tag]" and
|
||||||
|
"Creating release candidate final" in the subject
|
||||||
|
line. You want to find the one for the current LLVM
|
||||||
|
release.
|
||||||
|
4. Update the "_relver" tag in llvmX_Y.spec to match
|
||||||
|
the "Version" tag.
|
||||||
|
5. Confirm everything builds successfully and there are
|
||||||
|
no new rpmlint issues.
|
||||||
|
|
||||||
|
|
||||||
|
===============================
|
||||||
|
MAJOR AND MINOR VERSION UPDATES
|
||||||
|
|
||||||
|
For updates that change the major or minor version number,
|
||||||
|
this package (llvm) needs to be updated, a new llvmX_Y
|
||||||
|
package needs to be created, and the old llvmX_Y package
|
||||||
|
needs to be modified.
|
||||||
|
|
||||||
|
1. New llvmX_Y package:
|
||||||
|
1. Copy (do not link) the old llvmX_Y to the new
|
||||||
|
major/minor version number.
|
||||||
|
2. Rename the .spec, .changes, and rpmlintrc files in the
|
||||||
|
new llvmX_Y package to the new major/minor version
|
||||||
|
number
|
||||||
|
3. Rename the base llvm and lldb package in their
|
||||||
|
respective .spec files to match the new package name.
|
||||||
|
4. Change the "_sonum" tag in llvmX_Y.spec and
|
||||||
|
lldbX_Y.spec to match the new major/minor versions.
|
||||||
|
It should be of the form "X" if if the "X" minor
|
||||||
|
version is 0 or "X_Y" if theminor version is greater
|
||||||
|
than 0.
|
||||||
|
5. Change the "_minor" tag in llvmX_Y.spec to match
|
||||||
|
the new major/minor versions. It should be of the
|
||||||
|
form "X.Y".
|
||||||
|
6. Update the "Version", "_revsn", and "_relver" tags
|
||||||
|
as described in PATCH-LEVEL UPDATES above.
|
||||||
|
7. Confirm llvmX_Y.spec builds successfully and there are
|
||||||
|
no new rpmlint issues.
|
||||||
|
8. Check whether the .so number of "libc++.so.W.V" has
|
||||||
|
changed. If so, change "_socxx" tag to match.
|
||||||
|
It should be of the form "W" if the "V" value is 0
|
||||||
|
or "W_V" if the "V" value is greater than 0.
|
||||||
|
9. Confirm everything builds successfully and there are
|
||||||
|
no new rpmlint issues.
|
||||||
|
2. Old llvmX_Y package:
|
||||||
|
1. If the .so number of libc++.so.W.V has not changed,
|
||||||
|
remove the "%if" and %ifarch" tests around
|
||||||
|
%bcond_without/%bcond_with libcxx in llvmX_Y.spec
|
||||||
|
and make it always %bcond_with. If the .so numbers
|
||||||
|
have changed, these can be left-as-is.
|
||||||
|
2. Remove the "%if" and %ifarch" tests around
|
||||||
|
%bcond_without/%bcond_with libomp in llvmX_Y.spec
|
||||||
|
and make it always %bcond_with.
|
||||||
|
3. Change "%bcond_without pyclang" to
|
||||||
|
"%bcond_with pyclang" in llvmX_Y.spec.
|
||||||
|
4. Change BuildRequires "llvm%{_sonum}-gold = %{version}"
|
||||||
|
to "llvm-gold" in lldbX_Y.spec.
|
||||||
|
5. Confirm everything builds successfully and there are
|
||||||
|
no new rpmlint issues.
|
||||||
|
3. llvm package:
|
||||||
|
1. update the "Version" tag to match the new llvmX_Y
|
||||||
|
version.
|
||||||
|
2. Change the "_sonum" tag to match the one in the
|
||||||
|
new "llvmX_Y.spec" and "lldbX_Y.spec" files.
|
32
_constraints
32
_constraints
@ -1,32 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<constraints>
|
|
||||||
<hardware>
|
|
||||||
<disk>
|
|
||||||
<size unit="G">20</size>
|
|
||||||
</disk>
|
|
||||||
<memory>
|
|
||||||
<size unit="M">4000</size>
|
|
||||||
</memory>
|
|
||||||
</hardware>
|
|
||||||
<overwrite>
|
|
||||||
<conditions>
|
|
||||||
<arch>armv6l</arch>
|
|
||||||
<arch>armv7l</arch>
|
|
||||||
</conditions>
|
|
||||||
<hardware>
|
|
||||||
<memory>
|
|
||||||
<size unit="M">768</size>
|
|
||||||
</memory>
|
|
||||||
</hardware>
|
|
||||||
</overwrite>
|
|
||||||
<overwrite>
|
|
||||||
<conditions>
|
|
||||||
<arch>ppc64le</arch>
|
|
||||||
</conditions>
|
|
||||||
<hardware>
|
|
||||||
<memory>
|
|
||||||
<size unit="M">4096</size>
|
|
||||||
</memory>
|
|
||||||
</hardware>
|
|
||||||
</overwrite>
|
|
||||||
</constraints>
|
|
@ -1,24 +0,0 @@
|
|||||||
Index: cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
===================================================================
|
|
||||||
--- cfe-3.8.1.src/lib/Driver/ToolChains.cpp.orig
|
|
||||||
+++ cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
@@ -1418,7 +1418,7 @@ bool Generic_GCC::GCCInstallationDetecto
|
|
||||||
static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
|
|
||||||
static const char *const AArch64Triples[] = {
|
|
||||||
"aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-linux-android",
|
|
||||||
- "aarch64-redhat-linux"};
|
|
||||||
+ "aarch64-redhat-linux", "aarch64-suse-linux"};
|
|
||||||
static const char *const AArch64beLibDirs[] = {"/lib"};
|
|
||||||
static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
|
|
||||||
"aarch64_be-linux-gnu"};
|
|
||||||
@@ -1427,7 +1427,9 @@ bool Generic_GCC::GCCInstallationDetecto
|
|
||||||
static const char *const ARMTriples[] = {"arm-linux-gnueabi",
|
|
||||||
"arm-linux-androideabi"};
|
|
||||||
static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
|
|
||||||
- "armv7hl-redhat-linux-gnueabi"};
|
|
||||||
+ "armv7hl-redhat-linux-gnueabi",
|
|
||||||
+ "armv6hl-suse-linux-gnueabi",
|
|
||||||
+ "armv7hl-suse-linux-gnueabi"};
|
|
||||||
static const char *const ARMebLibDirs[] = {"/lib"};
|
|
||||||
static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
|
|
||||||
"armeb-linux-androideabi"};
|
|
@ -1,21 +0,0 @@
|
|||||||
Index: cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
===================================================================
|
|
||||||
--- cfe-3.8.1.src/lib/Driver/ToolChains.cpp.orig
|
|
||||||
+++ cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
@@ -3422,6 +3422,7 @@ static bool IsUbuntu(enum Distro Distro)
|
|
||||||
}
|
|
||||||
|
|
||||||
static Distro DetectDistro(const Driver &D, llvm::Triple::ArchType Arch) {
|
|
||||||
+#if 0
|
|
||||||
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> File =
|
|
||||||
llvm::MemoryBuffer::getFile("/etc/lsb-release");
|
|
||||||
if (File) {
|
|
||||||
@@ -3498,6 +3499,8 @@ static Distro DetectDistro(const Driver
|
|
||||||
return ArchLinux;
|
|
||||||
|
|
||||||
return UnknownDistro;
|
|
||||||
+#endif
|
|
||||||
+ return OpenSUSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// \brief Get our best guess at the multiarch triple for a target.
|
|
@ -1,4 +1,5 @@
|
|||||||
libLLVM3_8
|
|
||||||
libclang3_8
|
|
||||||
llvm-devel
|
llvm-devel
|
||||||
|
lldb-devel
|
||||||
clang-devel
|
clang-devel
|
||||||
|
llvm-LTO-devel
|
||||||
|
llvm-gold
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf
|
|
||||||
size 9605548
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:5656cc4d88e364f4d8ec30a16f051296a0ae10b15ce67e439b4c4caf3a6a9d2a
|
|
||||||
size 671716
|
|
@ -1,13 +0,0 @@
|
|||||||
Index: cfe-3.8.1.src/lib/Driver/Driver.cpp
|
|
||||||
===================================================================
|
|
||||||
--- cfe-3.8.1.src/lib/Driver/Driver.cpp
|
|
||||||
+++ cfe-3.8.1.src/lib/Driver/Driver.cpp
|
|
||||||
@@ -64,7 +64,7 @@ Driver::Driver(StringRef ClangExecutable
|
|
||||||
|
|
||||||
// Compute the path to the resource directory.
|
|
||||||
StringRef ClangResourceDir(CLANG_RESOURCE_DIR);
|
|
||||||
- SmallString<128> P(Dir);
|
|
||||||
+ SmallString<128> P((Dir != "") ? Dir : "/usr/bin/");
|
|
||||||
if (ClangResourceDir != "") {
|
|
||||||
llvm::sys::path::append(P, ClangResourceDir);
|
|
||||||
} else {
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:664a5c60220de9c290bf2a5b03d902ab731a4f95fe73a00856175ead494ec396
|
|
||||||
size 334768
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:0df011dae14d8700499dfc961602ee0a9572fef926202ade5dcdfe7858411e5c
|
|
||||||
size 1263312
|
|
@ -1,15 +0,0 @@
|
|||||||
Index: cfe-3.8.1.src/lib/Driver/Tools.cpp
|
|
||||||
===================================================================
|
|
||||||
--- cfe-3.8.1.src/lib/Driver/Tools.cpp.orig
|
|
||||||
+++ cfe-3.8.1.src/lib/Driver/Tools.cpp
|
|
||||||
@@ -1680,8 +1680,8 @@ static const char *getX86TargetCPU(const
|
|
||||||
case llvm::Triple::Bitrig:
|
|
||||||
return "i686";
|
|
||||||
default:
|
|
||||||
- // Fallback to p4.
|
|
||||||
- return "pentium4";
|
|
||||||
+ // Fallback to i586.
|
|
||||||
+ return "i586";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
|||||||
Index: libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isinf.pass.cpp
|
|
||||||
===================================================================
|
|
||||||
--- libcxx-3.8.1.src.orig/test/std/numerics/c.math/cmath_isinf.pass.cpp
|
|
||||||
+++ libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isinf.pass.cpp
|
|
||||||
@@ -11,8 +11,6 @@
|
|
||||||
|
|
||||||
// isinf
|
|
||||||
|
|
||||||
-// XFAIL: linux
|
|
||||||
-
|
|
||||||
#include <cmath>
|
|
||||||
#include <type_traits>
|
|
||||||
#include <cassert>
|
|
||||||
@@ -27,4 +25,4 @@ int main()
|
|
||||||
static_assert((std::is_same<decltype(std::isinf(0)), bool>::value), "");
|
|
||||||
static_assert((std::is_same<decltype(std::isinf((long double)0)), bool>::value), "");
|
|
||||||
assert(std::isinf(-1.0) == false);
|
|
||||||
-}
|
|
||||||
\ No newline at end of file
|
|
||||||
+}
|
|
||||||
Index: libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isnan.pass.cpp
|
|
||||||
===================================================================
|
|
||||||
--- libcxx-3.8.1.src.orig/test/std/numerics/c.math/cmath_isnan.pass.cpp
|
|
||||||
+++ libcxx-3.8.1.src/test/std/numerics/c.math/cmath_isnan.pass.cpp
|
|
||||||
@@ -11,8 +11,6 @@
|
|
||||||
|
|
||||||
// isnan
|
|
||||||
|
|
||||||
-// XFAIL: linux
|
|
||||||
-
|
|
||||||
#include <cmath>
|
|
||||||
#include <type_traits>
|
|
||||||
#include <cassert>
|
|
||||||
Index: libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
|
|
||||||
===================================================================
|
|
||||||
--- libcxx-3.8.1.src.orig/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
|
|
||||||
+++ libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp
|
|
||||||
@@ -11,8 +11,6 @@
|
|
||||||
|
|
||||||
// isinf
|
|
||||||
|
|
||||||
-// XFAIL: linux
|
|
||||||
-
|
|
||||||
#include <math.h>
|
|
||||||
#include <type_traits>
|
|
||||||
#include <cassert>
|
|
||||||
Index: libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp
|
|
||||||
===================================================================
|
|
||||||
--- libcxx-3.8.1.src.orig/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp
|
|
||||||
+++ libcxx-3.8.1.src/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp
|
|
||||||
@@ -11,8 +11,6 @@
|
|
||||||
|
|
||||||
// isnan
|
|
||||||
|
|
||||||
-// XFAIL: linux
|
|
||||||
-
|
|
||||||
#include <math.h>
|
|
||||||
#include <type_traits>
|
|
||||||
#include <cassert>
|
|
@ -1,22 +0,0 @@
|
|||||||
Index: libcxx-3.8.1.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
|
|
||||||
===================================================================
|
|
||||||
--- libcxx-3.8.1.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp.orig
|
|
||||||
+++ libcxx-3.8.1.src/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp
|
|
||||||
@@ -113,7 +113,7 @@ int main()
|
|
||||||
|
|
||||||
{
|
|
||||||
Fnf f(LOCALE_ru_RU_UTF_8, 1);
|
|
||||||
- assert(f.curr_symbol() == " \xD1\x80\xD1\x83\xD0\xB1");
|
|
||||||
+ assert(f.curr_symbol() == " \xD1\x80\xD1\x83\xD0\xB1" || f.curr_symbol() == " \u20bd");
|
|
||||||
}
|
|
||||||
{
|
|
||||||
Fnt f(LOCALE_ru_RU_UTF_8, 1);
|
|
||||||
@@ -121,7 +121,7 @@ int main()
|
|
||||||
}
|
|
||||||
{
|
|
||||||
Fwf f(LOCALE_ru_RU_UTF_8, 1);
|
|
||||||
- assert(f.curr_symbol() == L" \x440\x443\x431");
|
|
||||||
+ assert(f.curr_symbol() == L" \x440\x443\x431" || f.curr_symbol() == L" \u20bd");
|
|
||||||
}
|
|
||||||
{
|
|
||||||
Fwt f(LOCALE_ru_RU_UTF_8, 1);
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:77d7f3784c88096d785bd705fa1bab7031ce184cd91ba8a7008abf55264eeecc
|
|
||||||
size 1074164
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:e1b55f7be3fad746bdd3025f43e42d429fb6194aac5919c2be17c4a06314dae1
|
|
||||||
size 508392
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:349148116a47e39dcb5d5042f10d8a6357d2c865034563283ca512f81cdce8a3
|
|
||||||
size 10928220
|
|
@ -1,20 +0,0 @@
|
|||||||
Index: lldb-3.8.1.src/cmake/modules/LLDBConfig.cmake
|
|
||||||
===================================================================
|
|
||||||
--- lldb-3.8.1.src.orig/cmake/modules/LLDBConfig.cmake
|
|
||||||
+++ lldb-3.8.1.src/cmake/modules/LLDBConfig.cmake
|
|
||||||
@@ -323,13 +323,9 @@ else()
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-if (HAVE_LIBPTHREAD)
|
|
||||||
- list(APPEND system_libs pthread)
|
|
||||||
-endif(HAVE_LIBPTHREAD)
|
|
||||||
+list(APPEND system_libs pthread)
|
|
||||||
|
|
||||||
-if (HAVE_LIBDL)
|
|
||||||
- list(APPEND system_libs ${CMAKE_DL_LIBS})
|
|
||||||
-endif()
|
|
||||||
+list(APPEND system_libs ${CMAKE_DL_LIBS})
|
|
||||||
|
|
||||||
if(LLDB_REQUIRES_EH)
|
|
||||||
set(LLDB_REQUIRES_RTTI ON)
|
|
@ -1,31 +0,0 @@
|
|||||||
Index: lldb-3.8.1.src/source/lldb.cpp
|
|
||||||
===================================================================
|
|
||||||
--- lldb-3.8.1.src.orig/source/lldb.cpp
|
|
||||||
+++ lldb-3.8.1.src/source/lldb.cpp
|
|
||||||
@@ -21,11 +21,7 @@ extern "C" const unsigned char liblldb_c
|
|
||||||
static const char *
|
|
||||||
GetLLDBRevision()
|
|
||||||
{
|
|
||||||
-#ifdef LLDB_REVISION
|
|
||||||
return LLDB_REVISION;
|
|
||||||
-#else
|
|
||||||
- return NULL;
|
|
||||||
-#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *
|
|
||||||
Index: lldb-3.8.1.src/source/Core/IOHandler.cpp
|
|
||||||
===================================================================
|
|
||||||
--- lldb-3.8.1.src.orig/source/Core/IOHandler.cpp
|
|
||||||
+++ lldb-3.8.1.src/source/Core/IOHandler.cpp
|
|
||||||
@@ -9,8 +9,8 @@
|
|
||||||
|
|
||||||
// C Includes
|
|
||||||
#ifndef LLDB_DISABLE_CURSES
|
|
||||||
-#include <curses.h>
|
|
||||||
-#include <panel.h>
|
|
||||||
+#include <ncurses/curses.h>
|
|
||||||
+#include <ncurses/panel.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// C++ Includes
|
|
129
lldb.changes
129
lldb.changes
@ -1,129 +0,0 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Wed Sep 7 10:01:47 UTC 2016 - tchvatal@suse.com
|
|
||||||
|
|
||||||
- Sort out with spec-cleaner
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Thu Aug 31 20:36:58 UTC 2016 - toddrme2178@gmail.com
|
|
||||||
|
|
||||||
- Update to llvm 3.8.1
|
|
||||||
* See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and
|
|
||||||
http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html
|
|
||||||
- Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8)
|
|
||||||
- Change versioning of liblldb3_8 to liblldb-3_8 and use a variable
|
|
||||||
to control the name instead of hard-coding it.
|
|
||||||
- Use bcond_with and bcond_without to enable/disable build options
|
|
||||||
instead of hard-coding them.
|
|
||||||
- Put buildrequires as requires in -devel packages to avoid linker errors
|
|
||||||
when building packages against the -devel packages.
|
|
||||||
- Add ffi support (disabled by default).
|
|
||||||
- Add oprofile support (disabled by default).
|
|
||||||
- Add valgrind support (disabled by default).
|
|
||||||
- Link cmake files to the normal cmake file directory to allow autodetection
|
|
||||||
of cmake interfaces.
|
|
||||||
- Remove unused lldb components from main spec file.
|
|
||||||
- Split llvm python bindings into own subpackage.
|
|
||||||
- Split emacs plugin into own subpackage
|
|
||||||
- Move additional vim plugins into vim plugins package
|
|
||||||
- Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages
|
|
||||||
- Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since
|
|
||||||
they aren't architecture-specific.
|
|
||||||
- Make packages besides llvm, llvm-clang, and the shared libraries conflict
|
|
||||||
with other versions. This will be important when multiple LLVM versions
|
|
||||||
are supported.
|
|
||||||
- Various spec file cleanups
|
|
||||||
- Rebase patches:
|
|
||||||
* arm_suse_support.diff
|
|
||||||
* assume-opensuse.patch
|
|
||||||
* clang-resourcedirs.patch
|
|
||||||
* default-to-i586.patch
|
|
||||||
* glibc-2.23-libcxx.patch
|
|
||||||
* glibc-2.24-libcxx.patch
|
|
||||||
* lldb-add-pthread-dl-libs.patch
|
|
||||||
* lldb-cmake.patch
|
|
||||||
* llvm-fix-find-gcc5-install.patch
|
|
||||||
* llvm-nonvoid-return.patch
|
|
||||||
* llvm-remove-clang-only-flags.patch
|
|
||||||
* revert-cmake-soname.patch
|
|
||||||
* set-revision.patch
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Wed Aug 31 10:24:31 UTC 2016 - tchvatal@suse.com
|
|
||||||
|
|
||||||
- Convert to use %cmake macros
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Thu Aug 25 16:42:02 UTC 2016 - ronisbr@gmail.com
|
|
||||||
|
|
||||||
- Add a symlink of liblldb file to %{python_sitearch}/_lldb.so.
|
|
||||||
Otherwise, `import lldb` will fail with the message:
|
|
||||||
|
|
||||||
ImportError: No module named _lldb
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Fri May 20 07:44:49 UTC 2016 - jengelh@inai.de
|
|
||||||
|
|
||||||
- Set RPM group, drop marketing words from summary in lieu of
|
|
||||||
something useful. Implement shared library guideline.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Sun May 15 17:13:24 UTC 2016 - ronisbr@gmail.com
|
|
||||||
|
|
||||||
- Update to version 3.8.0
|
|
||||||
* No upstream changelog.
|
|
||||||
- Refresh `lldb-cmake.patch`.
|
|
||||||
- Add patch `D15067.id41365.diff` from upstream review system to
|
|
||||||
fix out of tree build (http://reviews.llvm.org/D15067).
|
|
||||||
- Add patch `lldb-add-pthread-dl-libs.patch` to force CMake to add
|
|
||||||
the options `-lpthread` and `-ldl` to the end of linking command.
|
|
||||||
Otherwise, LLDB linking will fail with these errors:
|
|
||||||
|
|
||||||
undefined reference to symbol 'pthread_setname_np@@GLIBC_2.12'
|
|
||||||
undefined reference to symbol 'dladdr@@GLIBC_2.2.5'
|
|
||||||
|
|
||||||
- Run spec-cleaner.
|
|
||||||
- Add `fdupes` to remove duplicated files.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Wed Sep 2 08:23:08 UTC 2015 - idonmez@suse.com
|
|
||||||
|
|
||||||
- Update to version 3.7.0
|
|
||||||
* No changelog upstream
|
|
||||||
- Refresh lldb-cmake.patch
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Mon Jun 22 09:45:33 UTC 2015 - idonmez@suse.com
|
|
||||||
|
|
||||||
- Update lldb-cmake.patch to fix compilation on Factory
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Mon May 25 13:59:56 UTC 2015 - idonmez@suse.com
|
|
||||||
|
|
||||||
- Update to version 3.6.1
|
|
||||||
* No changelog upstream
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Mon Mar 2 10:14:22 UTC 2015 - idonmez@suse.com
|
|
||||||
|
|
||||||
- Update to version 3.6.0
|
|
||||||
* No changelog upstream
|
|
||||||
- Merge lldb-underlink.patch into lldb-cmake.patch
|
|
||||||
- Swich to static library build, shared build is not supported
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Wed Sep 17 13:26:34 UTC 2014 - idonmez@suse.com
|
|
||||||
|
|
||||||
- Add BuildRequires on ncurses-devel
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Sat Sep 6 14:59:58 UTC 2014 - idonmez@suse.com
|
|
||||||
|
|
||||||
- Update to version 3.5.0
|
|
||||||
* No changelog upstream
|
|
||||||
- Add lldb-underlink.patch to link to LLVMSupport
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Mon Mar 17 09:02:51 UTC 2014 - idonmez@suse.com
|
|
||||||
|
|
||||||
- First release on build.opensuse.org
|
|
||||||
|
|
177
lldb.spec
177
lldb.spec
@ -1,177 +0,0 @@
|
|||||||
#
|
|
||||||
# spec file for package lldb
|
|
||||||
#
|
|
||||||
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
||||||
#
|
|
||||||
# All modifications and additions to the file contributed by third parties
|
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
|
||||||
# upon. The license for this file, and modifications and additions to the
|
|
||||||
# file, is the same license as for the pristine package itself (unless the
|
|
||||||
# license for the pristine package is not an Open Source License, in which
|
|
||||||
# case the license is the MIT License). An "Open Source License" is a
|
|
||||||
# license that conforms to the Open Source Definition (Version 1.9)
|
|
||||||
# published by the Open Source Initiative.
|
|
||||||
|
|
||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
%define _sonum 3_8
|
|
||||||
%define _revsn 273405
|
|
||||||
Name: lldb
|
|
||||||
Version: 3.8.1
|
|
||||||
Release: 0
|
|
||||||
Summary: Software debugger built using LLVM libraries
|
|
||||||
License: NCSA
|
|
||||||
Group: Development/Tools/Debuggers
|
|
||||||
Url: http://lldb.llvm.org
|
|
||||||
Source: http://llvm.org/releases/%{version}/lldb-%{version}.src.tar.xz
|
|
||||||
# PATCH-FIX-OPENSUSE lldb-cmake.patch -- Let us set LLDB_REVISION and fix ncurses include path.
|
|
||||||
Patch0: lldb-cmake.patch
|
|
||||||
# PATCH-FIX-UPSTREAM D15067.id41365.diff -- Patch from upstream review system to fix out of tree build (http://reviews.llvm.org/D15067)
|
|
||||||
Patch1: D15067.id41365.diff
|
|
||||||
# PATCH-FIX-OPENSUSE lldb-add-pthread-dl-libs.patch -- Add -lpthread and -ldl options to the end of LDFLAGS to fix linking problems.
|
|
||||||
Patch2: lldb-add-pthread-dl-libs.patch
|
|
||||||
BuildRequires: cmake
|
|
||||||
BuildRequires: fdupes
|
|
||||||
BuildRequires: llvm-gold
|
|
||||||
BuildRequires: ncurses-devel
|
|
||||||
BuildRequires: ninja
|
|
||||||
BuildRequires: pkgconfig
|
|
||||||
BuildRequires: swig
|
|
||||||
BuildRequires: cmake(Clang) = %{version}
|
|
||||||
BuildRequires: cmake(LLVM) = %{version}
|
|
||||||
BuildRequires: pkgconfig(libedit)
|
|
||||||
BuildRequires: pkgconfig(libffi)
|
|
||||||
BuildRequires: pkgconfig(libxml-2.0)
|
|
||||||
BuildRequires: pkgconfig(python2)
|
|
||||||
BuildRequires: pkgconfig(zlib)
|
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: liblldb%{_sonum} = %{version}
|
|
||||||
Requires: python
|
|
||||||
Requires: python-six
|
|
||||||
ExclusiveArch: arm x86_64
|
|
||||||
|
|
||||||
%description
|
|
||||||
LLDB is a next generation, high-performance debugger. It is built as a set
|
|
||||||
of reusable components which highly leverage existing libraries in the
|
|
||||||
larger LLVM Project, such as the Clang expression parser and LLVM
|
|
||||||
disassembler.
|
|
||||||
|
|
||||||
%package -n liblldb%{_sonum}
|
|
||||||
Summary: LLDB software debugger runtime library
|
|
||||||
Group: System/Libraries
|
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: libLLVM%{_sonum} = %{version}
|
|
||||||
Requires: libclang%{_sonum} = %{version}
|
|
||||||
|
|
||||||
%description -n liblldb%{_sonum}
|
|
||||||
This subpackage contains the main LLDB component.
|
|
||||||
|
|
||||||
%package devel
|
|
||||||
Summary: Development files for LLDB
|
|
||||||
Group: Development/Languages/Other
|
|
||||||
Requires: cmake
|
|
||||||
Requires: liblldb%{_sonum} = %{version}
|
|
||||||
Requires: ncurses-devel
|
|
||||||
Requires: swig
|
|
||||||
Requires: cmake(Clang) = %{version}
|
|
||||||
Requires: cmake(LLVM) = %{version}
|
|
||||||
Requires: pkgconfig(libedit)
|
|
||||||
Requires: pkgconfig(libffi)
|
|
||||||
Requires: pkgconfig(libxml-2.0)
|
|
||||||
Requires: pkgconfig(zlib)
|
|
||||||
|
|
||||||
%description devel
|
|
||||||
This package contains the development files for LLDB.
|
|
||||||
|
|
||||||
%package -n python-lldb
|
|
||||||
Summary: Python bindings for liblldb
|
|
||||||
Group: Development/Languages/Python
|
|
||||||
Requires: liblldb%{_sonum} = %{version}
|
|
||||||
Requires: python
|
|
||||||
|
|
||||||
%description -n python-lldb
|
|
||||||
This package contains the Python bindings to clang (C language) frontend for LLVM.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q -n %{name}-%{version}.src
|
|
||||||
%patch0 -p1
|
|
||||||
%patch1
|
|
||||||
%patch2 -p1
|
|
||||||
|
|
||||||
# Set LLDB revision
|
|
||||||
sed -i s,LLDB_REVISION,\"%{_revsn}\",g source/lldb.cpp #"
|
|
||||||
|
|
||||||
%build
|
|
||||||
%define __builder ninja
|
|
||||||
%cmake \
|
|
||||||
-DCMAKE_C_COMPILER=clang \
|
|
||||||
-DCMAKE_CXX_COMPILER=clang++ \
|
|
||||||
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
|
||||||
-DBUILD_SHARED_LIBS=OFF \
|
|
||||||
%if "%{_lib}" == "lib64"
|
|
||||||
-DLLVM_LIBDIR_SUFFIX=64 \
|
|
||||||
%endif
|
|
||||||
-DLLVM_RUNTIME_OUTPUT_INTDIR=$PWD/bin \
|
|
||||||
-DLLVM_LIBRARY_OUTPUT_INTDIR=$PWD/%{_lib} \
|
|
||||||
-DPYTHON_VERSION_MAJOR=%{py_major} \
|
|
||||||
-DPYTHON_VERSION_MINOR=%{py_minor}
|
|
||||||
%make_jobs
|
|
||||||
|
|
||||||
%install
|
|
||||||
%cmake_install
|
|
||||||
|
|
||||||
# Python: fix binary libraries location.
|
|
||||||
rm %{buildroot}%{python_sitearch}/lldb/_lldb.so
|
|
||||||
liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so))
|
|
||||||
ln -vsf "../../../${liblldb}" %{buildroot}%{python_sitearch}/lldb/_lldb.so
|
|
||||||
ln -vsf "../../${liblldb}" %{buildroot}%{python_sitearch}/_lldb.so
|
|
||||||
|
|
||||||
# Remove bundled six.py.
|
|
||||||
rm -f %{buildroot}%{python_sitearch}/six.*
|
|
||||||
|
|
||||||
# Remove static libraries.
|
|
||||||
rm %{buildroot}%{_libdir}/liblldb*.a
|
|
||||||
|
|
||||||
# Fix duplicated files.
|
|
||||||
%fdupes %{_includedir}/%{name}/Host/
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_libdir}/cmake/lldb/
|
|
||||||
cp cmake/modules/*.cmake %{buildroot}%{_libdir}/cmake/lldb/
|
|
||||||
|
|
||||||
# Make consistent with the rest of the executables
|
|
||||||
mv %{buildroot}%{_bindir}/lldb-argdumper %{buildroot}%{_bindir}/lldb-argdumper-%{version}
|
|
||||||
ln -s %{_bindir}/lldb-argdumper-%{version} %{buildroot}%{_bindir}/lldb-argdumper
|
|
||||||
|
|
||||||
%post -n liblldb%{_sonum} -p /sbin/ldconfig
|
|
||||||
%postun -n liblldb%{_sonum} -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{_bindir}/lldb
|
|
||||||
%{_bindir}/lldb-argdumper
|
|
||||||
%{_bindir}/lldb-mi
|
|
||||||
%{_bindir}/lldb-server
|
|
||||||
%{_bindir}/lldb-%{version}
|
|
||||||
%{_bindir}/lldb-argdumper-%{version}
|
|
||||||
%{_bindir}/lldb-mi-%{version}
|
|
||||||
%{_bindir}/lldb-server-%{version}
|
|
||||||
|
|
||||||
%files -n python-lldb
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{python_sitearch}/_lldb.so
|
|
||||||
%{python_sitearch}/lldb/
|
|
||||||
%{python_sitearch}/readline.so
|
|
||||||
|
|
||||||
%files -n liblldb%{_sonum}
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/liblldb.so.*
|
|
||||||
|
|
||||||
%files devel
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{_libdir}/cmake/lldb/
|
|
||||||
%{_includedir}/lldb/
|
|
||||||
%{_libdir}/liblldb.so
|
|
||||||
|
|
||||||
%changelog
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9
|
|
||||||
size 16551472
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:1d7d51c4bc0946e3392fe1c71c0afe1be6b120f4423a1c10f3b1210f10853119
|
|
||||||
size 1664880
|
|
@ -1,14 +0,0 @@
|
|||||||
Index: cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
===================================================================
|
|
||||||
--- cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
+++ cfe-3.8.1.src/lib/Driver/ToolChains.cpp
|
|
||||||
@@ -1091,7 +1091,8 @@ Generic_GCC::GCCVersion Linux::GCCVersio
|
|
||||||
if (First.first.getAsInteger(10, GoodVersion.Major) || GoodVersion.Major < 0)
|
|
||||||
return BadVersion;
|
|
||||||
GoodVersion.MajorStr = First.first.str();
|
|
||||||
- if (Second.first.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0)
|
|
||||||
+ if (!Second.first.str().empty() &&
|
|
||||||
+ (Second.first.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0))
|
|
||||||
return BadVersion;
|
|
||||||
GoodVersion.MinorStr = Second.first.str();
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
Index: llvm-3.8.1.src/openmp-3.8.1.src/runtime/src/kmp_dispatch.cpp
|
|
||||||
===================================================================
|
|
||||||
--- llvm-3.8.1.src.orig/openmp-3.8.1.src/runtime/src/kmp_dispatch.cpp
|
|
||||||
+++ llvm-3.8.1.src/openmp-3.8.1.src/runtime/src/kmp_dispatch.cpp
|
|
||||||
@@ -254,7 +254,7 @@ test_then_inc< kmp_int64 >( volatile kmp
|
|
||||||
// compare_and_swap template (general template should NOT be used)
|
|
||||||
template< typename T >
|
|
||||||
static __forceinline kmp_int32
|
|
||||||
-compare_and_swap( volatile T *p, T c, T s ) { KMP_ASSERT(0); };
|
|
||||||
+compare_and_swap( volatile T *p, T c, T s );
|
|
||||||
|
|
||||||
template<>
|
|
||||||
__forceinline kmp_int32
|
|
@ -1,36 +0,0 @@
|
|||||||
Index: llvm-3.8.1.src/cmake/modules/HandleLLVMOptions.cmake
|
|
||||||
===================================================================
|
|
||||||
--- llvm-3.8.1.src.orig/cmake/modules/HandleLLVMOptions.cmake
|
|
||||||
+++ llvm-3.8.1.src/cmake/modules/HandleLLVMOptions.cmake
|
|
||||||
@@ -417,7 +417,6 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE
|
|
||||||
|
|
||||||
append_if(LLVM_ENABLE_PEDANTIC "-pedantic" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
|
||||||
append_if(LLVM_ENABLE_PEDANTIC "-Wno-long-long" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
|
||||||
- add_flag_if_supported("-Wcovered-switch-default" COVERED_SWITCH_DEFAULT_FLAG)
|
|
||||||
append_if(USE_NO_UNINITIALIZED "-Wno-uninitialized" CMAKE_CXX_FLAGS)
|
|
||||||
append_if(USE_NO_MAYBE_UNINITIALIZED "-Wno-maybe-uninitialized" CMAKE_CXX_FLAGS)
|
|
||||||
|
|
||||||
@@ -454,9 +453,6 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE
|
|
||||||
endif()
|
|
||||||
endif (LLVM_ENABLE_WARNINGS)
|
|
||||||
append_if(LLVM_ENABLE_WERROR "-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
|
||||||
- if (NOT LLVM_ENABLE_TIMESTAMPS)
|
|
||||||
- add_flag_if_supported("-Werror=date-time" WERROR_DATE_TIME)
|
|
||||||
- endif ()
|
|
||||||
if (LLVM_ENABLE_CXX1Y)
|
|
||||||
check_cxx_compiler_flag("-std=c++1y" CXX_SUPPORTS_CXX1Y)
|
|
||||||
append_if(CXX_SUPPORTS_CXX1Y "-std=c++1y" CMAKE_CXX_FLAGS)
|
|
||||||
@@ -578,13 +574,6 @@ add_llvm_definitions( -D__STDC_CONSTANT_
|
|
||||||
add_llvm_definitions( -D__STDC_FORMAT_MACROS )
|
|
||||||
add_llvm_definitions( -D__STDC_LIMIT_MACROS )
|
|
||||||
|
|
||||||
-# clang doesn't print colored diagnostics when invoked from Ninja
|
|
||||||
-if (UNIX AND
|
|
||||||
- CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
|
|
||||||
- CMAKE_GENERATOR STREQUAL "Ninja")
|
|
||||||
- append("-fcolor-diagnostics" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
|
|
||||||
-endif()
|
|
||||||
-
|
|
||||||
# Add flags for add_dead_strip().
|
|
||||||
# FIXME: With MSVS, consider compiling with /Gy and linking with /OPT:REF?
|
|
||||||
# But MinSizeRel seems to add that automatically, so maybe disable these
|
|
@ -1,9 +0,0 @@
|
|||||||
# This line is mandatory to access the configuration functions
|
|
||||||
from Config import *
|
|
||||||
|
|
||||||
addFilter("devel-file-in-non-devel-package .*/clang/.*/include/.*")
|
|
||||||
addFilter("devel-file-in-non-devel-package .*/clang/.*/lib/.*")
|
|
||||||
addFilter("devel-file-in-non-devel-package .*/usr/include/.*")
|
|
||||||
|
|
||||||
addFilter("devel-file-in-non-devel-package .*/lib.*/*.a")
|
|
||||||
addFilter("devel-file-in-non-devel-package .*/lib.*/*.so")
|
|
32
llvm.changes
32
llvm.changes
@ -1,3 +1,35 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Oct 6 07:05:41 UTC 2016 - idonmez@suse.com
|
||||||
|
|
||||||
|
- Remove unneeded emacs-nox dependency.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 5 08:14:31 UTC 2016 - idonmez@suse.com
|
||||||
|
|
||||||
|
- BuildIgnore emacs and vim to avoid cycles.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 9 18:26:41 UTC 2016 - toddrme2178@gmail.com
|
||||||
|
|
||||||
|
- Split out llvm and lldb into a version-specific package.
|
||||||
|
- Turn this package into a wrapper around the version-specific
|
||||||
|
packages.
|
||||||
|
- Remove patches:
|
||||||
|
* default-to-i586.patch
|
||||||
|
* assume-opensuse.patch
|
||||||
|
* glibc-2.23-libcxx.patch
|
||||||
|
* arm_suse_support.diff
|
||||||
|
* llvm-remove-clang-only-flags.patch
|
||||||
|
* clang-resourcedirs.patch
|
||||||
|
* lldb-add-pthread-dl-libs.patch
|
||||||
|
* llvm-nonvoid-return.patch
|
||||||
|
* glibc-2.24-libcxx.patch
|
||||||
|
* revert-cmake-soname.patch
|
||||||
|
* set-revision.patch
|
||||||
|
* lldb-cmake.patch
|
||||||
|
* D15067.id41365.diff
|
||||||
|
* llvm-fix-find-gcc5-install.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Sep 7 10:05:32 UTC 2016 - tchvatal@suse.com
|
Wed Sep 7 10:05:32 UTC 2016 - tchvatal@suse.com
|
||||||
|
|
||||||
|
703
llvm.spec
703
llvm.spec
@ -16,24 +16,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define _relver 3.8.1
|
|
||||||
%define _minor 3.8
|
|
||||||
%define _sonum 3_8
|
%define _sonum 3_8
|
||||||
%define _socxx 1
|
|
||||||
%define _revsn 273405
|
|
||||||
%ifarch x86_64
|
|
||||||
%bcond_without libcxx
|
|
||||||
%else
|
|
||||||
%bcond_with libcxx
|
|
||||||
%endif
|
|
||||||
%ifarch ppc64 ppc64le %{ix86} x86_64
|
|
||||||
%bcond_without openmp
|
|
||||||
%else
|
|
||||||
%bcond_with openmp
|
|
||||||
%endif
|
|
||||||
%bcond_with ffi
|
|
||||||
%bcond_with oprofile
|
|
||||||
%bcond_with valgrind
|
|
||||||
Name: llvm
|
Name: llvm
|
||||||
Version: 3.8.1
|
Version: 3.8.1
|
||||||
Release: 0
|
Release: 0
|
||||||
@ -41,64 +24,28 @@ Summary: Low Level Virtual Machine
|
|||||||
License: NCSA
|
License: NCSA
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
Url: http://www.llvm.org
|
Url: http://www.llvm.org
|
||||||
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz
|
# This file documents the process for updating llvm
|
||||||
Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz
|
Source0: README.packaging
|
||||||
Source2: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz
|
|
||||||
Source3: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz
|
|
||||||
Source4: http://llvm.org/releases/%{version}/libcxx-%{version}.src.tar.xz
|
|
||||||
Source5: http://llvm.org/releases/%{version}/libcxxabi-%{version}.src.tar.xz
|
|
||||||
Source6: http://llvm.org/releases/%{version}/openmp-%{version}.src.tar.xz
|
|
||||||
# Docs are created manually, see below
|
|
||||||
Source50: llvm-docs-%{version}.src.tar.xz
|
|
||||||
Source51: cfe-docs-%{version}.src.tar.xz
|
|
||||||
Source100: %{name}-rpmlintrc
|
|
||||||
Source101: baselibs.conf
|
Source101: baselibs.conf
|
||||||
# PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Allow us to set revision
|
# Avoid multiple providers error
|
||||||
Patch1: set-revision.patch
|
BuildRequires: clang%{_sonum} = %{version}
|
||||||
# PATCH-FIX-OPENSUSE assume-opensuse.patch idoenmez@suse.de -- Always enable openSUSE/SUSE features
|
BuildRequires: clang%{_sonum}-checker = %{version}
|
||||||
Patch2: assume-opensuse.patch
|
BuildRequires: clang%{_sonum}-devel = %{version}
|
||||||
# PATCH-FIX-OPENSUSE default-to-i586.patch -- Use i586 as default target for 32bit
|
BuildRequires: llvm%{_sonum} = %{version}
|
||||||
Patch3: default-to-i586.patch
|
BuildRequires: llvm%{_sonum}-LTO-devel = %{version}
|
||||||
# PATCH-FIX-OPENSUSE arm_suse_support.diff --Enable ARM suse toolchain support
|
BuildRequires: llvm%{_sonum}-devel = %{version}
|
||||||
Patch4: arm_suse_support.diff
|
BuildRequires: llvm%{_sonum}-emacs-plugins = %{version}
|
||||||
Patch5: clang-resourcedirs.patch
|
BuildRequires: llvm%{_sonum}-gold = %{version}
|
||||||
Patch6: llvm-remove-clang-only-flags.patch
|
BuildRequires: llvm%{_sonum}-vim-plugins = %{version}
|
||||||
Patch7: llvm-fix-find-gcc5-install.patch
|
# Avoid cycles
|
||||||
Patch8: revert-cmake-soname.patch
|
#!BuildIgnore: emacs
|
||||||
Patch9: llvm-nonvoid-return.patch
|
#!BuildIgnore: vim
|
||||||
Patch20: glibc-2.23-libcxx.patch
|
%ifarch arm x86_64
|
||||||
Patch21: glibc-2.24-libcxx.patch
|
BuildRequires: lldb%{_sonum} = %{version}
|
||||||
BuildRequires: binutils-devel >= 2.21.90
|
BuildRequires: lldb%{_sonum}-devel = %{version}
|
||||||
BuildRequires: bison
|
BuildRequires: python%{_sonum}-lldb = %{version}
|
||||||
BuildRequires: cmake
|
|
||||||
BuildRequires: fdupes
|
|
||||||
BuildRequires: flex
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: groff
|
|
||||||
BuildRequires: libstdc++-devel
|
|
||||||
BuildRequires: libtool
|
|
||||||
BuildRequires: ncurses-devel
|
|
||||||
BuildRequires: ninja
|
|
||||||
BuildRequires: pkgconfig
|
|
||||||
BuildRequires: procps
|
|
||||||
BuildRequires: python-base
|
|
||||||
BuildRequires: python-xml
|
|
||||||
BuildRequires: pkgconfig(libedit)
|
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: libLLVM%{_sonum}
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
||||||
# llvm does not work on ppc or s390
|
|
||||||
ExcludeArch: ppc s390
|
|
||||||
%if %{with ffi}
|
|
||||||
BuildRequires: pkgconfig(libffi)
|
|
||||||
%endif
|
|
||||||
%if %{with valgrind}
|
|
||||||
BuildRequires: pkgconfig(valgrind)
|
|
||||||
%endif
|
|
||||||
%if %{with oprofile}
|
|
||||||
BuildRequires: oprofile-devel
|
|
||||||
%endif
|
%endif
|
||||||
|
Requires: llvm%{_sonum} = %{version}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
LLVM is a compiler infrastructure designed for compile-time,
|
LLVM is a compiler infrastructure designed for compile-time,
|
||||||
@ -108,93 +55,61 @@ arbitrary programming languages.
|
|||||||
The compiler infrastructure includes mirror sets of programming
|
The compiler infrastructure includes mirror sets of programming
|
||||||
tools as well as libraries with equivalent functionality.
|
tools as well as libraries with equivalent functionality.
|
||||||
|
|
||||||
%package -n libLLVM%{_sonum}
|
This package is a dummy package that depends on the version of
|
||||||
Summary: Libraries for LLVM
|
llvm that openSUSE currently supports. Packages that
|
||||||
Group: Development/Libraries/C and C++
|
don't require a specific LLVM version should depend on this.
|
||||||
|
|
||||||
%description -n libLLVM%{_sonum}
|
|
||||||
This package contains the shared libraries needed for LLVM.
|
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Header Files for LLVM
|
Summary: Header Files for LLVM
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
Requires: %{name} = %{version}
|
Requires: llvm%{_sonum}-devel = %{version}
|
||||||
Requires: binutils-devel >= 2.21.90
|
Requires: llvm-gold
|
||||||
Requires: bison
|
|
||||||
Requires: flex
|
|
||||||
Requires: groff
|
|
||||||
Requires: libstdc++-devel
|
|
||||||
Requires: libtool
|
|
||||||
Requires: ncurses-devel
|
|
||||||
Requires: pkgconfig
|
|
||||||
Requires: pkgconfig(libedit)
|
|
||||||
Conflicts: otherproviders(cmake(LLVM))
|
|
||||||
%if %{with ffi}
|
|
||||||
Requires: pkgconfig(libffi)
|
|
||||||
%endif
|
|
||||||
%if %{with valgrind}
|
|
||||||
Requires: pkgconfig(valgrind)
|
|
||||||
%endif
|
|
||||||
%if %{with oprofile}
|
|
||||||
Requires: oprofile-devel
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
This package contains library and header files needed to develop
|
This package contains library and header files needed to develop
|
||||||
new native programs that use the LLVM infrastructure.
|
new native programs that use the LLVM infrastructure.
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
llvm-devel that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific LLVM version should depend on this.
|
||||||
|
|
||||||
|
|
||||||
%package -n clang
|
%package -n clang
|
||||||
Summary: CLANG frontend for LLVM
|
Summary: CLANG frontend for LLVM
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
# Avoid multiple provider errors
|
Requires: clang%{_sonum} = %{version}
|
||||||
Requires: libLTO%{_sonum}
|
|
||||||
Requires: libclang%{_sonum}
|
|
||||||
Recommends: LLVMgold.so()(64bit)
|
|
||||||
Recommends: scan-build
|
|
||||||
Recommends: scan-view
|
|
||||||
%if %{with openmp}
|
|
||||||
Recommends: libomp
|
|
||||||
%endif
|
|
||||||
%if %{with libcxx}
|
|
||||||
Requires: libc++%{_socxx}
|
|
||||||
Recommends: libc++-devel
|
|
||||||
%endif
|
|
||||||
Provides: llvm-clang = %{version}
|
Provides: llvm-clang = %{version}
|
||||||
Obsoletes: llvm-clang < %{version}
|
Obsoletes: llvm-clang < %{version}
|
||||||
|
|
||||||
%description -n clang
|
%description -n clang
|
||||||
This package contains the clang (C language) frontend for LLVM.
|
This package contains the clang (C language) frontend for LLVM.
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
clang that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific Clang version should depend on this.
|
||||||
|
|
||||||
|
|
||||||
%package -n clang-checker
|
%package -n clang-checker
|
||||||
Summary: Static code analyzer for CLANG
|
Summary: Static code analyzer for CLANG
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
# Avoid multiple provider errors
|
Requires: clang%{_sonum}-checker = %{version}
|
||||||
Requires: libclang%{_sonum}
|
Provides: llvm-clang-checker = %{version}
|
||||||
Conflicts: otherproviders(scan-build)
|
Obsoletes: llvm-clang-checker < %{version}
|
||||||
Conflicts: otherproviders(scan-view)
|
|
||||||
Provides: scan-build
|
|
||||||
Provides: scan-view
|
|
||||||
|
|
||||||
%description -n clang-checker
|
%description -n clang-checker
|
||||||
This package contains scan-build and scan-view, command line
|
This package contains scan-build and scan-view, command line
|
||||||
static code analyzers for CLANG.
|
static code analyzers for CLANG.
|
||||||
|
|
||||||
%package -n libclang%{_sonum}
|
This package is a dummy package that depends on the version of
|
||||||
Summary: Library files needed for clang
|
clang-checker that openSUSE currently supports. Packages that
|
||||||
Group: Development/Libraries/C and C++
|
don't require a specific Clang version should depend on this.
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: libLLVM%{_sonum}
|
|
||||||
Requires: libstdc++-devel
|
|
||||||
|
|
||||||
%description -n libclang%{_sonum}
|
|
||||||
This package contains the shared libraries needed for clang.
|
|
||||||
|
|
||||||
%package -n clang-devel
|
%package -n clang-devel
|
||||||
Summary: CLANG frontend for LLVM (devel package)
|
Summary: CLANG frontend for LLVM (devel package)
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
Requires: llvm-clang = %{version}
|
Requires: clang%{_sonum}-devel = %{version}
|
||||||
Requires: cmake(LLVM) = %{version}
|
|
||||||
Conflicts: otherproviders(cmake(Clang))
|
|
||||||
Provides: llvm-clang-devel = %{version}
|
Provides: llvm-clang-devel = %{version}
|
||||||
Obsoletes: llvm-clang-devel < %{version}
|
Obsoletes: llvm-clang-devel < %{version}
|
||||||
|
|
||||||
@ -202,517 +117,167 @@ Obsoletes: llvm-clang-devel < %{version}
|
|||||||
This package contains the clang (C language) frontend for LLVM.
|
This package contains the clang (C language) frontend for LLVM.
|
||||||
(development files)
|
(development files)
|
||||||
|
|
||||||
%package -n libLTO%{_sonum}
|
This package is a dummy package that depends on the version of
|
||||||
Summary: Link-time optimizer for LLVM
|
clang-devel that openSUSE currently supports. Packages that
|
||||||
Group: Development/Languages/Other
|
don't require a specific Clang version should depend on this.
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: libLLVM%{_sonum}
|
|
||||||
|
|
||||||
%description -n libLTO%{_sonum}
|
|
||||||
This package contains the link-time optimizer for LLVM.
|
|
||||||
|
|
||||||
%package LTO-devel
|
%package LTO-devel
|
||||||
Summary: Link-time optimizer for LLVM (devel package)
|
Summary: Link-time optimizer for LLVM (devel package)
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
# Avoid multiple provider errors
|
Requires: llvm%{_sonum}-LTO-devel = %{version}
|
||||||
Requires: libLTO%{_sonum}
|
|
||||||
Requires: cmake(LLVM) = %{version}
|
|
||||||
Conflicts: otherproviders(libLTO.so)
|
|
||||||
Provides: libLTO.so
|
|
||||||
|
|
||||||
%description LTO-devel
|
%description LTO-devel
|
||||||
This package contains the link-time optimizer for LLVM.
|
This package contains the link-time optimizer for LLVM.
|
||||||
(development files)
|
(development files)
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
llvm-LTO-devel that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific LLVM version should depend on this.
|
||||||
|
|
||||||
|
|
||||||
%package gold
|
%package gold
|
||||||
Summary: Gold linker plugin for LLVM
|
Summary: Gold linker plugin for LLVM
|
||||||
Group: Development/Languages/Other
|
Group: Development/Languages/Other
|
||||||
# Avoid multiple provider errors
|
Requires: llvm%{_sonum}-gold = %{version}
|
||||||
Requires: libLLVM%{_sonum}
|
|
||||||
Requires: cmake(LLVM) = %{version}
|
|
||||||
Conflicts: otherproviders(LLVMgold.so()(64bit))
|
|
||||||
Provides: LLVMgold.so()(64bit)
|
|
||||||
|
|
||||||
%description gold
|
%description gold
|
||||||
This package contains the Gold linker plugin for LLVM.
|
This package contains the Gold linker plugin for LLVM.
|
||||||
|
|
||||||
%package -n libomp
|
This package is a dummy package that depends on the version of
|
||||||
Summary: MPI plugin for LLVM
|
llvm-gold that openSUSE currently supports. Packages that
|
||||||
Group: Development/Languages/Other
|
don't require a specific LLVM version should depend on this.
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: libLLVM%{_sonum}
|
|
||||||
Conflicts: otherproviders(libomp.so()(64bit))
|
|
||||||
Provides: libomp.so()(64bit)
|
|
||||||
|
|
||||||
%description -n libomp
|
|
||||||
This package contains the OpenMP MPI plugin for LLVM.
|
|
||||||
|
|
||||||
%package -n libc++%{_socxx}
|
|
||||||
Summary: C++ standard library implementation
|
|
||||||
Group: Development/Libraries/C and C++
|
|
||||||
|
|
||||||
%description -n libc++%{_socxx}
|
|
||||||
This package contains libc++, a new implementation of the C++
|
|
||||||
standard library, targeting C++11.
|
|
||||||
|
|
||||||
%package -n libc++-devel
|
|
||||||
Summary: C++ standard library implementation (devel package)
|
|
||||||
Group: Development/Languages/C and C++
|
|
||||||
Conflicts: otherproviders(libc++.so)
|
|
||||||
Provides: libc++.so
|
|
||||||
|
|
||||||
%description -n libc++-devel
|
|
||||||
This package contains libc++, a new implementation of the C++
|
|
||||||
standard library, targeting C++11. (development files)
|
|
||||||
|
|
||||||
%package -n libc++abi%{_socxx}
|
|
||||||
Summary: C++ standard library ABI
|
|
||||||
Group: Development/Libraries/C and C++
|
|
||||||
|
|
||||||
%description -n libc++abi%{_socxx}
|
|
||||||
This package contains the ABI for libc++, a new implementation
|
|
||||||
of the C++ standard library, targeting C++11.
|
|
||||||
|
|
||||||
%package -n libc++abi-devel
|
|
||||||
Summary: C++ standard library ABI (devel package)
|
|
||||||
Group: Development/Languages/C and C++
|
|
||||||
# Avoid multiple provider errors
|
|
||||||
Requires: libc++-devel
|
|
||||||
Conflicts: otherproviders(libc++abi.so)
|
|
||||||
Provides: libc++abi.so
|
|
||||||
|
|
||||||
%description -n libc++abi-devel
|
|
||||||
This package contains the ABI for libc++, a new implementation
|
|
||||||
of the C++ standard library, targeting C++11.
|
|
||||||
(development files)
|
|
||||||
|
|
||||||
%package vim-plugins
|
%package vim-plugins
|
||||||
Summary: Vim plugins for LLVM
|
Summary: Vim plugins for LLVM
|
||||||
Group: Productivity/Text/Editors
|
Group: Productivity/Text/Editors
|
||||||
Requires: vim
|
Requires: llvm%{_sonum}-vim-plugins = %{version}
|
||||||
Conflicts: otherproviders(vim-plugin-llvm)
|
|
||||||
Provides: vim-plugin-llvm
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
%description vim-plugins
|
%description vim-plugins
|
||||||
This package contains vim plugins for LLVM like syntax highlighting.
|
This package contains vim plugins for LLVM like syntax highlighting.
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
llvm-vim-plugins that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific LLVM version should depend on this.
|
||||||
|
|
||||||
|
|
||||||
%package emacs-plugins
|
%package emacs-plugins
|
||||||
Summary: Emacs plugins for LLVM
|
Summary: Emacs plugins for LLVM
|
||||||
Group: Productivity/Text/Editors
|
Group: Productivity/Text/Editors
|
||||||
Requires: emacs
|
Requires: llvm%{_sonum}-emacs-plugins = %{version}
|
||||||
Conflicts: otherproviders(emacs-llvm)
|
|
||||||
Provides: emacs-llvm
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
%description emacs-plugins
|
%description emacs-plugins
|
||||||
This package contains Emacs plugins for LLVM like syntax highlighting.
|
This package contains Emacs plugins for LLVM like syntax highlighting.
|
||||||
|
|
||||||
%package -n python-clang
|
This package is a dummy package that depends on the version of
|
||||||
Summary: Python 2 bindings for libclang
|
llvm-emacs-plugins that openSUSE currently supports. Packages that
|
||||||
Group: Development/Languages/Python
|
don't require a specific LLVM version should depend on this.
|
||||||
Requires: %{name}-clang-devel = %{version}
|
|
||||||
Requires: python
|
|
||||||
BuildArch: noarch
|
%package -n lldb
|
||||||
|
Summary: Software debugger built using LLVM libraries
|
||||||
|
Group: Development/Tools/Debuggers
|
||||||
|
Requires: lldb%{_sonum} = %{version}
|
||||||
|
|
||||||
|
%description -n lldb
|
||||||
|
LLDB is a next generation, high-performance debugger. It is built as a set
|
||||||
|
of reusable components which highly leverage existing libraries in the
|
||||||
|
larger LLVM Project, such as the Clang expression parser and LLVM
|
||||||
|
disassembler.
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
lldb that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific LLDB version should depend on this.
|
||||||
|
|
||||||
|
|
||||||
|
%package -n lldb-devel
|
||||||
|
Summary: Development files for LLDB
|
||||||
|
Group: Development/Languages/Other
|
||||||
|
Requires: lldb%{_sonum}-devel = %{version}
|
||||||
|
|
||||||
|
%description -n lldb-devel
|
||||||
|
This package contains the development files for LLDB.
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
lldb-devel that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific LLDB version should depend on this.
|
||||||
|
|
||||||
|
|
||||||
|
%package -n python-lldb
|
||||||
|
Summary: Python bindings for liblldb
|
||||||
|
Group: Development/Languages/Python
|
||||||
|
Requires: python%{_sonum}-lldb = %{version}
|
||||||
|
|
||||||
|
%description -n python-lldb
|
||||||
|
This package contains the Python bindings to clang (C language) frontend for LLVM.
|
||||||
|
|
||||||
|
This package is a dummy package that depends on the version of
|
||||||
|
python-lldb that openSUSE currently supports. Packages that
|
||||||
|
don't require a specific LLDB version should depend on this.
|
||||||
|
|
||||||
%description -n python-clang
|
|
||||||
This package contains the Python 2.x bindings to clang (C language)
|
|
||||||
frontend for LLVM.
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -b 50 -a 51 -n llvm-%{version}.src
|
# Not needed
|
||||||
%patch1
|
|
||||||
%patch2
|
|
||||||
%patch3
|
|
||||||
%patch4
|
|
||||||
%patch5
|
|
||||||
%patch6 -p1
|
|
||||||
%patch7
|
|
||||||
%patch8 -p1
|
|
||||||
%patch9 -p1
|
|
||||||
%if 0%{?suse_version} > 1320
|
|
||||||
%patch20
|
|
||||||
%patch21
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Move into right place
|
|
||||||
mv cfe-%{version}.src tools/clang
|
|
||||||
mv compiler-rt-%{version}.src projects/compiler-rt
|
|
||||||
mv clang-tools-extra-%{version}.src tools/clang/tools/extra
|
|
||||||
|
|
||||||
%if %{with openmp}
|
|
||||||
mv openmp-%{version}.src projects/openmp
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with libcxx}
|
|
||||||
mv libcxx-%{version}.src projects/libcxx
|
|
||||||
mv libcxxabi-%{version}.src projects/libcxxabi
|
|
||||||
|
|
||||||
rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
|
|
||||||
rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# We hardcode i586
|
|
||||||
rm tools/clang/test/Driver/x86_features.c
|
|
||||||
rm tools/clang/test/Driver/nacl-direct.c
|
|
||||||
|
|
||||||
sed -i s,SVN_REVISION,\"%{_revsn}\",g tools/clang/lib/Basic/Version.cpp
|
|
||||||
sed -i s,LLVM_REVISION,\"%{_revsn}\",g tools/clang/lib/Basic/Version.cpp
|
|
||||||
|
|
||||||
# ARMv6 needs this exact host triple
|
|
||||||
%ifarch armv6hl
|
|
||||||
cat > autoconf/config.guess << EOF
|
|
||||||
#!/bin/sh
|
|
||||||
echo armv6hl-suse-linux-gnueabi
|
|
||||||
EOF
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Disable c/xx/flags as the clang fails to build with hardening right now
|
echo "This is a dummy package to provide a dependency on the system compiler." > README
|
||||||
#flags="%%{optflags} -fno-strict-aliasing"
|
|
||||||
flags="-fno-strict-aliasing"
|
|
||||||
%ifarch armv6hl
|
|
||||||
flags+=" -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp"
|
|
||||||
%endif
|
|
||||||
%ifarch armv7hl
|
|
||||||
flags+=" -mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16"
|
|
||||||
%endif
|
|
||||||
%ifarch %{ix86} x86_64
|
|
||||||
TARGETS_TO_BUILD="all"
|
|
||||||
%else
|
|
||||||
TARGETS_TO_BUILD=host
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# do not eat all memory
|
|
||||||
ninjaproc="%{?jobs:%{jobs}}"
|
|
||||||
echo "Available memory:"
|
|
||||||
free
|
|
||||||
echo "System limits:"
|
|
||||||
ulimit -a
|
|
||||||
if test -n "$ninjaproc" -a "$ninjaproc" -gt 1 ; then
|
|
||||||
mem_per_process=1000
|
|
||||||
max_mem=`LANG=C free -t -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p"`
|
|
||||||
max_jobs="$(($max_mem / $mem_per_process))"
|
|
||||||
test "$ninjaproc" -gt "$max_jobs" && ninjaproc="$max_jobs" && echo "Warning: Reducing number of jobs to $max_jobs because of memory limits"
|
|
||||||
test "$ninjaproc" -le 0 && ninjaproc=1 && echo "Warning: Do not use the parallel build at all becuse of memory limits"
|
|
||||||
fi
|
|
||||||
|
|
||||||
%define __builder ninja
|
|
||||||
%define __builddir stage1
|
|
||||||
# -z,now is breaking now, it needs to be fixed
|
|
||||||
%cmake \
|
|
||||||
-DCMAKE_C_FLAGS="$flags" \
|
|
||||||
-DCMAKE_CXX_FLAGS="$flags" \
|
|
||||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
|
||||||
-DLLVM_TARGETS_TO_BUILD=host \
|
|
||||||
-DLLDB_DISABLE_PYTHON=ON \
|
|
||||||
-DCMAKE_SKIP_RPATH:BOOL=OFF \
|
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed" \
|
|
||||||
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed" \
|
|
||||||
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed"
|
|
||||||
ninja -v -j $ninjaproc
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
%define __builddir build
|
|
||||||
export CC=${PWD}/stage1/bin/clang
|
|
||||||
export CXX=${PWD}/stage1/bin/clang++
|
|
||||||
# -z,now is breaking now, it needs to be fixed
|
|
||||||
%cmake \
|
|
||||||
-DCMAKE_C_FLAGS="$flags" \
|
|
||||||
-DCMAKE_CXX_FLAGS="$flags" \
|
|
||||||
-DLLVM_REQUIRES_RTTI=ON \
|
|
||||||
-DLLVM_ENABLE_TIMESTAMPS=OFF \
|
|
||||||
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
|
||||||
-DLLVM_ENABLE_PIC=ON \
|
|
||||||
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
|
||||||
-DLLVM_TARGETS_TO_BUILD=${TARGETS_TO_BUILD} \
|
|
||||||
%if "%{_lib}" == "lib64"
|
|
||||||
-DLLVM_LIBDIR_SUFFIX=64 \
|
|
||||||
%endif
|
|
||||||
%if %{with ffi}
|
|
||||||
-DLLVM_ENABLE_FFI=ON \
|
|
||||||
%endif
|
|
||||||
%if %{with oprofile}
|
|
||||||
-DLLVM_USE_OPROFILE=ON \
|
|
||||||
%endif
|
|
||||||
-DCMAKE_SKIP_RPATH:BOOL=OFF \
|
|
||||||
-DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed" \
|
|
||||||
-DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed" \
|
|
||||||
-DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed"
|
|
||||||
ninja -v -j $ninjaproc
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%cmake_install
|
# Not needed
|
||||||
|
|
||||||
# Docs are prebuilt due to sphinx dependency
|
|
||||||
#
|
|
||||||
# pushd llvm-3.8.1.src/docs
|
|
||||||
# make -f Makefile.sphinx man html
|
|
||||||
# popd
|
|
||||||
# pushd cfe-3.8.1.src/docs
|
|
||||||
# make -f Makefile.sphinx man html
|
|
||||||
# popd
|
|
||||||
# tar cvJf llvm-docs-3.8.1.src.tar.xz llvm-3.8.1.src/docs/_build/{man,html}
|
|
||||||
# tar cvJf cfe-docs-3.8.1.src.tar.xz cfe-3.8.1.src/docs/_build/{man,html}
|
|
||||||
|
|
||||||
# Build man/html pages
|
|
||||||
pushd docs
|
|
||||||
rm -rf %{buildroot}%{_prefix}/docs
|
|
||||||
mkdir -p %{buildroot}%{_docdir}/llvm/html
|
|
||||||
mkdir -p %{buildroot}%{_mandir}/man1
|
|
||||||
cp -r _build/man/* %{buildroot}%{_mandir}/man1
|
|
||||||
cp -r _build/html/* %{buildroot}%{_docdir}/llvm/html
|
|
||||||
popd
|
|
||||||
|
|
||||||
pushd tools/clang/docs
|
|
||||||
mkdir -p %{buildroot}%{_docdir}/llvm-clang/html
|
|
||||||
cp -r _build/man/* %{buildroot}%{_mandir}/man1
|
|
||||||
cp -r _build/html/* %{buildroot}%{_docdir}/llvm-clang/html
|
|
||||||
popd
|
|
||||||
|
|
||||||
# install python bindings
|
|
||||||
# The python bindings use the unversioned libclang.so,
|
|
||||||
# so it doesn't make sense to have multiple versions of it
|
|
||||||
install -d %{buildroot}%{python_sitelib}/clang
|
|
||||||
pushd tools/clang/bindings/python
|
|
||||||
cp clang/*.py %{buildroot}%{python_sitelib}/clang
|
|
||||||
install -d %{buildroot}%{_docdir}/python-clang/examples/cindex
|
|
||||||
cp -r examples %{buildroot}%{_docdir}/python-clang
|
|
||||||
install -d %{buildroot}%{_docdir}/python-clang/tests/cindex/INPUTS
|
|
||||||
cp -r tests %{buildroot}%{_docdir}/python-clang
|
|
||||||
popd
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_libdir}/bfd-plugins
|
|
||||||
ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_libdir}/bfd-plugins/
|
|
||||||
|
|
||||||
install -m 755 -d %{buildroot}%{_datadir}/vim/site/
|
|
||||||
for i in ftdetect ftplugin indent syntax; do
|
|
||||||
cp -r utils/vim/$i %{buildroot}%{_datadir}/vim/site/
|
|
||||||
done
|
|
||||||
mv utils/vim/README utils/vim/README.vim
|
|
||||||
|
|
||||||
mv %{buildroot}%{_prefix}/libexec/{c++,ccc}-analyzer %{buildroot}%{_bindir}
|
|
||||||
mv %{buildroot}%{_datadir}/clang/clang-format-diff.py %{buildroot}%{_bindir}/clang-format-diff
|
|
||||||
mv %{buildroot}%{_datadir}/clang/clang-tidy-diff.py %{buildroot}%{_bindir}/clang-tidy-diff
|
|
||||||
mv %{buildroot}%{_datadir}/clang/run-clang-tidy.py %{buildroot}%{_bindir}/run-clang-tidy
|
|
||||||
chmod -x %{buildroot}%{_mandir}/man1/scan-build.1
|
|
||||||
|
|
||||||
# Stuff we don't want to include
|
|
||||||
rm %{buildroot}%{_mandir}/man1/lit.1
|
|
||||||
|
|
||||||
# Put cmake files where they can be detected
|
|
||||||
mkdir -p %{buildroot}%{_libdir}/cmake/llvm/
|
|
||||||
pushd %{buildroot}%{_datadir}/llvm/cmake/
|
|
||||||
for f in * ; do
|
|
||||||
ln -s %{_datadir}/llvm/cmake/$f %{buildroot}%{_libdir}/cmake/llvm/$f
|
|
||||||
done
|
|
||||||
# This confuses the rpm cmake provides detection
|
|
||||||
rm %{buildroot}%{_libdir}/cmake/llvm/LLVM-Config.cmake
|
|
||||||
|
|
||||||
mkdir -p %{buildroot}%{_libdir}/cmake/clang/
|
|
||||||
pushd %{buildroot}%{_datadir}/clang/cmake/
|
|
||||||
for f in * ; do
|
|
||||||
ln -s %{_datadir}/clang/cmake/$f %{buildroot}%{_libdir}/cmake/clang/$f
|
|
||||||
done
|
|
||||||
|
|
||||||
%if %{with libcxx}
|
|
||||||
rm %{buildroot}%{_libdir}/libc++abi.a
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with openmp}
|
|
||||||
rm %{buildroot}%{_libdir}/libgomp.so
|
|
||||||
rm %{buildroot}%{_libdir}/libiomp*.so
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# We don't care about applescript or sublime text
|
|
||||||
rm %{buildroot}%{_datadir}/clang/*.applescript
|
|
||||||
rm %{buildroot}%{_datadir}/clang/clang-format-sublime.py
|
|
||||||
|
|
||||||
%fdupes -s %{buildroot}%{_docdir}/%{name}
|
|
||||||
%fdupes -s %{buildroot}%{_docdir}/%{name}-doc
|
|
||||||
|
|
||||||
%check
|
|
||||||
cd build
|
|
||||||
%ifnarch armv7hl armv7l
|
|
||||||
%if !0%{?qemu_user_space_build:1}
|
|
||||||
# we just do not have enough memory with qemu emulation
|
|
||||||
|
|
||||||
ninja -v %{?_smp_mflags} check
|
|
||||||
ninja -v %{?_smp_mflags} clang-test
|
|
||||||
|
|
||||||
%if %{with libcxx}
|
|
||||||
ninja -v %{?_smp_mflags} check-libcxx
|
|
||||||
ninja -v %{?_smp_mflags} check-libcxxabi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%endif
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%post -n libLLVM%{_sonum} -p /sbin/ldconfig
|
|
||||||
%postun -n libLLVM%{_sonum} -p /sbin/ldconfig
|
|
||||||
%post -n libclang%{_sonum} -p /sbin/ldconfig
|
|
||||||
%postun -n libclang%{_sonum} -p /sbin/ldconfig
|
|
||||||
%post -n libLTO%{_sonum} -p /sbin/ldconfig
|
|
||||||
%postun -n libLTO%{_sonum} -p /sbin/ldconfig
|
|
||||||
%post gold -p /sbin/ldconfig
|
|
||||||
%postun gold -p /sbin/ldconfig
|
|
||||||
%post devel -p /sbin/ldconfig
|
|
||||||
%postun devel -p /sbin/ldconfig
|
|
||||||
%post -n clang-devel -p /sbin/ldconfig
|
|
||||||
%postun -n clang-devel -p /sbin/ldconfig
|
|
||||||
%post LTO-devel -p /sbin/ldconfig
|
|
||||||
%postun LTO-devel -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%if %{with openmp}
|
|
||||||
%post -n libomp -p /sbin/ldconfig
|
|
||||||
%postun -n libomp -p /sbin/ldconfig
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with libcxx}
|
|
||||||
%post -n libc++%{_socxx} -p /sbin/ldconfig
|
|
||||||
%postun -n libc++%{_socxx} -p /sbin/ldconfig
|
|
||||||
%post -n libc++abi%{_socxx} -p /sbin/ldconfig
|
|
||||||
%postun -n libc++abi%{_socxx} -p /sbin/ldconfig
|
|
||||||
%post -n libc++-devel -p /sbin/ldconfig
|
|
||||||
%postun -n libc++-devel -p /sbin/ldconfig
|
|
||||||
%post -n libc++abi-devel -p /sbin/ldconfig
|
|
||||||
%postun -n libc++abi-devel -p /sbin/ldconfig
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_bindir}/bugpoint
|
%doc README
|
||||||
%{_bindir}/llc
|
|
||||||
%{_bindir}/lli
|
|
||||||
%{_bindir}/llvm-*
|
|
||||||
%{_bindir}/obj2yaml
|
|
||||||
%{_bindir}/opt
|
|
||||||
%{_bindir}/sancov
|
|
||||||
%{_bindir}/verify-uselistorder
|
|
||||||
%{_bindir}/yaml2obj
|
|
||||||
%{_mandir}/man1/FileCheck.1%{ext_man}
|
|
||||||
%{_mandir}/man1/bugpoint.1%{ext_man}
|
|
||||||
%{_mandir}/man1/llc.1%{ext_man}
|
|
||||||
%{_mandir}/man1/lli.1%{ext_man}
|
|
||||||
%{_mandir}/man1/llvm-*.1%{ext_man}
|
|
||||||
%{_mandir}/man1/opt.1%{ext_man}
|
|
||||||
%{_mandir}/man1/tblgen.1%{ext_man}
|
|
||||||
%exclude %{_bindir}/llvm-config
|
|
||||||
%exclude %{_mandir}/man1/llvm-config.1%{ext_man}
|
|
||||||
|
|
||||||
%files -n clang
|
%files -n clang
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_bindir}/c-index-test
|
%doc README
|
||||||
%{_bindir}/c++-analyzer
|
|
||||||
%{_bindir}/ccc-analyzer
|
|
||||||
%{_bindir}/clang
|
|
||||||
%{_bindir}/clang-*
|
|
||||||
%{_bindir}/clang++
|
|
||||||
%{_bindir}/git-clang-format
|
|
||||||
%{_bindir}/modularize
|
|
||||||
%{_bindir}/run-clang-tidy
|
|
||||||
%{_mandir}/man1/clang.1%{ext_man}
|
|
||||||
%dir %{_libdir}/clang/
|
|
||||||
%{_libdir}/clang/%{_relver}/
|
|
||||||
|
|
||||||
%files -n clang-checker
|
%files -n clang-checker
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_bindir}/scan-build
|
%doc README
|
||||||
%{_bindir}/scan-view
|
|
||||||
%{_datadir}/scan-build/
|
|
||||||
%{_datadir}/scan-view/
|
|
||||||
%{_mandir}/man1/scan-build.1%{ext_man}
|
|
||||||
|
|
||||||
%files -n libLLVM%{_sonum}
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{_libdir}/libLLVM*.so.*
|
|
||||||
|
|
||||||
%files -n libclang%{_sonum}
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
%{_libdir}/libclang*.so.*
|
|
||||||
|
|
||||||
%files -n libLTO%{_sonum}
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libLTO.so.*
|
|
||||||
|
|
||||||
%files gold
|
%files gold
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_libdir}/LLVMgold.so
|
%doc README
|
||||||
%dir %{_libdir}/bfd-plugins/
|
|
||||||
%{_libdir}/bfd-plugins/LLVMgold.so
|
|
||||||
|
|
||||||
%if %{with openmp}
|
|
||||||
%files -n libomp
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libomp.so
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with libcxx}
|
|
||||||
%files -n libc++%{_socxx}
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libc++.so.*
|
|
||||||
|
|
||||||
%files -n libc++abi%{_socxx}
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libc++abi.so.*
|
|
||||||
|
|
||||||
%files -n libc++-devel
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libc++.so
|
|
||||||
%{_libdir}/libc++abi.so
|
|
||||||
%{_includedir}/c++/
|
|
||||||
|
|
||||||
%files -n libc++abi-devel
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_libdir}/libc++abi.so
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_bindir}/llvm-config
|
%doc README
|
||||||
%{_libdir}/libLLVM*.so
|
|
||||||
%{_libdir}/BugpointPasses.*
|
|
||||||
%{_libdir}/LLVMHello.*
|
|
||||||
%{_includedir}/llvm/
|
|
||||||
%{_includedir}/llvm-c/
|
|
||||||
%dir %{_datadir}/llvm/
|
|
||||||
%{_datadir}/llvm/cmake
|
|
||||||
%{_libdir}/cmake/llvm
|
|
||||||
%{_docdir}/llvm/
|
|
||||||
%{_mandir}/man1/llvm-config.1%{ext_man}
|
|
||||||
|
|
||||||
%files -n clang-devel
|
%files -n clang-devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_libdir}/libclang*.so
|
%doc README
|
||||||
%{_includedir}/clang/
|
|
||||||
%{_includedir}/clang-c/
|
|
||||||
%dir %{_datadir}/clang/
|
|
||||||
%{_datadir}/clang/cmake
|
|
||||||
%{_libdir}/cmake/clang
|
|
||||||
%{_docdir}/llvm-clang/
|
|
||||||
|
|
||||||
%files LTO-devel
|
%files LTO-devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_libdir}/libLTO.so
|
%doc README
|
||||||
|
|
||||||
%files emacs-plugins
|
%files emacs-plugins
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%dir %{_datadir}/clang/
|
%doc README
|
||||||
%{_datadir}/clang/clang-format.el
|
|
||||||
|
|
||||||
%files vim-plugins
|
%files vim-plugins
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc utils/vim/README.vim
|
%doc README
|
||||||
%{_datadir}/vim/
|
|
||||||
%dir %{_datadir}/clang/
|
|
||||||
%{_datadir}/clang/clang-format.py
|
|
||||||
|
|
||||||
%files -n python-clang
|
%ifarch arm x86_64
|
||||||
|
|
||||||
|
%files -n lldb
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{python_sitelib}/clang/
|
%doc README
|
||||||
%{python_sitelib}/clang/__init__.py
|
|
||||||
%{python_sitelib}/clang/cindex.py
|
%files -n lldb-devel
|
||||||
%{python_sitelib}/clang/enumerations.py
|
%defattr(-,root,root)
|
||||||
%{_docdir}/python-clang/
|
%doc README
|
||||||
|
|
||||||
|
%files -n python-lldb
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%doc README
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:68fcde6ef34e0275884a2de3450a31e931caf1d6fda8606ef14f89c4123617dc
|
|
||||||
size 2009572
|
|
@ -1,110 +0,0 @@
|
|||||||
Index: llvm-3.8.1.src/cmake/modules/AddLLVM.cmake
|
|
||||||
===================================================================
|
|
||||||
--- llvm-3.8.1.src.orig/cmake/modules/AddLLVM.cmake
|
|
||||||
+++ llvm-3.8.1.src/cmake/modules/AddLLVM.cmake
|
|
||||||
@@ -326,12 +326,10 @@ endfunction(set_windows_version_resource
|
|
||||||
# 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;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB;SONAME"
|
|
||||||
+ "MODULE;SHARED;STATIC;OBJECT;DISABLE_LLVM_LINK_LLVM_DYLIB"
|
|
||||||
"OUTPUT_NAME"
|
|
||||||
"ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS;OBJLIBS"
|
|
||||||
${ARGN})
|
|
||||||
@@ -436,6 +434,11 @@ 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)
|
|
||||||
@@ -450,24 +453,6 @@ 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()
|
|
||||||
-
|
|
||||||
if (DEFINED LLVM_LINK_COMPONENTS OR DEFINED ARG_LINK_COMPONENTS)
|
|
||||||
if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)
|
|
||||||
set(llvm_libs LLVM)
|
|
||||||
@@ -1073,41 +1058,6 @@ function(add_lit_testsuites project dire
|
|
||||||
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${LLVM_LIBDIR_SUFFIX})
|
|
||||||
- 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})
|
|
||||||
Index: llvm-3.8.1.src/tools/llvm-shlib/CMakeLists.txt
|
|
||||||
===================================================================
|
|
||||||
--- llvm-3.8.1.src.orig/tools/llvm-shlib/CMakeLists.txt
|
|
||||||
+++ llvm-3.8.1.src/tools/llvm-shlib/CMakeLists.txt
|
|
||||||
@@ -38,7 +38,7 @@ if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE)
|
|
||||||
add_custom_target(libLLVMExports DEPENDS ${LLVM_EXPORTED_SYMBOL_FILE})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
-add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
|
|
||||||
+add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB ${SOURCES})
|
|
||||||
|
|
||||||
list(REMOVE_DUPLICATES LIB_NAMES)
|
|
||||||
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") # FIXME: It should be "GNU ld for elf"
|
|
@ -1,24 +0,0 @@
|
|||||||
Index: cfe-3.8.1.src/lib/Basic/Version.cpp
|
|
||||||
===================================================================
|
|
||||||
--- cfe-3.8.1.src/lib/Basic/Version.cpp.orig
|
|
||||||
+++ cfe-3.8.1.src/lib/Basic/Version.cpp
|
|
||||||
@@ -72,19 +72,11 @@ std::string getLLVMRepositoryPath() {
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string getClangRevision() {
|
|
||||||
-#ifdef SVN_REVISION
|
|
||||||
return SVN_REVISION;
|
|
||||||
-#else
|
|
||||||
- return "";
|
|
||||||
-#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string getLLVMRevision() {
|
|
||||||
-#ifdef LLVM_REVISION
|
|
||||||
return LLVM_REVISION;
|
|
||||||
-#else
|
|
||||||
- return "";
|
|
||||||
-#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string getClangFullRepositoryVersion() {
|
|
Loading…
x
Reference in New Issue
Block a user