Accepting request 427058 from home:TheBlackCat:branches:devel:tools:compiler
Version of the llvm package that has been turned into a dummy that points to the current real llvm package. This submission is meant to go along with request 427057 and should not be accepted until after that submission is accepted. OBS-URL: https://build.opensuse.org/request/show/427058 OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=478
This commit is contained in:
parent
05bdbb690b
commit
d5a4de3aad
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
|
||||
lldb-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")
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
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.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 7 10:05:32 UTC 2016 - tchvatal@suse.com
|
||||
|
||||
|
700
llvm.spec
700
llvm.spec
@ -16,24 +16,7 @@
|
||||
#
|
||||
|
||||
|
||||
%define _relver 3.8.1
|
||||
%define _minor 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
|
||||
Version: 3.8.1
|
||||
Release: 0
|
||||
@ -41,64 +24,26 @@ Summary: Low Level Virtual Machine
|
||||
License: NCSA
|
||||
Group: Development/Languages/Other
|
||||
Url: http://www.llvm.org
|
||||
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz
|
||||
Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz
|
||||
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
|
||||
# This file documents the process for updating llvm
|
||||
Source0: README.packaging
|
||||
Source101: baselibs.conf
|
||||
# PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Allow us to set revision
|
||||
Patch1: set-revision.patch
|
||||
# PATCH-FIX-OPENSUSE assume-opensuse.patch idoenmez@suse.de -- Always enable openSUSE/SUSE features
|
||||
Patch2: assume-opensuse.patch
|
||||
# PATCH-FIX-OPENSUSE default-to-i586.patch -- Use i586 as default target for 32bit
|
||||
Patch3: default-to-i586.patch
|
||||
# PATCH-FIX-OPENSUSE arm_suse_support.diff --Enable ARM suse toolchain support
|
||||
Patch4: arm_suse_support.diff
|
||||
Patch5: clang-resourcedirs.patch
|
||||
Patch6: llvm-remove-clang-only-flags.patch
|
||||
Patch7: llvm-fix-find-gcc5-install.patch
|
||||
Patch8: revert-cmake-soname.patch
|
||||
Patch9: llvm-nonvoid-return.patch
|
||||
Patch20: glibc-2.23-libcxx.patch
|
||||
Patch21: glibc-2.24-libcxx.patch
|
||||
BuildRequires: binutils-devel >= 2.21.90
|
||||
BuildRequires: bison
|
||||
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
|
||||
# Avoid multiple providers error
|
||||
BuildRequires: clang%{_sonum} = %{version}
|
||||
BuildRequires: clang%{_sonum}-checker = %{version}
|
||||
BuildRequires: clang%{_sonum}-devel = %{version}
|
||||
BuildRequires: emacs-nox
|
||||
BuildRequires: llvm%{_sonum} = %{version}
|
||||
BuildRequires: llvm%{_sonum}-LTO-devel = %{version}
|
||||
BuildRequires: llvm%{_sonum}-devel = %{version}
|
||||
BuildRequires: llvm%{_sonum}-emacs-plugins = %{version}
|
||||
BuildRequires: llvm%{_sonum}-gold = %{version}
|
||||
BuildRequires: llvm%{_sonum}-vim-plugins = %{version}
|
||||
%ifarch arm x86_64
|
||||
BuildRequires: lldb%{_sonum} = %{version}
|
||||
BuildRequires: lldb%{_sonum}-devel = %{version}
|
||||
BuildRequires: python%{_sonum}-lldb = %{version}
|
||||
%endif
|
||||
Requires: llvm%{_sonum} = %{version}
|
||||
|
||||
%description
|
||||
LLVM is a compiler infrastructure designed for compile-time,
|
||||
@ -108,93 +53,60 @@ arbitrary programming languages.
|
||||
The compiler infrastructure includes mirror sets of programming
|
||||
tools as well as libraries with equivalent functionality.
|
||||
|
||||
%package -n libLLVM%{_sonum}
|
||||
Summary: Libraries for LLVM
|
||||
Group: Development/Libraries/C and C++
|
||||
This package is a dummy package that depends on the version of
|
||||
llvm that openSUSE currently supports. Packages that
|
||||
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
|
||||
Summary: Header Files for LLVM
|
||||
Group: Development/Languages/Other
|
||||
Requires: %{name} = %{version}
|
||||
Requires: binutils-devel >= 2.21.90
|
||||
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
|
||||
Requires: llvm%{_sonum}-devel = %{version}
|
||||
|
||||
%description devel
|
||||
This package contains library and header files needed to develop
|
||||
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
|
||||
Summary: CLANG frontend for LLVM
|
||||
Group: Development/Languages/Other
|
||||
# Avoid multiple provider errors
|
||||
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
|
||||
Requires: clang%{_sonum} = %{version}
|
||||
Provides: llvm-clang = %{version}
|
||||
Obsoletes: llvm-clang < %{version}
|
||||
|
||||
%description -n clang
|
||||
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
|
||||
Summary: Static code analyzer for CLANG
|
||||
Group: Development/Languages/Other
|
||||
# Avoid multiple provider errors
|
||||
Requires: libclang%{_sonum}
|
||||
Conflicts: otherproviders(scan-build)
|
||||
Conflicts: otherproviders(scan-view)
|
||||
Provides: scan-build
|
||||
Provides: scan-view
|
||||
Requires: clang%{_sonum}-checker = %{version}
|
||||
Provides: llvm-clang-checker = %{version}
|
||||
Obsoletes: llvm-clang-checker < %{version}
|
||||
|
||||
%description -n clang-checker
|
||||
This package contains scan-build and scan-view, command line
|
||||
static code analyzers for CLANG.
|
||||
|
||||
%package -n libclang%{_sonum}
|
||||
Summary: Library files needed for clang
|
||||
Group: Development/Libraries/C and C++
|
||||
# Avoid multiple provider errors
|
||||
Requires: libLLVM%{_sonum}
|
||||
Requires: libstdc++-devel
|
||||
This package is a dummy package that depends on the version of
|
||||
clang-checker that openSUSE currently supports. Packages that
|
||||
don't require a specific Clang version should depend on this.
|
||||
|
||||
%description -n libclang%{_sonum}
|
||||
This package contains the shared libraries needed for clang.
|
||||
|
||||
%package -n clang-devel
|
||||
Summary: CLANG frontend for LLVM (devel package)
|
||||
Group: Development/Languages/Other
|
||||
Requires: llvm-clang = %{version}
|
||||
Requires: cmake(LLVM) = %{version}
|
||||
Conflicts: otherproviders(cmake(Clang))
|
||||
Requires: clang%{_sonum}-devel = %{version}
|
||||
Provides: llvm-clang-devel = %{version}
|
||||
Obsoletes: llvm-clang-devel < %{version}
|
||||
|
||||
@ -202,517 +114,167 @@ Obsoletes: llvm-clang-devel < %{version}
|
||||
This package contains the clang (C language) frontend for LLVM.
|
||||
(development files)
|
||||
|
||||
%package -n libLTO%{_sonum}
|
||||
Summary: Link-time optimizer for LLVM
|
||||
Group: Development/Languages/Other
|
||||
# Avoid multiple provider errors
|
||||
Requires: libLLVM%{_sonum}
|
||||
This package is a dummy package that depends on the version of
|
||||
clang-devel that openSUSE currently supports. Packages that
|
||||
don't require a specific Clang version should depend on this.
|
||||
|
||||
%description -n libLTO%{_sonum}
|
||||
This package contains the link-time optimizer for LLVM.
|
||||
|
||||
%package LTO-devel
|
||||
Summary: Link-time optimizer for LLVM (devel package)
|
||||
Group: Development/Languages/Other
|
||||
# Avoid multiple provider errors
|
||||
Requires: libLTO%{_sonum}
|
||||
Requires: cmake(LLVM) = %{version}
|
||||
Conflicts: otherproviders(libLTO.so)
|
||||
Provides: libLTO.so
|
||||
Requires: llvm%{_sonum}-LTO-devel = %{version}
|
||||
|
||||
%description LTO-devel
|
||||
This package contains the link-time optimizer for LLVM.
|
||||
(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
|
||||
Summary: Gold linker plugin for LLVM
|
||||
Group: Development/Languages/Other
|
||||
# Avoid multiple provider errors
|
||||
Requires: libLLVM%{_sonum}
|
||||
Requires: cmake(LLVM) = %{version}
|
||||
Conflicts: otherproviders(LLVMgold.so()(64bit))
|
||||
Provides: LLVMgold.so()(64bit)
|
||||
Requires: llvm%{_sonum}-gold = %{version}
|
||||
|
||||
%description gold
|
||||
This package contains the Gold linker plugin for LLVM.
|
||||
|
||||
%package -n libomp
|
||||
Summary: MPI plugin for LLVM
|
||||
Group: Development/Languages/Other
|
||||
# Avoid multiple provider errors
|
||||
Requires: libLLVM%{_sonum}
|
||||
Conflicts: otherproviders(libomp.so()(64bit))
|
||||
Provides: libomp.so()(64bit)
|
||||
This package is a dummy package that depends on the version of
|
||||
llvm-gold that openSUSE currently supports. Packages that
|
||||
don't require a specific LLVM version should depend on this.
|
||||
|
||||
%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
|
||||
Summary: Vim plugins for LLVM
|
||||
Group: Productivity/Text/Editors
|
||||
Requires: vim
|
||||
Conflicts: otherproviders(vim-plugin-llvm)
|
||||
Provides: vim-plugin-llvm
|
||||
Requires: llvm%{_sonum}-vim-plugins = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description vim-plugins
|
||||
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
|
||||
Summary: Emacs plugins for LLVM
|
||||
Group: Productivity/Text/Editors
|
||||
Requires: emacs
|
||||
Conflicts: otherproviders(emacs-llvm)
|
||||
Provides: emacs-llvm
|
||||
Requires: llvm%{_sonum}-emacs-plugins = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description emacs-plugins
|
||||
This package contains Emacs plugins for LLVM like syntax highlighting.
|
||||
|
||||
%package -n python-clang
|
||||
Summary: Python 2 bindings for libclang
|
||||
Group: Development/Languages/Python
|
||||
Requires: %{name}-clang-devel = %{version}
|
||||
Requires: python
|
||||
BuildArch: noarch
|
||||
This package is a dummy package that depends on the version of
|
||||
llvm-emacs-plugins that openSUSE currently supports. Packages that
|
||||
don't require a specific LLVM version should depend on this.
|
||||
|
||||
|
||||
%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
|
||||
%setup -q -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -b 50 -a 51 -n llvm-%{version}.src
|
||||
%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
|
||||
# Not needed
|
||||
|
||||
%build
|
||||
# Disable c/xx/flags as the clang fails to build with hardening right now
|
||||
#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
|
||||
echo "This is a dummy package to provide a dependency on the system compiler." > README
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
# 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
|
||||
# Not needed
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/bugpoint
|
||||
%{_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}
|
||||
%doc README
|
||||
|
||||
%files -n clang
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/c-index-test
|
||||
%{_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}/
|
||||
%doc README
|
||||
|
||||
%files -n clang-checker
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/scan-build
|
||||
%{_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.*
|
||||
%doc README
|
||||
|
||||
%files gold
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/LLVMgold.so
|
||||
%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
|
||||
%doc README
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%{_bindir}/llvm-config
|
||||
%{_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}
|
||||
%doc README
|
||||
|
||||
%files -n clang-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libclang*.so
|
||||
%{_includedir}/clang/
|
||||
%{_includedir}/clang-c/
|
||||
%dir %{_datadir}/clang/
|
||||
%{_datadir}/clang/cmake
|
||||
%{_libdir}/cmake/clang
|
||||
%{_docdir}/llvm-clang/
|
||||
%doc README
|
||||
|
||||
%files LTO-devel
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libLTO.so
|
||||
%doc README
|
||||
|
||||
%files emacs-plugins
|
||||
%defattr(-,root,root,-)
|
||||
%dir %{_datadir}/clang/
|
||||
%{_datadir}/clang/clang-format.el
|
||||
%doc README
|
||||
|
||||
%files vim-plugins
|
||||
%defattr(-,root,root,-)
|
||||
%doc utils/vim/README.vim
|
||||
%{_datadir}/vim/
|
||||
%dir %{_datadir}/clang/
|
||||
%{_datadir}/clang/clang-format.py
|
||||
%doc README
|
||||
|
||||
%files -n python-clang
|
||||
%ifarch arm x86_64
|
||||
|
||||
%files -n lldb
|
||||
%defattr(-,root,root)
|
||||
%{python_sitelib}/clang/
|
||||
%{python_sitelib}/clang/__init__.py
|
||||
%{python_sitelib}/clang/cindex.py
|
||||
%{python_sitelib}/clang/enumerations.py
|
||||
%{_docdir}/python-clang/
|
||||
%doc README
|
||||
|
||||
%files -n lldb-devel
|
||||
%defattr(-,root,root)
|
||||
%doc README
|
||||
|
||||
%files -n python-lldb
|
||||
%defattr(-,root,root)
|
||||
%doc README
|
||||
|
||||
%endif
|
||||
|
||||
%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