Merge branch 'master' into el6

This commit is contained in:
Dave Johansen 2014-01-20 20:58:33 -07:00
commit 4a13f67dc5
9 changed files with 594 additions and 517 deletions

7
.gitignore vendored
View File

@ -1,2 +1,5 @@
/llvm-2.8.tgz
/clang-2.8.tgz
/cfe-*.src.tar.gz
/compiler-rt-*.src.tar.gz
/lldb-*.src.tar.gz
/llvm-*.src.tar.gz
/clang-3.4.src.tar.gz

View File

@ -0,0 +1,22 @@
Preserve timestamps when installing data files
---
Makefile.rules | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.rules b/Makefile.rules
index f0c542b..0ff92bb 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -773,7 +773,7 @@ BCCompile.CXX = $(LLVMCXX) $(CPP.Flags) $(CXX.Flags) $(CXXFLAGS) $(CPPFLAGS) \
ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755
ScriptInstall = $(INSTALL) -m 0755
-DataInstall = $(INSTALL) -m 0644
+DataInstall = $(INSTALL) -p -m 0644
# When compiling under Mingw/Cygwin, the tblgen tool expects Windows
# paths. In this case, the SYSPATH function (defined in
--
1.8.3.1

View File

@ -0,0 +1,12 @@
diff -up llvm-3.4/tools/llvm-shlib/Makefile.orig llvm-3.4/tools/llvm-shlib/Makefile
--- llvm-3.4/tools/llvm-shlib/Makefile.orig 2013-11-01 00:35:00.000000000 +1000
+++ llvm-3.4/tools/llvm-shlib/Makefile 2014-01-14 10:13:20.069858909 +1000
@@ -75,7 +75,7 @@ endif
ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU GNU/kFreeBSD))
# Don't allow unresolved symbols.
- LLVMLibsOptions += -Wl,--no-undefined
+ LLVMLibsOptions += -Wl,--no-undefined -Wl,-Bsymbolic
endif
ifeq ($(HOST_OS),SunOS)

View File

@ -1,199 +0,0 @@
Index: lib/Basic/IdentifierTable.cpp
===================================================================
--- lib/Basic/IdentifierTable.cpp (revision 117774)
+++ lib/Basic/IdentifierTable.cpp (revision 117775)
@@ -390,7 +390,7 @@
unsigned Size = sizeof(MultiKeywordSelector) + nKeys*sizeof(IdentifierInfo *);
MultiKeywordSelector *SI =
(MultiKeywordSelector*)SelTabImpl.Allocator.Allocate(Size,
- llvm::alignof<MultiKeywordSelector>());
+ llvm::alignOf<MultiKeywordSelector>());
new (SI) MultiKeywordSelector(nKeys, IIV);
SelTabImpl.Table.InsertNode(SI, InsertPos);
return Selector(SI);
Index: lib/AST/ExprCXX.cpp
===================================================================
--- lib/AST/ExprCXX.cpp (revision 117774)
+++ lib/AST/ExprCXX.cpp (revision 117775)
@@ -233,7 +233,7 @@
if (NumTemplateArgs != 0)
size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedLookupExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedLookupExpr>());
UnresolvedLookupExpr *E = new (Mem) UnresolvedLookupExpr(EmptyShell());
E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
return E;
@@ -261,7 +261,7 @@
if (NumResults) {
Results = static_cast<DeclAccessPair *>(
C.Allocate(sizeof(DeclAccessPair) * NumResults,
- llvm::alignof<DeclAccessPair>()));
+ llvm::alignOf<DeclAccessPair>()));
memcpy(Results, &*Begin.getIterator(),
NumResults * sizeof(DeclAccessPair));
}
@@ -737,7 +737,7 @@
if (TemplateArgs)
size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
return new (Mem) CXXDependentScopeMemberExpr(C, Base, BaseType,
IsArrow, OperatorLoc,
Qualifier, QualifierRange,
@@ -756,7 +756,7 @@
std::size_t size = sizeof(CXXDependentScopeMemberExpr) +
ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
CXXDependentScopeMemberExpr *E
= new (Mem) CXXDependentScopeMemberExpr(C, 0, QualType(),
0, SourceLocation(), 0,
@@ -812,7 +812,7 @@
if (TemplateArgs)
size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
return new (Mem) UnresolvedMemberExpr(C,
Dependent ? C.DependentTy : C.OverloadTy,
Dependent, HasUnresolvedUsing, Base, BaseType,
@@ -826,7 +826,7 @@
if (NumTemplateArgs != 0)
size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
+ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
UnresolvedMemberExpr *E = new (Mem) UnresolvedMemberExpr(EmptyShell());
E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
return E;
Index: lib/AST/DeclObjC.cpp
===================================================================
--- lib/AST/DeclObjC.cpp (revision 117774)
+++ lib/AST/DeclObjC.cpp (revision 117775)
@@ -711,7 +711,7 @@
void ObjCClassDecl::setClassList(ASTContext &C, ObjCInterfaceDecl*const*List,
const SourceLocation *Locs, unsigned Num) {
ForwardDecls = (ObjCClassRef*) C.Allocate(sizeof(ObjCClassRef)*Num,
- llvm::alignof<ObjCClassRef>());
+ llvm::alignOf<ObjCClassRef>());
for (unsigned i = 0; i < Num; ++i)
new (&ForwardDecls[i]) ObjCClassRef(List[i], Locs[i]);
Index: lib/AST/Stmt.cpp
===================================================================
--- lib/AST/Stmt.cpp (revision 117774)
+++ lib/AST/Stmt.cpp (revision 117775)
@@ -416,7 +416,7 @@
Stmt *atFinallyStmt) {
unsigned Size = sizeof(ObjCAtTryStmt) +
(1 + NumCatchStmts + (atFinallyStmt != 0)) * sizeof(Stmt *);
- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
return new (Mem) ObjCAtTryStmt(atTryLoc, atTryStmt, CatchStmts, NumCatchStmts,
atFinallyStmt);
}
@@ -426,7 +426,7 @@
bool HasFinally) {
unsigned Size = sizeof(ObjCAtTryStmt) +
(1 + NumCatchStmts + HasFinally) * sizeof(Stmt *);
- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
return new (Mem) ObjCAtTryStmt(EmptyShell(), NumCatchStmts, HasFinally);
}
@@ -448,7 +448,7 @@
std::size_t Size = sizeof(CXXTryStmt);
Size += ((numHandlers + 1) * sizeof(Stmt));
- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
+ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
return new (Mem) CXXTryStmt(tryLoc, tryBlock, handlers, numHandlers);
}
@@ -457,7 +457,7 @@
std::size_t Size = sizeof(CXXTryStmt);
Size += ((numHandlers + 1) * sizeof(Stmt));
- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
+ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
return new (Mem) CXXTryStmt(Empty, numHandlers);
}
Index: lib/AST/Expr.cpp
===================================================================
--- lib/AST/Expr.cpp (revision 117774)
+++ lib/AST/Expr.cpp (revision 117775)
@@ -257,7 +257,7 @@
if (TemplateArgs)
Size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
return new (Mem) DeclRefExpr(Qualifier, QualifierRange, D, NameInfo,
TemplateArgs, T);
}
@@ -271,7 +271,7 @@
if (NumTemplateArgs)
Size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
+ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
return new (Mem) DeclRefExpr(EmptyShell());
}
@@ -432,7 +432,7 @@
// any concatenated string tokens.
void *Mem = C.Allocate(sizeof(StringLiteral)+
sizeof(SourceLocation)*(NumStrs-1),
- llvm::alignof<StringLiteral>());
+ llvm::alignOf<StringLiteral>());
StringLiteral *SL = new (Mem) StringLiteral(Ty);
// OPTIMIZE: could allocate this appended to the StringLiteral.
@@ -452,7 +452,7 @@
StringLiteral *StringLiteral::CreateEmpty(ASTContext &C, unsigned NumStrs) {
void *Mem = C.Allocate(sizeof(StringLiteral)+
sizeof(SourceLocation)*(NumStrs-1),
- llvm::alignof<StringLiteral>());
+ llvm::alignOf<StringLiteral>());
StringLiteral *SL = new (Mem) StringLiteral(QualType());
SL->StrData = 0;
SL->ByteLength = 0;
@@ -714,7 +714,7 @@
if (targs)
Size += ExplicitTemplateArgumentList::sizeFor(*targs);
- void *Mem = C.Allocate(Size, llvm::alignof<MemberExpr>());
+ void *Mem = C.Allocate(Size, llvm::alignOf<MemberExpr>());
MemberExpr *E = new (Mem) MemberExpr(base, isarrow, memberdecl, nameinfo, ty);
if (hasQualOrFound) {
Index: lib/AST/DeclCXX.cpp
===================================================================
--- lib/AST/DeclCXX.cpp (revision 117774)
+++ lib/AST/DeclCXX.cpp (revision 117775)
@@ -1057,7 +1057,7 @@
unsigned NumIndices) {
void *Mem = Context.Allocate(sizeof(CXXBaseOrMemberInitializer) +
sizeof(VarDecl *) * NumIndices,
- llvm::alignof<CXXBaseOrMemberInitializer>());
+ llvm::alignOf<CXXBaseOrMemberInitializer>());
return new (Mem) CXXBaseOrMemberInitializer(Context, Member, MemberLoc,
L, Init, R, Indices, NumIndices);
}
Index: lib/Lex/TokenLexer.cpp
===================================================================
--- lib/Lex/TokenLexer.cpp (revision 117774)
+++ lib/Lex/TokenLexer.cpp (revision 117775)
@@ -287,7 +287,7 @@
llvm::BumpPtrAllocator &Alloc = PP.getPreprocessorAllocator();
Token *Res =
static_cast<Token *>(Alloc.Allocate(sizeof(Token)*ResultToks.size(),
- llvm::alignof<Token>()));
+ llvm::alignOf<Token>()));
if (NumTokens)
memcpy(Res, &ResultToks[0], NumTokens*sizeof(Token));
Tokens = Res;

