Merge branch 'f15' into el6
This commit is contained in:
commit
0f60d91ef4
|
@ -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__");
|
||||||
|
|
|
@ -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
|
|
@ -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
|
104
llvm.spec
104
llvm.spec
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
Name: llvm
|
Name: llvm
|
||||||
Version: 2.8
|
Version: 2.8
|
||||||
Release: 10%{?dist}
|
Release: 14%{?dist}
|
||||||
Summary: The Low Level Virtual Machine
|
Summary: The Low Level Virtual Machine
|
||||||
|
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
|
@ -20,18 +20,27 @@ License: NCSA
|
||||||
URL: http://llvm.org/
|
URL: http://llvm.org/
|
||||||
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz
|
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz
|
||||||
Source1: http://llvm.org/releases/%{version}/clang-%{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
|
# Data files should be installed with timestamps preserved
|
||||||
Patch0: llvm-2.6-timestamp.patch
|
Patch0: llvm-2.6-timestamp.patch
|
||||||
# rename alignof -> alignOf for C++0x support
|
# rename alignof -> alignOf for C++0x support
|
||||||
# http://llvm.org/bugs/show_bug.cgi?id=8423
|
# http://llvm.org/bugs/show_bug.cgi?id=8423
|
||||||
Patch1: llvm-2.8-alignOf.patch
|
Patch1: llvm-2.8-alignOf.patch
|
||||||
Patch2: clang-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: bison
|
||||||
BuildRequires: chrpath
|
BuildRequires: chrpath
|
||||||
BuildRequires: flex
|
BuildRequires: flex
|
||||||
BuildRequires: gcc-c++ >= 3.4
|
BuildRequires: gcc-c++ >= 3.4
|
||||||
BuildRequires: groff
|
BuildRequires: groff
|
||||||
|
BuildRequires: libffi-devel
|
||||||
BuildRequires: libtool-ltdl-devel
|
BuildRequires: libtool-ltdl-devel
|
||||||
%if %{with ocaml}
|
%if %{with ocaml}
|
||||||
BuildRequires: ocaml-ocamldoc
|
BuildRequires: ocaml-ocamldoc
|
||||||
|
@ -60,9 +69,12 @@ functionality.
|
||||||
Summary: Libraries and header files for LLVM
|
Summary: Libraries and header files for LLVM
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
Requires: %{name} = %{version}-%{release}
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Requires: libffi-devel
|
||||||
Requires: libstdc++-devel >= 3.4
|
Requires: libstdc++-devel >= 3.4
|
||||||
Provides: llvm-static = %{version}-%{release}
|
Provides: llvm-static = %{version}-%{release}
|
||||||
|
|
||||||
|
Requires(posttrans): /usr/sbin/alternatives
|
||||||
|
Requires(postun): /usr/sbin/alternatives
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
This package contains library and header files needed to develop new
|
This package contains library and header files needed to develop new
|
||||||
|
@ -206,12 +218,19 @@ HTML documentation for LLVM's OCaml binding.
|
||||||
%setup -q -n llvm-%{version} -a1 %{?_with_gcc:-a2}
|
%setup -q -n llvm-%{version} -a1 %{?_with_gcc:-a2}
|
||||||
mv clang-%{version} tools/clang
|
mv clang-%{version} tools/clang
|
||||||
|
|
||||||
|
# llvm patches
|
||||||
%patch0 -p1 -b .timestamp
|
%patch0 -p1 -b .timestamp
|
||||||
%patch1 -p0 -b .alignOf
|
%patch1 -p0 -b .alignOf
|
||||||
|
%patch3 -p1 -b .avx
|
||||||
|
|
||||||
|
# clang patches
|
||||||
pushd tools/clang
|
pushd tools/clang
|
||||||
%patch2 -p0 -b .alignOf
|
%patch2 -p0 -b .alignOf
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
# Also disable AVX tests
|
||||||
|
rm test/CodeGen/X86/avx*.ll
|
||||||
|
|
||||||
# Encoding fix
|
# Encoding fix
|
||||||
#(cd tools/clang/docs && \
|
#(cd tools/clang/docs && \
|
||||||
# iconv -f ISO88591 -t UTF8 BlockImplementation.txt \
|
# iconv -f ISO88591 -t UTF8 BlockImplementation.txt \
|
||||||
|
@ -231,18 +250,21 @@ popd
|
||||||
--disable-assertions \
|
--disable-assertions \
|
||||||
--enable-debug-runtime \
|
--enable-debug-runtime \
|
||||||
--enable-jit \
|
--enable-jit \
|
||||||
|
--enable-libffi \
|
||||||
--enable-shared \
|
--enable-shared \
|
||||||
--with-c-include-dirs=%{_includedir}:$(find %{_prefix}/lib/gcc/*/* \
|
--with-c-include-dirs=%{_includedir}:$(find %{_prefix}/lib/gcc/*/* \
|
||||||
-maxdepth 0 -type d)/include \
|
-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-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \
|
||||||
--with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} \
|
--with-cxx-include-arch=%{_target_cpu}-%{_vendor}-%{_os} \
|
||||||
--with-cxx-include-32bit-dir=32
|
|
||||||
|
|
||||||
# FIXME file this
|
# FIXME file this
|
||||||
# configure does not properly specify libdir
|
# configure does not properly specify libdir
|
||||||
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
|
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
|
||||||
|
|
||||||
make %{_smp_mflags} \
|
make %{_smp_mflags} REQUIRES_RTTI=1 \
|
||||||
%ifarch ppc
|
%ifarch ppc
|
||||||
OPTIMIZE_OPTION="%{optflags} -fno-var-tracking-assignments"
|
OPTIMIZE_OPTION="%{optflags} -fno-var-tracking-assignments"
|
||||||
%else
|
%else
|
||||||
|
@ -250,17 +272,21 @@ make %{_smp_mflags} \
|
||||||
%endif
|
%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
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
make install DESTDIR=%{buildroot} \
|
make install DESTDIR=%{buildroot} \
|
||||||
PROJ_docsdir=/moredocs
|
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
|
# Create ld.so.conf.d entry
|
||||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
||||||
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
|
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
|
||||||
|
@ -310,7 +336,7 @@ rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
|
||||||
|
|
||||||
# FIXME file this bug
|
# FIXME file this bug
|
||||||
sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
|
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
|
chmod -x %{buildroot}%{_libdir}/%{name}/*.a
|
||||||
|
|
||||||
|
@ -319,6 +345,24 @@ chmod -x %{buildroot}%{_libdir}/%{name}/*.a
|
||||||
find examples -name 'Makefile' | xargs -0r rm -f
|
find examples -name 'Makefile' | xargs -0r rm -f
|
||||||
|
|
||||||
|
|
||||||
|
%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
|
||||||
|
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%post libs -p /sbin/ldconfig
|
||||||
%post -n clang -p /sbin/ldconfig
|
%post -n clang -p /sbin/ldconfig
|
||||||
|
|
||||||
|
@ -327,13 +371,32 @@ find examples -name 'Makefile' | xargs -0r rm -f
|
||||||
%postun -n clang -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
|
%files
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%doc CREDITS.TXT LICENSE.TXT README.txt
|
%doc CREDITS.TXT LICENSE.TXT README.txt
|
||||||
%{_bindir}/bugpoint
|
%{_bindir}/bugpoint
|
||||||
%{_bindir}/llc
|
%{_bindir}/llc
|
||||||
%{_bindir}/lli
|
%{_bindir}/lli
|
||||||
%exclude %{_bindir}/llvm-config
|
%exclude %{_bindir}/llvm-config-%{__isa_bits}
|
||||||
%{_bindir}/llvm*
|
%{_bindir}/llvm*
|
||||||
%{_bindir}/opt
|
%{_bindir}/opt
|
||||||
%exclude %{_mandir}/man1/clang.1.*
|
%exclude %{_mandir}/man1/clang.1.*
|
||||||
|
@ -342,7 +405,7 @@ find examples -name 'Makefile' | xargs -0r rm -f
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
%{_bindir}/llvm-config
|
%{_bindir}/llvm-config-%{__isa_bits}
|
||||||
%{_includedir}/%{name}
|
%{_includedir}/%{name}
|
||||||
%{_includedir}/%{name}-c
|
%{_includedir}/%{name}-c
|
||||||
%{_libdir}/%{name}/*.a
|
%{_libdir}/%{name}/*.a
|
||||||
|
@ -412,6 +475,21 @@ find examples -name 'Makefile' | xargs -0r rm -f
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Nov 12 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-14
|
||||||
|
- 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
|
||||||
|
- 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
|
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.8-10
|
||||||
- Don't include test logs; breaks multilib (# 666195)
|
- Don't include test logs; breaks multilib (# 666195)
|
||||||
- Split shared libraries into separate subpackage
|
- Split shared libraries into separate subpackage
|
||||||
|
|
Loading…
Reference in New Issue