Compare commits

...

29 Commits
master ... f14

Author SHA1 Message Date
Dan Horák 6129e7e67d Merge branch 'f15' into f14 2011-10-11 14:21:51 +02:00
Dan Horák 12ed181598 don't fail the build on failing tests on s390(x) 2011-10-11 14:21:13 +02:00
Michel Alexandre Salim 999840d5d3 Merge branch 'f15' into f14 2011-08-02 17:26:55 +02:00
Michel Alexandre Salim eaf6624384 - Disable AVX tests, else they fail since AVX is now disabled
- Remove clang 2.9 patch retrieved when cherry-picking F-16/Rawhide
  commit
2011-08-02 17:00:59 +02:00
Michel Alexandre Salim 66fa449574 Fix incorrect platform-specific include path on i686 2011-08-02 14:55:32 +02:00
Michel Alexandre Salim 687c13802d 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
2011-08-02 14:54:32 +02:00
Adam Jackson f63f528480 disable avx code generation 2011-04-26 12:01:42 -04:00
Michel Alexandre Salim 36a472ae79 Merge branch 'f15' into f14 2011-03-17 19:32:16 +01:00
Michel Alexandre Salim 2fc8420d0f Move ldconfig triggers to the subpackages containing .so files 2011-03-17 19:03:50 +01:00
Michel Alexandre Salim c3dcc7c01f Don't include test logs; breaks multilib (# 666195)
Split shared libraries into separate subpackage
2011-03-17 18:24:51 +01:00
Michel Alexandre Salim 9eb64e881c Don't include test logs; breaks multilib (# 666195) 2011-03-17 17:36:08 +01:00
Michel Alexandre Salim 664c65bee1 Merge branch 'f15' into f14 2011-03-17 14:40:42 +01:00
Michel Alexandre Salim 1db435d4d6 clang++: fix platform-specific include dirs (# 680644) 2011-03-17 14:34:26 +01:00
Michel Alexandre Salim 88425e38fa Don't include 'bits' in the include path override 2011-03-17 13:57:46 +01:00
Michel Alexandre Salim b32ca652bd Fix 32bit-dir and 64-dir parameters: should be relative, not absolute 2011-03-17 13:19:24 +01:00
Michel Alexandre Salim f8523b8fdb clang++: also search for platform-specific include files (# 680644) 2011-03-17 12:47:48 +01:00
Michel Alexandre Salim 775aace187 Merge branch 'master' into f14 2010-11-27 17:39:58 +01:00
Michel Alexandre Salim 67f86fc612 remove obsoleted patch 2010-11-27 17:39:46 +01:00
Michel Alexandre Salim 06a9a2d0a1 Merge branch 'master' into f14 2010-11-27 16:19:13 +01:00
Michel Alexandre Salim 76c023983a Merge branch 'master' into f14 2010-11-12 16:29:19 +01:00
Michel Alexandre Salim bbe1677554 Merge branch 'master' into f14
Conflicts:
	llvm.spec
2010-11-11 16:51:56 +01:00
Michel Alexandre Salim 2be1863ab3 Bump release number for rebuild 2010-10-15 00:05:07 +02:00
Michel Alexandre Salim 63bfe803a9 macro-ify include overrides 2010-10-15 00:01:05 +02:00
Michel Alexandre Salim b3327249f3 Re-add default include directory 2010-10-14 23:58:09 +02:00
Michel Alexandre Salim ae1ead319b - Add correct C include directory at compile time (# 641500)
- Upstream patch so -g flag is not passed to assembler (# 605266)
2010-10-14 23:26:34 +02:00
Jesse Keating d492cae130 - Rebuilt for gcc bug 634757 2010-09-29 22:56:01 -07:00
Michel Alexandre Salim 83f26e99a6 Merge branch 'master' into f14 2010-09-20 15:01:30 +02:00
Dennis Gilmore 79d29c4d2b Merge branch 'master' into f14
Conflicts:
	llvm.spec
2010-09-15 09:32:59 -05:00
David Malcolm 57df0cc54a recompiling .py files against Python 2.7 (rhbz#623332) 2010-08-11 17:46:43 -04:00
4 changed files with 207 additions and 20 deletions

View File

@ -0,0 +1,67 @@
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__");

9
llvm-Config-config.h Normal file
View File

@ -0,0 +1,9 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "config-32.h"
#elif __WORDSIZE == 64
#include "config-64.h"
#else
#error "Unknown word size"
#endif

View File

@ -0,0 +1,9 @@
#include <bits/wordsize.h>
#if __WORDSIZE == 32
#include "llvm-config-32.h"
#elif __WORDSIZE == 64
#include "llvm-config-64.h"
#else
#error "Unknown word size"
#endif

142
llvm.spec
View File

@ -12,7 +12,7 @@
Name: llvm
Version: 2.8
Release: 7%{?dist}
Release: 13%{?dist}
Summary: The Low Level Virtual Machine
Group: Development/Languages
@ -20,18 +20,27 @@ License: NCSA
URL: http://llvm.org/
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz
Source1: http://llvm.org/releases/%{version}/clang-%{version}.tgz
# 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
BuildRequires: bison
BuildRequires: chrpath
BuildRequires: flex
BuildRequires: gcc-c++ >= 3.4
BuildRequires: groff
BuildRequires: libffi-devel
BuildRequires: libtool-ltdl-devel
%if %{with ocaml}
BuildRequires: ocaml-ocamldoc
@ -42,6 +51,7 @@ BuildRequires: dejagnu tcl-devel python
%if 0%{?_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
@ -62,6 +72,8 @@ Requires: %{name} = %{version}-%{release}
Requires: libstdc++-devel >= 3.4
Provides: llvm-static = %{version}-%{release}
Requires(posttrans): /usr/sbin/alternatives
Requires(postun): /usr/sbin/alternatives
%description devel
This package contains library and header files needed to develop new
@ -81,12 +93,21 @@ Obsoletes: %{name}-doc < %{version}-%{release}
Documentation for the LLVM compiler infrastructure.
%package libs
Summary: LLVM shared libraries
Group: System Environment/Libraries
%description libs
Shared libraries for the LLVM compiler infrastructure.
%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: gcc-c++
%description -n clang
clang: noun
@ -196,12 +217,19 @@ HTML documentation for LLVM's OCaml binding.
%setup -q -n llvm-%{version} -a1 %{?_with_gcc:-a2}
mv clang-%{version} tools/clang
# 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 \
@ -221,17 +249,21 @@ popd
--disable-assertions \
--enable-debug-runtime \
--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 \
%endif
--with-cxx-include-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \
--with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os}
--with-cxx-include-arch=%{_target_cpu}-%{_vendor}-%{_os} \
# 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} \
make %{_smp_mflags} REQUIRES_RTTI=1 \
%ifarch ppc
OPTIMIZE_OPTION="%{optflags} -fno-var-tracking-assignments"
%else
@ -239,17 +271,21 @@ make %{_smp_mflags} \
%endif
%check
# no current unexpected failures. Use || true if they recur to force ignore
make check 2>&1 | tee llvm-testlog.txt
(cd tools/clang && make test 2>&1) | tee clang-testlog.txt
%install
rm -rf %{buildroot}
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
mv llvm-config.h llvm-config-%{__isa_bits}.h
cp -p %{SOURCE3} llvm-config.h
popd
# Create ld.so.conf.d entry
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
@ -299,7 +335,7 @@ 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
%{buildroot}%{_bindir}/llvm-config-%{__isa_bits}
chmod -x %{buildroot}%{_libdir}/%{name}/*.a
@ -308,41 +344,85 @@ chmod -x %{buildroot}%{_libdir}/%{name}/*.a
find examples -name 'Makefile' | xargs -0r rm -f
%post -p /sbin/ldconfig
%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}
%endif
%postun -p /sbin/ldconfig
%post libs -p /sbin/ldconfig
%post -n clang -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%postun -n clang -p /sbin/ldconfig
%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
alternatives \
--install \
%{_bindir}/llvm-config \
llvm-config \
%{_bindir}/llvm-config-%{__isa_bits} \
%{__isa_bits}
%postun devel
if [ $1 -eq 0 ]; then
alternatives --remove llvm-config \
%{_bindir}/llvm-config-%{__isa_bits}
fi
exit 0
%files
%defattr(-,root,root,-)
%doc CREDITS.TXT LICENSE.TXT README.txt llvm-testlog.txt
%doc CREDITS.TXT LICENSE.TXT README.txt
%{_bindir}/bugpoint
%{_bindir}/llc
%{_bindir}/lli
%exclude %{_bindir}/llvm-config
%exclude %{_bindir}/llvm-config-%{__isa_bits}
%{_bindir}/llvm*
%{_bindir}/opt
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf
%dir %{_libdir}/llvm
%{_libdir}/llvm/*.so
%exclude %{_mandir}/man1/clang.1.*
%exclude %{_mandir}/man1/llvmg??.1.*
%doc %{_mandir}/man1/*.1.*
%files devel
%defattr(-,root,root,-)
%{_bindir}/llvm-config
%{_bindir}/llvm-config-%{__isa_bits}
%{_includedir}/%{name}
%{_includedir}/%{name}-c
%{_libdir}/%{name}/*.a
%files libs
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf
%dir %{_libdir}/%{name}
%exclude %{_libdir}/%{name}/libclang.so
%{_libdir}/%{name}/*.so
%files -n clang
%defattr(-,root,root,-)
%doc clang-docs/* clang-testlog.txt
%doc clang-docs/*
%{_bindir}/clang*
%{_bindir}/c-index-test
%{_bindir}/tblgen
%{_libdir}/%{name}/libclang.so
%{_prefix}/lib/clang
%doc %{_mandir}/man1/clang.1.*
@ -394,6 +474,28 @@ find examples -name 'Makefile' | xargs -0r rm -f
%changelog
* 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
- 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)
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-10
- Don't include test logs; breaks multilib (# 666195)
- 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
- clang++: also search for platform-specific include files (# 680644)
* 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