View File

@ -1,11 +0,0 @@
--- llvm-2.6/Makefile.rules.timestamp 2009-08-19 18:04:44.000000000 -0400
+++ llvm-2.6/Makefile.rules 2009-09-09 02:10:38.287389725 -0400
@@ -672,7 +672,7 @@
ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755
ScriptInstall = $(INSTALL) -m 0755
-DataInstall = $(INSTALL) -m 0644
+DataInstall = $(INSTALL) -p -m 0644
# When compiling under Mingw/Cygwin, the tblgen tool expects Windows
# paths. In this case, the SYSPATH function (defined in

View File

@ -1,59 +0,0 @@
Index: include/llvm/ADT/StringMap.h
===================================================================
--- include/llvm/ADT/StringMap.h (revision 117773)
+++ include/llvm/ADT/StringMap.h (revision 117774)
@@ -167,7 +167,7 @@
unsigned AllocSize = static_cast<unsigned>(sizeof(StringMapEntry))+
KeyLength+1;
- unsigned Alignment = alignof<StringMapEntry>();
+ unsigned Alignment = alignOf<StringMapEntry>();
StringMapEntry *NewItem =
static_cast<StringMapEntry*>(Allocator.Allocate(AllocSize,Alignment));
Index: include/llvm/Support/AlignOf.h
===================================================================
--- include/llvm/Support/AlignOf.h (revision 117773)
+++ include/llvm/Support/AlignOf.h (revision 117774)
@@ -49,12 +49,12 @@
};
-/// alignof - A templated function that returns the mininum alignment of
+/// alignOf - A templated function that returns the mininum alignment of
/// of a type. This provides no extra functionality beyond the AlignOf
/// class besides some cosmetic cleanliness. Example usage:
-/// alignof<int>() returns the alignment of an int.
+/// alignOf<int>() returns the alignment of an int.
template <typename T>
-static inline unsigned alignof() { return AlignOf<T>::Alignment; }
+static inline unsigned alignOf() { return AlignOf<T>::Alignment; }
} // end namespace llvm
#endif
Index: include/llvm/Support/Allocator.h
===================================================================
--- include/llvm/Support/Allocator.h (revision 117773)
+++ include/llvm/Support/Allocator.h (revision 117774)
@@ -201,7 +201,7 @@
char *End = Slab == Allocator.CurSlab ? Allocator.CurPtr :
(char *)Slab + Slab->Size;
for (char *Ptr = (char*)(Slab+1); Ptr < End; Ptr += sizeof(T)) {
- Ptr = Allocator.AlignPtr(Ptr, alignof<T>());
+ Ptr = Allocator.AlignPtr(Ptr, alignOf<T>());
if (Ptr + sizeof(T) <= End)
reinterpret_cast<T*>(Ptr)->~T();
}
Index: include/llvm/CodeGen/SlotIndexes.h
===================================================================
--- include/llvm/CodeGen/SlotIndexes.h (revision 117773)
+++ include/llvm/CodeGen/SlotIndexes.h (revision 117774)
@@ -393,7 +393,7 @@
IndexListEntry *entry =
static_cast<IndexListEntry*>(
ileAllocator.Allocate(sizeof(IndexListEntry),
- alignof<IndexListEntry>()));
+ alignOf<IndexListEntry>()));
new (entry) IndexListEntry(mi, index);

