diff --git a/.gitignore b/.gitignore index 00ec31b..ec79ea7 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-data-install-preserve-timestamps.patch b/0001-data-install-preserve-timestamps.patch new file mode 100644 index 0000000..56e41fc --- /dev/null +++ b/0001-data-install-preserve-timestamps.patch @@ -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 + diff --git a/0002-linker-flags-speedup-memory.patch b/0002-linker-flags-speedup-memory.patch new file mode 100644 index 0000000..a5fb7dc --- /dev/null +++ b/0002-linker-flags-speedup-memory.patch @@ -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) diff --git a/clang-2.8-alignOf.patch b/clang-2.8-alignOf.patch deleted file mode 100644 index 77aa521..0000000 --- a/clang-2.8-alignOf.patch +++ /dev/null @@ -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()); -+ llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(size, llvm::alignOf()); - UnresolvedLookupExpr *E = new (Mem) UnresolvedLookupExpr(EmptyShell()); - E->HasExplicitTemplateArgs = NumTemplateArgs != 0; - return E; -@@ -261,7 +261,7 @@ - if (NumResults) { - Results = static_cast( - C.Allocate(sizeof(DeclAccessPair) * NumResults, -- llvm::alignof())); -+ llvm::alignOf())); - memcpy(Results, &*Begin.getIterator(), - NumResults * sizeof(DeclAccessPair)); - } -@@ -737,7 +737,7 @@ - if (TemplateArgs) - size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs); - -- void *Mem = C.Allocate(size, llvm::alignof()); -+ void *Mem = C.Allocate(size, llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(size, llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(size, llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(size, llvm::alignOf()); - 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()); -+ llvm::alignOf()); - 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()); -+ void *Mem = Context.Allocate(Size, llvm::alignOf()); - 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()); -+ void *Mem = Context.Allocate(Size, llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(Size, llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(Size, llvm::alignOf()); - 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()); -+ void *Mem = Context.Allocate(Size, llvm::alignOf()); - 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()); -+ void *Mem = Context.Allocate(Size, llvm::alignOf()); - 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()); -+ llvm::alignOf()); - 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()); -+ llvm::alignOf()); - 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()); -+ void *Mem = C.Allocate(Size, llvm::alignOf()); - 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()); -+ llvm::alignOf()); - 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(Alloc.Allocate(sizeof(Token)*ResultToks.size(), -- llvm::alignof())); -+ llvm::alignOf())); - if (NumTokens) - memcpy(Res, &ResultToks[0], NumTokens*sizeof(Token)); - Tokens = Res; diff --git a/llvm-2.6-timestamp.patch b/llvm-2.6-timestamp.patch deleted file mode 100644 index ab0979e..0000000 --- a/llvm-2.6-timestamp.patch +++ /dev/null @@ -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 diff --git a/llvm-2.8-alignOf.patch b/llvm-2.8-alignOf.patch deleted file mode 100644 index d48c10c..0000000 --- a/llvm-2.8-alignOf.patch +++ /dev/null @@ -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(sizeof(StringMapEntry))+ - KeyLength+1; -- unsigned Alignment = alignof(); -+ unsigned Alignment = alignOf(); - - StringMapEntry *NewItem = - static_cast(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() returns the alignment of an int. -+/// alignOf() returns the alignment of an int. - template --static inline unsigned alignof() { return AlignOf::Alignment; } -+static inline unsigned alignOf() { return AlignOf::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()); -+ Ptr = Allocator.AlignPtr(Ptr, alignOf()); - if (Ptr + sizeof(T) <= End) - reinterpret_cast(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( - ileAllocator.Allocate(sizeof(IndexListEntry), -- alignof())); -+ alignOf())); - - new (entry) IndexListEntry(mi, index); - diff --git a/llvm-2.8-disable-avx.patch b/llvm-2.8-disable-avx.patch deleted file mode 100644 index 4bdfb58..0000000 --- a/llvm-2.8-disable-avx.patch +++ /dev/null @@ -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__"); - diff --git a/llvm.spec b/llvm.spec index f279884..f088013 100644 --- a/llvm.spec +++ b/llvm.spec @@ -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 - 2.8-14 +* Fri Jan 17 2014 Dave Airlie 3.4-3 +- bump nvr for lldb on ppc disable + +* Tue Jan 14 2014 Dave Airlie 3.4-2 +- add ncurses-devel BR and Requires + +* Tue Jan 14 2014 Dave Airlie 3.4-1 +- update to llvm 3.4 release + +* Fri Dec 20 2013 Jan Vcelak 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 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 3.3-2 +- fix build failure, missing __clear_cache() declaration + +* Tue Nov 12 2013 Jan Vcelak 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 - 3.3-0.10.rc3 +- Rebuild for gcc 4.8.2 + +* Sat Sep 14 2013 Petr Pisar - 3.3-0.9.rc3 +- Rebuild for OCaml 4.01.0. + +* Sat Aug 03 2013 Fedora Release Engineering - 3.3-0.8.rc3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 17 2013 Petr Pisar - 3.3-0.7.rc3 +- Perl 5.18 rebuild + +* Mon Jun 10 2013 Adam Jackson 3.3-0.6.rc3 +- llvm 3.3-rc3 + +* Tue Jun 04 2013 Adam Jackson 3.3-0.5.rc2 +- Rebuild for gcc 4.8.1 + +* Tue May 28 2013 Adam Jackson 3.3-0.4.rc2 +- llvm 3.3-rc2 + +* Sat May 18 2013 Peter Robinson 3.3-0.3.20130507 +- Enable aarch64 target + +* Tue May 07 2013 Adam Jackson 3.3-0.1.20130507 +- Bump to LLVM 3.3svn +- Enable s390 backend + +* Mon May 06 2013 Adam Jackson 3.2-6 +- Only build codegen backends for arches that actually exist in Fedora + +* Wed May 01 2013 Adam Jackson 3.2-5 +- Tweak ld flags for memory usage and performance + +* Thu Apr 4 2013 Jens Petersen - 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 - 3.2-3 +- add a hack to clang defaulting arm to hardfloat + +* Fri Mar 08 2013 Adam Jackson 3.2-2 +- Update R600 patches +- Move static libs to -static subpackage +- Prep for F18 backport + +* Wed Feb 13 2013 Jens Petersen - 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 - 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 - 3.1-15 +- move lvm-config manpage to devel subpackage (#855882) +- pod2man moved to perl-podlators in F19 + +* Fri Jan 25 2013 Kalev Lember - 3.1-14 +- Rebuilt for GCC 4.8.0 + +* Wed Jan 23 2013 Jens Petersen - 3.1-13 +- fix some docs pod markup errors to build with new perl-Pod-Parser + +* Mon Oct 29 2012 Richard W.M. Jones - 3.1-12 +- Rebuild for OCaml 4.00.1. + +* Mon Sep 24 2012 Michel Salim - 3.1-11 +- Actually build against GCC 4.7.2 + +* Mon Sep 24 2012 Michel Salim - 3.1-10 +- Rebuild for GCC 4.7.2 + +* Tue Aug 14 2012 Dan Horák - 3.1-9 +- Apply clang patches only when clang is being built + +* Thu Jul 19 2012 Fedora Release Engineering - 3.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jul 13 2012 Peter Robinson - 3.1-7 +- Rename patch as it actually fixes Haskell + +* Thu Jul 12 2012 Peter Robinson - 3.1-6 +- Add patch to fix building OCAML on ARM + +* Wed Jul 4 2012 Michel Salim - 3.1-5 +- Actually set runtime dependency on libstdc++ 4.7.1 + +* Mon Jul 2 2012 Peter Robinson - 3.1-4 +- Rebuild for new libstdc++ bump + +* Sun Jun 10 2012 Richard W.M. Jones - 3.1-3 +- Rebuild for OCaml 4.00.0. + +* Fri Jun 8 2012 Michel Salim - 3.1-2 +- Rebuild for ocaml 4.00.0 beta + +* Sun Jun 03 2012 Dave Airlie 3.1-1 +- rebase to 3.1 + add r600 patches from Tom Stellar + +* Fri May 25 2012 Peter Robinson - 3.0-13 +- Add compiler build options for ARM hardfp + +* Sun May 6 2012 Peter Robinson - 3.0-12 +- Bump build + +* Fri Mar 30 2012 Michel Alexandre Salim - 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 - 3.0-10 +- Build without -ftree-pre as a workaround for clang segfaulting + on x86_64 (#791365) + +* Sat Mar 17 2012 Karsten Hopp 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 - 3.0-8 +- Apply upstream patch to properly link LLVMgold against LTO + +* Fri Feb 24 2012 Michel Salim - 3.0-7 +- Build LLVMgold plugin on supported architectures + +* Tue Feb 7 2012 Michel Salim - 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 - 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 - 3.0-4 +- Rebuild for OCaml 3.12.1. + +* Wed Dec 14 2011 Adam Jackson 3.0-3 +- Also ExcludeArch: ppc* in RHEL + +* Tue Dec 13 2011 Adam Jackson 3.0-2 +- ExcludeArch: s390* in RHEL since the native backend has disappeared in 3.0 + +* Sun Dec 11 2011 Michel Salim - 3.0-1 +- Update to final 3.0 release + +* Mon Dec 05 2011 Adam Jackson 3.0-0.2.rc3 +- RHEL customization: disable clang, --enable-targets=host + +* Fri Nov 11 2011 Michel Salim - 3.0-0.1.rc3 +- Update to 3.0rc3 + +* Tue Oct 11 2011 Dan Horák - 2.9-5 +- don't fail the build on failing tests on ppc(64) and s390(x) + +* Fri Sep 30 2011 Michel Salim - 2.9-4 +- Apply upstream patch for Operator.h C++0x incompatibility (# 737365) + +* Sat Aug 6 2011 Michel Salim - 2.9-3 +- Disable LLVM test suite on ppc64 architecture (# 728604) +- Disable clang test suite on ppc* architectures (-) + +* Wed Aug 3 2011 Michel Salim - 2.9-2 - Add runtime dependency of -devel on libffi-devel -* Tue Oct 11 2011 Dan Horák - 2.8-13 -- don't fail the build on failing tests on s390(x) - -* Tue Aug 2 2011 Michel Salim - 2.8-12 +* Mon Aug 1 2011 Michel Salim - 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 2.8-11 -- llvm-2.8-disable-avx.patch: Disable AVX code generation. (#699896) +* Tue May 31 2011 Karsten Hopp 2.9-0.4.rc2 +- enable ppc64 build -* Thu Mar 17 2011 Michel Salim - 2.8-10 -- Don't include test logs; breaks multilib (# 666195) +* Fri Mar 25 2011 Michel Salim - 2.9-0.3.rc2 +- Update to 2.9rc2 + +* Thu Mar 17 2011 Michel Salim - 2.9-0.2.rc1 - Split shared libraries into separate subpackage - -* Thu Mar 17 2011 Michel Salim - 2.8-9 -- clang++: fix platform-specific include dirs (# 680644) - -* Thu Mar 17 2011 Michel Salim - 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 - 2.9-0.1.rc1 +- Update to 2.9rc1 + * Tue Feb 08 2011 Fedora Release Engineering - 2.8-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild diff --git a/sources b/sources index 93dbdb8..5ac19b5 100644 --- a/sources +++ b/sources @@ -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