View File

@ -1,67 +0,0 @@
diff -up llvm-2.8/lib/Target/X86/X86Subtarget.cpp.jx llvm-2.8/lib/Target/X86/X86Subtarget.cpp
--- llvm-2.8/lib/Target/X86/X86Subtarget.cpp.jx 2010-08-21 13:21:11.000000000 -0400
+++ llvm-2.8/lib/Target/X86/X86Subtarget.cpp 2011-04-26 16:02:52.238855091 -0400
@@ -262,7 +262,7 @@ void X86Subtarget::AutoDetectSubtargetFe
HasCLMUL = IsIntel && ((ECX >> 1) & 0x1);
HasFMA3 = IsIntel && ((ECX >> 12) & 0x1);
- HasAVX = ((ECX >> 28) & 0x1);
+ HasAVX = 0;
HasAES = IsIntel && ((ECX >> 25) & 0x1);
if (IsIntel || IsAMD) {
diff -up llvm-2.8/lib/Target/X86/X86Subtarget.h.jx llvm-2.8/lib/Target/X86/X86Subtarget.h
--- llvm-2.8/lib/Target/X86/X86Subtarget.h.jx 2010-09-02 19:03:46.000000000 -0400
+++ llvm-2.8/lib/Target/X86/X86Subtarget.h 2011-04-26 16:01:23.336855019 -0400
@@ -150,7 +150,7 @@ public:
bool hasSSE4A() const { return HasSSE4A; }
bool has3DNow() const { return X863DNowLevel >= ThreeDNow; }
bool has3DNowA() const { return X863DNowLevel >= ThreeDNowA; }
- bool hasAVX() const { return HasAVX; }
+ bool hasAVX() const { return false; }
bool hasAES() const { return HasAES; }
bool hasCLMUL() const { return HasCLMUL; }
bool hasFMA3() const { return HasFMA3; }
diff -up llvm-2.8/lib/Target/X86/X86.td.jx llvm-2.8/lib/Target/X86/X86.td
--- llvm-2.8/lib/Target/X86/X86.td.jx 2010-08-11 20:55:32.000000000 -0400
+++ llvm-2.8/lib/Target/X86/X86.td 2011-04-26 16:02:21.127854790 -0400
@@ -116,7 +116,8 @@ def : Proc<"westmere", [FeatureS
FeatureFastUAMem, FeatureAES]>;
// Sandy Bridge does not have FMA
// FIXME: Wikipedia says it does... it should have AES as well.
-def : Proc<"sandybridge", [FeatureSSE42, FeatureAVX, Feature64Bit]>;
+// FEDORA: AVX is broken in 2.8
+def : Proc<"sandybridge", [FeatureSSE42, Feature64Bit]>;
def : Proc<"k6", [FeatureMMX]>;
def : Proc<"k6-2", [FeatureMMX, Feature3DNow]>;
diff -up llvm-2.8/tools/clang/lib/Basic/Targets.cpp.jx llvm-2.8/tools/clang/lib/Basic/Targets.cpp
--- llvm-2.8/tools/clang/lib/Basic/Targets.cpp.jx 2010-08-31 12:44:54.000000000 -0400
+++ llvm-2.8/tools/clang/lib/Basic/Targets.cpp 2011-04-26 16:03:40.768855658 -0400
@@ -1048,8 +1048,6 @@ bool X86TargetInfo::setFeatureEnabled(ll
Features["3dnow"] = Features["3dnowa"] = true;
else if (Name == "aes")
Features["aes"] = true;
- else if (Name == "avx")
- Features["avx"] = true;
} else {
if (Name == "mmx")
Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] =
@@ -1101,7 +1099,6 @@ void X86TargetInfo::HandleTargetFeatures
// FIXME: Not sure yet how to treat AVX in regard to SSE levels.
// For now let it be enabled together with other SSE levels.
if (Features[i].substr(1) == "avx") {
- HasAVX = true;
continue;
}
@@ -1146,9 +1143,6 @@ void X86TargetInfo::getTargetDefines(con
if (HasAES)
Builder.defineMacro("__AES__");
- if (HasAVX)
- Builder.defineMacro("__AVX__");
-
// Target properties.
Builder.defineMacro("__LITTLE_ENDIAN__");

728
llvm.spec
View File

@ -1,61 +1,87 @@
# Build options:
#
# --with doxygen
# The doxygen docs are HUGE, so they are not built by default.
# Components skipped by default:
%bcond_with doxygen
%ifarch s390 s390x sparc64
# No ocaml on these arches
%bcond_with ocaml
%else
# Components built by default:
%bcond_without clang
%bcond_without crt
# Components enabled if supported by target arch:
%ifnarch s390 s390x sparc64
%bcond_without ocaml
%else
%bcond_with ocaml
%endif
%ifarch %ix86 x86_64
%bcond_without gold
%else
%bcond_with gold
%endif
# ppc64 fails to build lldb upstream
%ifnarch ppc ppc64
%bcond_without lldb
%else
%bcond_with lldb
%endif
# Documentation install path
%if 0%{?fedora} < 20
%global llvmdocdir() %{_docdir}/%1-%{version}
%else
%global llvmdocdir() %{_docdir}/%1
%endif
#global prerel rc3
%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}%{?prerel:/%{prerel}}
Name: llvm
Version: 2.8
Release: 14%{?dist}
Version: 3.4
Release: 3%{?dist}
Summary: The Low Level Virtual Machine
Group: Development/Languages
License: NCSA
URL: http://llvm.org/
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz
Source1: http://llvm.org/releases/%{version}/clang-%{version}.tgz
# source archives
Source0: %{downloadurl}/llvm-%{version}%{?prerel}.src.tar.gz
Source1: %{downloadurl}/clang-%{version}%{?prerel}.src.tar.gz
Source2: %{downloadurl}/compiler-rt-%{version}%{?prerel}.src.tar.gz
%if %{with lldb}
Source3: %{downloadurl}/lldb-%{version}%{?prerel}.src.tar.gz
%endif
# multilib fixes
Source2: llvm-Config-config.h
Source3: llvm-Config-llvm-config.h
# Data files should be installed with timestamps preserved
Patch0: llvm-2.6-timestamp.patch
# rename alignof -> alignOf for C++0x support
# http://llvm.org/bugs/show_bug.cgi?id=8423
Patch1: llvm-2.8-alignOf.patch
Patch2: clang-2.8-alignOf.patch
# Disable broken AVX code generation
# http://llvm.org/bugs/show_bug.cgi?id=9508
Patch3: llvm-2.8-disable-avx.patch
Source10: llvm-Config-config.h
Source11: llvm-Config-llvm-config.h
# patches
Patch1: 0001-data-install-preserve-timestamps.patch
Patch2: 0002-linker-flags-speedup-memory.patch
BuildRequires: bison
BuildRequires: chrpath
BuildRequires: flex
BuildRequires: gcc-c++ >= 3.4
BuildRequires: groff
BuildRequires: libffi-devel
BuildRequires: libtool-ltdl-devel
%if %{with gold}
BuildRequires: binutils-devel
%endif
%if %{with ocaml}
BuildRequires: ocaml-ocamldoc
%endif
BuildRequires: ncurses-devel
BuildRequires: zip
# for DejaGNU test suite
BuildRequires: dejagnu tcl-devel python
# for doxygen documentation
%if 0%{?_with_doxygen}
%if %{with doxygen}
BuildRequires: doxygen graphviz
%endif
Requires: llvm-libs = %{version}-%{release}
# LLVM is not supported on PPC64
# http://llvm.org/bugs/show_bug.cgi?id=3729
ExcludeArch: ppc64
# pod2man moved to perl-podlators in F19
BuildRequires: %{_bindir}/pod2man
Requires: llvm-libs%{?_isa} = %{version}-%{release}
%description
LLVM is a compiler infrastructure designed for compile-time,
@ -68,11 +94,10 @@ functionality.
%package devel
Summary: Libraries and header files for LLVM
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: libffi-devel
Requires: libstdc++-devel >= 3.4
Provides: llvm-static = %{version}-%{release}
Requires: ncurses-devel
Requires(posttrans): /usr/sbin/alternatives
Requires(postun): /usr/sbin/alternatives
@ -86,8 +111,7 @@ Summary: Documentation for LLVM
Group: Documentation
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
# might seem redundant, but needed to kill off the old arch-ed -doc
# subpackage
# might seem redundant, but needed to kill off the old arch-ed -doc subpackage
Obsoletes: %{name}-doc < %{version}-%{release}
%description doc
@ -102,13 +126,26 @@ Group: System Environment/Libraries
Shared libraries for the LLVM compiler infrastructure.
%package static
Summary: LLVM static libraries
Group: Development/Languages
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
%description static
Static libraries for the LLVM compiler infrastructure. Not recommended
for general consumption.
%if %{with clang}
%package -n clang
Summary: A C language family front-end for LLVM
License: NCSA
Group: Development/Languages
Requires: llvm = %{version}-%{release}
# clang requires gcc; clang++ gcc-c++
Requires: gcc-c++
Requires: llvm%{?_isa} = %{version}-%{release}
# clang requires gcc, clang++ requires libstdc++-devel
Requires: libstdc++-devel
# remove clang-doc pacakge
Obsoletes: clang-doc < %{version}-%{release}
%description -n clang
clang: noun
@ -124,7 +161,7 @@ as libraries and designed to be loosely-coupled and extensible.
%package -n clang-devel
Summary: Header files for clang
Group: Development/Languages
Requires: clang = %{version}-%{release}
Requires: clang%{?_isa} = %{version}-%{release}
%description -n clang-devel
This package contains header files for the Clang compiler.
@ -134,6 +171,7 @@ This package contains header files for the Clang compiler.
Summary: A source code analysis framework
License: NCSA
Group: Development/Languages
BuildArch: noarch
Requires: clang = %{version}-%{release}
# not picked up automatically since files are currently not instaled
# in standard Python hierarchies yet
@ -145,18 +183,34 @@ framework and a standalone tool that finds bugs in C and Objective-C
programs. The standalone tool is invoked from the command-line, and is
intended to run in tandem with a build of a project or code base.
%endif
%package -n clang-doc
Summary: Documentation for Clang
Group: Documentation
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
%if %{with lldb}
%package -n lldb
Summary: Next generation high-performance debugger
License: NCSA
Group: Development/Languages
Requires: llvm%{?_isa} = %{version}-%{release}
BuildRequires: swig
BuildRequires: libedit-devel
BuildRequires: python-devel
%description -n clang-doc
Documentation for the Clang compiler front-end.
%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.
%package -n lldb-devel
Summary: Header files for LLDB
Group: Development/Languages
Requires: lldb%{?_isa} = %{version}-%{release}
%if 0%{?_with_doxygen}
%description -n lldb-devel
This package contains header files for the LLDB debugger.
%endif
%if %{with doxygen}
%package apidoc
Summary: API documentation for LLVM
Group: Development/Languages
@ -168,23 +222,24 @@ Requires: %{name}-doc = %{version}-%{release}
API documentation for the LLVM compiler infrastructure.
%if %{with clang}
%package -n clang-apidoc
Summary: API documentation for Clang
Group: Development/Languages
BuildArch: noarch
Requires: clang-doc = %{version}-%{release}
%description -n clang-apidoc
API documentation for the Clang compiler.
%endif
%endif
%if %{with ocaml}
%package ocaml
Summary: OCaml binding for LLVM
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ocaml-runtime
%description ocaml
@ -194,8 +249,8 @@ OCaml binding for LLVM.
%package ocaml-devel
Summary: Development files for %{name}-ocaml
Group: Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
Requires: %{name}-ocaml = %{version}-%{release}
Requires: %{name}-static%{?_isa} = %{version}-%{release}
Requires: %{name}-ocaml%{?_isa} = %{version}-%{release}
Requires: ocaml
%description ocaml-devel
@ -215,76 +270,104 @@ HTML documentation for LLVM's OCaml binding.
%prep
%setup -q -n llvm-%{version} -a1 %{?_with_gcc:-a2}
%setup -q %{?with_clang:-a1} %{?with_crt:-a2} %{?with_lldb:-a3}
rm -rf tools/clang tools/lldb projects/compiler-rt
%if %{with clang}
mv clang-%{version} tools/clang
%endif
%if %{with crt}
mv compiler-rt-%{version} projects/compiler-rt
%endif
%if %{with lldb}
mv lldb-%{version} tools/lldb
%endif
# llvm patches
%patch0 -p1 -b .timestamp
%patch1 -p0 -b .alignOf
%patch3 -p1 -b .avx
# clang patches
pushd tools/clang
%patch2 -p0 -b .alignOf
popd
# Also disable AVX tests
rm test/CodeGen/X86/avx*.ll
# Encoding fix
#(cd tools/clang/docs && \
# iconv -f ISO88591 -t UTF8 BlockImplementation.txt \
# -o BlockImplementation.txt)
%patch1 -p1
%patch2 -p1
# fix library paths
sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' ./configure
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config.in
sed -i 's|/lib\>|/%{_lib}/%{name}|g' tools/llvm-config/llvm-config.cpp
%build
# Disabling assertions now, rec. by pure and needed for OpenGTL
# TESTFIX no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3801
# clang is lovely and all, but fedora builds with gcc
export CC=gcc
export CXX=c++
%configure \
--prefix=%{_prefix} \
--libdir=%{_libdir}/%{name} \
--datadir=%{_libdir}/%{name} \
%if 0%{?_with_doxygen}
--enable-doxygen \
%endif
--disable-polly \
--disable-libcpp \
--enable-cxx11 \
--enable-clang-arcmt \
--enable-clang-static-analyzer \
--enable-clang-rewriter \
--enable-optimized \
--disable-profiling \
--disable-assertions \
--disable-werror \
--disable-expensive-checks \
--enable-debug-runtime \
--enable-keep-symbols \
--enable-jit \
--enable-libffi \
--enable-shared \
--with-c-include-dirs=%{_includedir}:$(find %{_prefix}/lib/gcc/*/* \
-maxdepth 0 -type d)/include \
%if %{__isa_bits} == 64
--with-cxx-include-32bit-dir=32 \
--enable-docs \
%if %{with doxygen}
--enable-doxygen \
%else
--disable-doxygen \
%endif
--with-cxx-include-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \
--with-cxx-include-arch=%{_target_cpu}-%{_vendor}-%{_os} \
--enable-threads \
--enable-pthreads \
--enable-zlib \
--enable-pic \
--enable-shared \
--disable-embed-stdcxx \
--enable-timestamps \
--enable-backtraces \
--enable-targets=x86,powerpc,arm,aarch64,cpp,nvptx,systemz \
--enable-experimental-targets=R600 \
%if %{with ocaml}
--enable-bindings=ocaml \
%else
--enable-bindings=none \
%endif
--enable-libffi \
--enable-ltdl-install \
\
%ifarch armv7hl armv7l
--with-cpu=cortex-a8 \
--with-tune=cortex-a8 \
--with-arch=armv7-a \
--with-float=hard \
--with-fpu=vfpv3-d16 \
--with-abi=aapcs-linux \
%endif
\
%if %{with gold}
--with-binutils-include=%{_includedir} \
%endif
--with-c-include-dirs=%{_includedir}:$(echo %{_prefix}/lib/gcc/%{_target_cpu}*/*/include) \
--with-optimize-option=-O3
# FIXME file this
# configure does not properly specify libdir
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
make %{_smp_mflags} REQUIRES_RTTI=1 \
make %{_smp_mflags} REQUIRES_RTTI=1 VERBOSE=1 \
%ifarch ppc
OPTIMIZE_OPTION="%{optflags} -fno-var-tracking-assignments"
OPTIMIZE_OPTION="%{optflags} -UPPC"
%else
OPTIMIZE_OPTION="%{optflags}"
%endif
%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot} \
PROJ_docsdir=/moredocs
make install DESTDIR=%{buildroot} PROJ_docsdir=/moredocs
# multilib fixes
mv %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}}
pushd %{buildroot}%{_includedir}/llvm/Config
mv config.h config-%{__isa_bits}.h
cp -p %{SOURCE2} config.h
cp -p %{SOURCE10} config.h
mv llvm-config.h llvm-config-%{__isa_bits}.h
cp -p %{SOURCE3} llvm-config.h
cp -p %{SOURCE11} llvm-config.h
popd
# Create ld.so.conf.d entry
@ -293,88 +376,145 @@ cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
%{_libdir}/llvm
EOF
%if %{with clang}
# Static analyzer not installed by default:
# http://clang-analyzer.llvm.org/installation#OtherPlatforms
mkdir -p %{buildroot}%{_libdir}/clang-analyzer
# create launchers
# scan-view
mkdir -p %{buildroot}%{_libexecdir}/clang-analyzer/
cp -pr tools/clang/tools/scan-view %{buildroot}%{_libexecdir}/clang-analyzer/
# scan-build
mkdir -p %{buildroot}%{_libexecdir}/clang-analyzer/scan-build
for file in c++-analyzer ccc-analyzer scan-build scanview.css sorttable.js; do
cp -p tools/clang/tools/scan-build/$file %{buildroot}%{_libexecdir}/clang-analyzer/scan-build/
done
# scan-build manual page
mkdir -p %{buildroot}%{_mandir}/man1
cp -p tools/clang/tools/scan-build/scan-build.1 %{buildroot}%{_mandir}/man1/
# scan-build requires clang in search path
ln -s ../../../bin/clang %{buildroot}%{_libexecdir}/clang-analyzer/scan-build/clang
# launchers in /bin
for f in scan-{build,view}; do
ln -s %{_libdir}/clang-analyzer/$f/$f %{buildroot}%{_bindir}/$f
ln -s %{_libexecdir}/clang-analyzer/$f/$f %{buildroot}%{_bindir}/$f
done
(cd tools/clang/tools && cp -pr scan-{build,view} \
%{buildroot}%{_libdir}/clang-analyzer/)
# Move documentation back to build directory
#
mv %{buildroot}/moredocs .
rm -f moredocs/*.tar.gz
rm -f moredocs/ocamldoc/html/*.tar.gz
# and separate the apidoc
%if 0%{?_with_doxygen}
mv moredocs/html/doxygen apidoc
mv tools/clang/docs/doxygen/html clang-apidoc
%endif
# And prepare Clang documentation
#
mkdir clang-docs
for f in LICENSE.TXT NOTES.txt README.txt TODO.txt; do
ln tools/clang/$f clang-docs/
done
rm -rf tools/clang/docs/{doxygen*,Makefile*,*.graffle,tools}
#find %%{buildroot} -name .dir -print0 | xargs -0r rm -f
file %{buildroot}/%{_bindir}/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
file %{buildroot}/%{_libdir}/llvm/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
#chrpath -d %%{buildroot}/%%{_libexecdir}/clang-cc
# Get rid of erroneously installed example files.
rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
# FIXME file this bug
sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
%{buildroot}%{_bindir}/llvm-config-%{__isa_bits}
# remove executable bit from static libraries
find %{buildroot}%{_libdir} -name "*.a" -type f -print0 | xargs -0 chmod -x
chmod -x %{buildroot}%{_libdir}/%{name}/*.a
# Install man page for LLDB
%if %{with lldb}
mkdir -p %{buildroot}%{_mandir}/man1
cp tools/lldb/docs/lldb.1 %{buildroot}%{_mandir}/man1/
%endif
# remove documentation makefiles:
# they require the build directory to work
find examples -name 'Makefile' | xargs -0r rm -f
# Install documentation documentation
find %{buildroot}/moredocs/ -name "*.tar.gz" -print0 | xargs -0 rm -rf
mkdir -p %{buildroot}%{_docdir}
# llvm
mkdir -p %{buildroot}%{llvmdocdir llvm}
for f in CREDITS.TXT LICENSE.TXT README.txt; do
cp $f %{buildroot}%{llvmdocdir llvm}
done
# llvm-doc
mkdir -p %{buildroot}%{llvmdocdir llvm-doc}
cp -ar examples %{buildroot}%{llvmdocdir llvm-doc}/examples
find %{buildroot}%{llvmdocdir llvm-doc} -name Makefile -o -name CMakeLists.txt -o -name LLVMBuild.txt -print0 | xargs -0 rm -f
# llvm-apidoc
%if %{with doxygen}
mv %{buildroot}/moredocs/html/doxygen %{buildroot}%{llvmdocdir llvm-apidoc}
%endif
# llvm-ocaml-doc
%if %{with ocaml}
mv %{buildroot}/moredocs/ocamldoc/html %{buildroot}%{llvmdocdir llvm-ocaml-doc}
%endif
# clang
%if %{with clang}
mkdir -p %{buildroot}%{llvmdocdir clang}
for f in LICENSE.TXT NOTES.txt README.txt CODE_OWNERS.TXT; do
cp tools/clang/$f %{buildroot}%{llvmdocdir clang}/
done
%endif
# clang-apidoc
%if %{with clang}
%if %{with doxygen}
cp -ar tools/clang/docs/doxygen/html %{buildroot}%{llvmdocdir clang-apidoc}
%endif
%endif
# lldb
%if %{with lldb}
mkdir -p %{buildroot}%{llvmdocdir lldb}
cp tools/lldb/LICENSE.TXT %{buildroot}%{llvmdocdir lldb}/
%endif
# delete the rest of installed documentation (because it's bad)
rm -rf %{buildroot}/moredocs
# install CMake modules
mkdir -p %{buildroot}%{_datadir}/llvm/cmake/
cp -p cmake/modules/*.cmake %{buildroot}%{_datadir}/llvm/cmake/
# remove RPATHs
file %{buildroot}/%{_bindir}/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
file %{buildroot}/%{_libdir}/llvm/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
%check
# the Koji build server does not seem to have enough RAM
# for the default 16 threads
make check LIT_ARGS="-s -v -j8" \
%ifarch s390 s390x
|| :
%else
%{nil}
%endif
make -C tools/clang/test \
%ifarch s390 s390x
|| :
%else
%{nil}
# the || : is wrong, i know, but the git snaps fail to make check due to
# broken makefiles in the doc dirs.
# LLVM test suite failing on ARM, PPC64 and s390(x)
mkdir -p %{buildroot}%{llvmdocdir llvm-devel}
make -k check LIT_ARGS="-v -j4" | tee %{buildroot}%{llvmdocdir llvm-devel}/testlog-%{_arch}.txt || :
%if %{with clang}
# clang test suite failing on PPC and s390(x)
# FIXME:
# unexpected failures on all platforms with GCC 4.7.0.
# capture logs
mkdir -p %{buildroot}%{llvmdocdir clang-devel}
make -C tools/clang/test TESTARGS="-v -j4" | tee %{buildroot}%{llvmdocdir clang-devel}/testlog-%{_arch}.txt || :
%endif
%post libs -p /sbin/ldconfig
%post -n clang -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%if %{with clang}
%post -n clang -p /sbin/ldconfig
%postun -n clang -p /sbin/ldconfig
%endif
%if %{with lldb}
%post -n lldb -p /sbin/ldconfig
%postun -n lldb -p /sbin/ldconfig
%endif
%posttrans devel
# link llvm-config to the platform-specific file;
# use ISA bits as priority so that 64-bit is preferred
# over 32-bit if both are installed
#
# XXX ew alternatives though. seems like it'd be better to install a
# shell script that cases on $(arch) and calls out to the appropriate
# llvm-config-%d.
alternatives \
--install \
%{_bindir}/llvm-config \
@ -392,65 +532,98 @@ exit 0
%files
%defattr(-,root,root,-)
%doc CREDITS.TXT LICENSE.TXT README.txt
%doc %{llvmdocdir llvm}/
%dir %{_datadir}/llvm
%{_bindir}/bugpoint
%{_bindir}/llc
%{_bindir}/lli
%{_bindir}/lli-child-target
%exclude %{_bindir}/llvm-config-%{__isa_bits}
%{_bindir}/llvm*
%{_bindir}/macho-dump
%{_bindir}/opt
%if %{with clang}
%exclude %{_mandir}/man1/clang.1.*
%exclude %{_mandir}/man1/llvmg??.1.*
%exclude %{_mandir}/man1/scan-build.1.*
%endif
%if %{with lldb}
%exclude %{_mandir}/man1/lldb.1.*
%endif
%doc %{_mandir}/man1/*.1.*
%files devel
%defattr(-,root,root,-)
%doc %{llvmdocdir llvm-devel}/
%{_bindir}/llvm-config-%{__isa_bits}
%{_includedir}/%{name}
%{_includedir}/%{name}-c
%{_libdir}/%{name}/*.a
%{_datadir}/llvm/cmake
%files libs
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf
%dir %{_libdir}/%{name}
%if %{with clang}
%exclude %{_libdir}/%{name}/libclang.so
%endif
%if %{with lldb}
%exclude %{_libdir}/%{name}/liblldb.so
%endif
%{_libdir}/%{name}/*.so
%files static
%defattr(-,root,root,-)
%{_libdir}/%{name}/*.a
%if %{with clang}
%files -n clang
%defattr(-,root,root,-)
%doc clang-docs/*
%doc %{llvmdocdir clang}/
%{_bindir}/clang*
%{_bindir}/c-index-test
%{_bindir}/tblgen
%{_libdir}/%{name}/libclang.so
%{_prefix}/lib/clang
%doc %{_mandir}/man1/clang.1.*
%files -n clang-devel
%defattr(-,root,root,-)
%doc %{llvmdocdir clang-devel}/
%{_includedir}/clang
%{_includedir}/clang-c
%files -n clang-analyzer
%defattr(-,root,root,-)
%{_mandir}/man1/scan-build.1.*
%{_bindir}/scan-build
%{_bindir}/scan-view
%{_libdir}/clang-analyzer
%{_libexecdir}/clang-analyzer
%endif
%files -n clang-doc
%if %{with lldb}
%files -n lldb
%defattr(-,root,root,-)
%doc tools/clang/docs/*
%doc %{llvmdocdir lldb}/
%{_bindir}/lldb
%{_bindir}/lldb-platform
%{_libdir}/%{name}/liblldb.so
%doc %{_mandir}/man1/lldb.1.*
%files -n lldb-devel
%defattr(-,root,root,-)
%{_includedir}/lldb
%endif
%files doc
%defattr(-,root,root,-)
%doc examples moredocs/html
%doc %{llvmdocdir llvm-doc}/
%if %{with ocaml}
%files ocaml
%defattr(-,root,root,-)
%{_libdir}/ocaml/*.cma
%{_libdir}/ocaml/*.cmi
%{_libdir}/ocaml/dll*.so
%{_libdir}/ocaml/META.llvm*
%files ocaml-devel
%defattr(-,root,root,-)
@ -460,46 +633,247 @@ exit 0
%files ocaml-doc
%defattr(-,root,root,-)
%doc moredocs/ocamldoc/html/*
%doc %{llvmdocdir llvm-ocaml-doc}/
%endif
%if 0%{?_with_doxygen}
%if %{with doxygen}
%files apidoc
%defattr(-,root,root,-)
%doc apidoc/*
%doc %{llvmdocdir llvm-apidoc}/
%if %{with clang}
%files -n clang-apidoc
%defattr(-,root,root,-)
%doc clang-apidoc/*
%doc %{llvmdocdir clang-apidoc}/
%endif
%endif
%changelog
* Sat Nov 12 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-14
* Fri Jan 17 2014 Dave Airlie <airlied@redhat.com> 3.4-3
- bump nvr for lldb on ppc disable
* Tue Jan 14 2014 Dave Airlie <airlied@redhat.com> 3.4-2
- add ncurses-devel BR and Requires
* Tue Jan 14 2014 Dave Airlie <airlied@redhat.com> 3.4-1
- update to llvm 3.4 release
* Fri Dec 20 2013 Jan Vcelak <jvcelak@fedoraproject.org> 3.3-4
- remove RPATHs
- run ldconfig when installing lldb (#1044431)
- fix: scan-build manual page is installed into wrong location (#1038829)
- fix: requirements for llvm-ocaml-devel packages (#975914)
- add LLVM cmake modules into llvm-devel (#914713)
* Sat Nov 30 2013 Jan Vcelak <jvcelak@fedoraproject.org> 3.3-3
- properly obsolete clang-doc subpackage (#1035268)
- clang-analyzer: fix scan-build search for compiler (#982645)
- clang-analyzer: switch package architecture to noarch
* Thu Nov 21 2013 Jan Vcelak <jvcelak@fedoraproject.org> 3.3-2
- fix build failure, missing __clear_cache() declaration
* Tue Nov 12 2013 Jan Vcelak <jvcelak@fedoraproject.org> 3.3-1
- upgrade to 3.3 release
- add compiler-rt, enables address sanitizer (#949489)
- add LLDB - debugger from LLVM project (#1009406)
- clean up documentation
* Thu Oct 17 2013 Jakub Jelinek <jakub@redhat.com> - 3.3-0.10.rc3
- Rebuild for gcc 4.8.2
* Sat Sep 14 2013 Petr Pisar <ppisar@redhat.com> - 3.3-0.9.rc3
- Rebuild for OCaml 4.01.0.
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3-0.8.rc3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Jul 17 2013 Petr Pisar <ppisar@redhat.com> - 3.3-0.7.rc3
- Perl 5.18 rebuild
* Mon Jun 10 2013 Adam Jackson <ajax@redhat.com> 3.3-0.6.rc3
- llvm 3.3-rc3
* Tue Jun 04 2013 Adam Jackson <ajax@redhat.com> 3.3-0.5.rc2
- Rebuild for gcc 4.8.1
* Tue May 28 2013 Adam Jackson <ajax@redhat.com> 3.3-0.4.rc2
- llvm 3.3-rc2
* Sat May 18 2013 Peter Robinson <pbrobinson@fedoraproject.org> 3.3-0.3.20130507
- Enable aarch64 target
* Tue May 07 2013 Adam Jackson <ajax@redhat.com> 3.3-0.1.20130507
- Bump to LLVM 3.3svn
- Enable s390 backend
* Mon May 06 2013 Adam Jackson <ajax@redhat.com> 3.2-6
- Only build codegen backends for arches that actually exist in Fedora
* Wed May 01 2013 Adam Jackson <ajax@redhat.com> 3.2-5
- Tweak ld flags for memory usage and performance
* Thu Apr 4 2013 Jens Petersen <petersen@redhat.com> - 3.2-4
- fix bogus date for 2.9-0.2.rc1
- drop insufficient llvm-3.2-clang-driver-secondary-arch-triplets.patch
* Sun Mar 31 2013 Dennis Gilmore <dennis@ausil.us> - 3.2-3
- add a hack to clang defaulting arm to hardfloat
* Fri Mar 08 2013 Adam Jackson <ajax@redhat.com> 3.2-2
- Update R600 patches
- Move static libs to -static subpackage
- Prep for F18 backport
* Wed Feb 13 2013 Jens Petersen <petersen@redhat.com> - 3.2-1
- update to 3.2
- update R600 patches to Tom Stellard's git tree
- llvm-fix-ghc.patch is upstream
- llvm-3.1-docs-pod-markup-fixes.patch no longer needed
- add llvm-3.2-clang-driver-secondary-arch-triplets.patch (#803433)
- build with gcc/g++ even if clang is installed
- llvm-config.1 manpage is no longer
* Mon Feb 4 2013 Jens Petersen <petersen@redhat.com> - 3.1-16
- bring back configuration for gcc arch include dir (Yury Zaytsev, #893817)
which was dropped in 3.0-0.1.rc3
- BR gcc and gcc-c++ with gcc_version
* Thu Jan 31 2013 Jens Petersen <petersen@redhat.com> - 3.1-15
- move lvm-config manpage to devel subpackage (#855882)
- pod2man moved to perl-podlators in F19
* Fri Jan 25 2013 Kalev Lember <kalevlember@gmail.com> - 3.1-14
- Rebuilt for GCC 4.8.0
* Wed Jan 23 2013 Jens Petersen <petersen@redhat.com> - 3.1-13
- fix some docs pod markup errors to build with new perl-Pod-Parser
* Mon Oct 29 2012 Richard W.M. Jones <rjones@redhat.com> - 3.1-12
- Rebuild for OCaml 4.00.1.
* Mon Sep 24 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-11
- Actually build against GCC 4.7.2
* Mon Sep 24 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-10
- Rebuild for GCC 4.7.2
* Tue Aug 14 2012 Dan Horák <dan[at]danny.cz> - 3.1-9
- Apply clang patches only when clang is being built
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Jul 13 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.1-7
- Rename patch as it actually fixes Haskell
* Thu Jul 12 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.1-6
- Add patch to fix building OCAML on ARM
* Wed Jul 4 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-5
- Actually set runtime dependency on libstdc++ 4.7.1
* Mon Jul 2 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.1-4
- Rebuild for new libstdc++ bump
* Sun Jun 10 2012 Richard W.M. Jones <rjones@redhat.com> - 3.1-3
- Rebuild for OCaml 4.00.0.
* Fri Jun 8 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-2
- Rebuild for ocaml 4.00.0 beta
* Sun Jun 03 2012 Dave Airlie <airlied@redhat.com> 3.1-1
- rebase to 3.1 + add r600 patches from Tom Stellar
* Fri May 25 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.0-13
- Add compiler build options for ARM hardfp
* Sun May 6 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.0-12
- Bump build
* Fri Mar 30 2012 Michel Alexandre Salim <michel@hermione.localdomain> - 3.0-11
- Replace overly-broad dependency on gcc-c++ with gcc and libstdc++-devel
- Pin clang's dependency on libstdc++-devel to the version used for building
- Standardize on bcond for conditional build options
- Remove /lib from search path, everything is now in /usr/lib*
* Mon Mar 26 2012 Kalev Lember <kalevlember@gmail.com> - 3.0-10
- Build without -ftree-pre as a workaround for clang segfaulting
on x86_64 (#791365)
* Sat Mar 17 2012 Karsten Hopp <karsten@redhat.com> 3.0-9
- undefine PPC on ppc as a temporary workaround for
http://llvm.org/bugs/show_bug.cgi?id=10969 and
RHBZ#769803
* Sat Feb 25 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-8
- Apply upstream patch to properly link LLVMgold against LTO
* Fri Feb 24 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-7
- Build LLVMgold plugin on supported architectures
* Tue Feb 7 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-6
- Make subpackage dependencies arch-specific
- Make LLVM test failures non-fatal on ARM architectures as well (# 770208)
- Save LLVM test log on platforms where it fails
* Sun Feb 5 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-5
- Clang test suite yields unexpected failures with GCC 4.7.0. Make
this non-fatal and save the results
- Multilib fix for harcoded ld search path in ./configure script
* Sat Jan 07 2012 Richard W.M. Jones <rjones@redhat.com> - 3.0-4
- Rebuild for OCaml 3.12.1.
* Wed Dec 14 2011 Adam Jackson <ajax@redhat.com> 3.0-3
- Also ExcludeArch: ppc* in RHEL
* Tue Dec 13 2011 Adam Jackson <ajax@redhat.com> 3.0-2
- ExcludeArch: s390* in RHEL since the native backend has disappeared in 3.0
* Sun Dec 11 2011 Michel Salim <salimma@fedoraproject.org> - 3.0-1
- Update to final 3.0 release
* Mon Dec 05 2011 Adam Jackson <ajax@redhat.com> 3.0-0.2.rc3
- RHEL customization: disable clang, --enable-targets=host
* Fri Nov 11 2011 Michel Salim <salimma@fedoraproject.org> - 3.0-0.1.rc3
- Update to 3.0rc3
* Tue Oct 11 2011 Dan Horák <dan[at]danny.cz> - 2.9-5
- don't fail the build on failing tests on ppc(64) and s390(x)
* Fri Sep 30 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-4
- Apply upstream patch for Operator.h C++0x incompatibility (# 737365)
* Sat Aug 6 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-3
- Disable LLVM test suite on ppc64 architecture (# 728604)
- Disable clang test suite on ppc* architectures (-)
* Wed Aug 3 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-2
- Add runtime dependency of -devel on libffi-devel
* Tue Oct 11 2011 Dan Horák <dan[at]danny.cz> - 2.8-13
- don't fail the build on failing tests on s390(x)
* Tue Aug 2 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-12
* Mon Aug 1 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-1
- Update to 2.9
- Depend on libffi to allow the LLVM interpreter to call external functions
- Build with RTTI enabled, needed by e.g. Rubinius (# 722714)
- Fix multilib installation (# 699416)
- Fix incorrect platform-specific include path on i686
* Tue Apr 26 2011 Adam Jackson <ajax@redhat.com> 2.8-11
- llvm-2.8-disable-avx.patch: Disable AVX code generation. (#699896)
* Tue May 31 2011 Karsten Hopp <karsten@redhat.com> 2.9-0.4.rc2
- enable ppc64 build
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-10
- Don't include test logs; breaks multilib (# 666195)
* Fri Mar 25 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.3.rc2
- Update to 2.9rc2
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.2.rc1
- Split shared libraries into separate subpackage
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-9
- clang++: fix platform-specific include dirs (# 680644)
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-8
- Don't include test logs; breaks multilib (# 666195)
- clang++: also search for platform-specific include files (# 680644)
* Thu Mar 10 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.1.rc1
- Update to 2.9rc1
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

View File

@ -1,2 +1,4 @@
220d361b4d17051ff4bb21c64abe05ba llvm-2.8.tgz
10e14c901fc3728eecbd5b829e011b59 clang-2.8.tgz
b378f1e2c424e03289effc75268d3d2c clang-3.4.src.tar.gz
7ed60a0463f9fdfa20db7109d4624cee lldb-3.4.src.tar.gz
7938353e3a3bda85733a165e7ac4bb84 compiler-rt-3.4.src.tar.gz
46ed668a1ce38985120dbf6344cf6116 llvm-3.4.src.tar.gz