Bump to LLVM 3.3svn

- Enable s390 backend
This commit is contained in:
Adam Jackson 2013-05-08 13:00:08 -04:00
parent 6531bd75df
commit 94fba1fe65
4 changed files with 53 additions and 52 deletions

3
.gitignore vendored
View File

@ -6,3 +6,6 @@
/llvm-3.2.src.tar.gz
/clang-3.2.src.tar.gz
/R600-Mesa-9.1.patch.gz
/clang-20130507.tar.xz
/compiler-rt-20130507.tar.xz
/llvm-20130507.tar.xz

View File

@ -7,7 +7,7 @@ diff -up llvm-3.2.src/tools/llvm-config/llvm-config.cpp.jx llvm-3.2.src/tools/ll
- if (PrintLibs || PrintLibNames || PrintLibFiles) {
+ if (PrintLibs) {
+ OS << "-lLLVM-3.2svn";
+ OS << "-lLLVM-3.3svn";
+ } else if (PrintLibNames || PrintLibFiles) {
// If no components were specified, default to "all".
if (Components.empty())

View File

@ -19,11 +19,15 @@
%bcond_without ocaml
%endif
# compiler-rt not actually working yet
%bcond_with crt
%bcond_without clang
#global prerel rcX
%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}%{?prerel:/%{prerel}}
%global gitdate 20130507
# gold linker support
# arch list from binutils spec
%global gold_arches %ix86 x86_64
@ -34,25 +38,33 @@
%endif
Name: llvm
Version: 3.2
Release: 6%{?dist}
Version: 3.3
Release: 0.2.%{gitdate}%{?dist}
Summary: The Low Level Virtual Machine
Group: Development/Languages
License: NCSA
URL: http://llvm.org/
Source0: %{downloadurl}/llvm-%{version}%{?prerel:%{prerel}}.src.tar.gz
Source1: %{downloadurl}/clang-%{version}%{?prerel:%{prerel}}.src.tar.gz
#Source0: %{downloadurl}/llvm-%{version}%{?prerel:%{prerel}}.src.tar.gz
#Source1: %{downloadurl}/clang-%{version}%{?prerel:%{prerel}}.src.tar.gz
Source0: llvm-%{gitdate}.tar.xz
Source1: clang-%{gitdate}.tar.xz
Source2: compiler-rt-%{gitdate}.tar.xz
# multilib fixes
Source2: llvm-Config-config.h
Source3: llvm-Config-llvm-config.h
Source10: llvm-Config-config.h
Source11: llvm-Config-llvm-config.h
# snapshot scripts
Source100: make-llvm-snapshot.sh
Source101: make-clang-snapshot.sh
Source102: make-compiler-rt-snapshot.sh
# Data files should be installed with timestamps preserved
Patch0: llvm-2.6-timestamp.patch
Patch11: clang-hardfloat-hack.patch
# hack llvm-config to print -lLLVM-3.2svn instead of ALL THE THINGS
# hack llvm-config to print -lLLVM-3.* instead of ALL THE THINGS
#
# you really, really, really want not to use the static libs, otherwise
# if you ever end up with two (static) copies of llvm in the same process
@ -65,13 +77,6 @@ Patch20: llvm-3.2-llvm-config-dso-hack.patch
# hack the link flags for the shared libs for speed and memory usage
Patch21: llvm-3.2-symbolic-shlib.patch
# from http://people.freedesktop.org/~tstellar/llvm/3.2/ as of 7 March 2013
# ref: http://lists.freedesktop.org/archives/mesa-dev/2013-March/035561.html
Patch600: R600-Mesa-9.1.patch.gz
Patch601: 0001-LegalizeDAG-Allow-type-promotion-for-scalar-stores.patch
Patch602: 0002-LegalizeDAG-Allow-promotion-of-scalar-loads.patch
Patch603: 0003-DAGCombiner-Avoid-generating-illegal-vector-INT_TO_F.patch
BuildRequires: bison
BuildRequires: chrpath
BuildRequires: flex
@ -269,10 +274,15 @@ HTML documentation for LLVM's OCaml binding.
%prep
%setup -q -n llvm-%{version}%{?prerel}.src %{?with_clang:-a1}
#setup -q -n llvm-%{version}%{?prerel}.src %{?with_clang:-a1} %{?with_crt:-a2}
%setup -q -n llvm-%{gitdate} %{?with_clang:-a1} %{?with_crt:-a2}
rm -r -f tools/clang
rm -r -f llvm/projects/compiler-rt
%if %{with clang}
mv clang-%{version}%{?prerel}.src tools/clang
mv clang-*/ tools/clang
%endif
%if %{with crt}
mv compiler-rt-*/ projects/compiler-rt
%endif
# llvm patches
@ -285,25 +295,14 @@ mv clang-%{version}%{?prerel}.src tools/clang
#patch20 -p1 -b .orig
%patch21 -p1 -b .orig
%patch600 -p1 -b .orig
%patch601 -p1 -b .orig
%patch602 -p1 -b .orig
%patch603 -p1 -b .orig
# fix ld search path
sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' \
./configure
%build
# Build without -ftree-pre as a workaround for clang segfaulting on x86_64.
# https://bugzilla.redhat.com/show_bug.cgi?id=791365
%global optflags %(echo %{optflags} | sed 's/-O2 /-O2 -fno-tree-pre /')
# building with clang failing
# clang is lovely and all, but fedora builds with gcc
export CC=gcc
export CXX=c++
# Disabling assertions now, rec. by pure and needed for OpenGTL
%configure \
--prefix=%{_prefix} \
--libdir=%{_libdir}/%{name} \
@ -323,11 +322,12 @@ export CXX=c++
%endif
--disable-assertions \
--enable-debug-runtime \
--enable-optimized \
--enable-jit \
--enable-libffi \
--enable-shared \
--with-c-include-dirs=%{_includedir}:$(echo %{_prefix}/lib/gcc/%{_target_cpu}*/%{gcc_version}/include) \
--enable-targets=x86,powerpc,arm,cpp,nvptx \
--enable-targets=x86,powerpc,arm,cpp,nvptx,systemz \
--enable-experimental-targets=R600
# FIXME file this
@ -340,7 +340,7 @@ sed -i 's|ActiveLibDir = ActivePrefix + "/lib"|ActiveLibDir = ActivePrefix + "/%
make %{_smp_mflags} REQUIRES_RTTI=1 VERBOSE=1 \
%ifarch ppc
OPTIMIZE_OPTION="%{optflags} -fno-var-tracking-assignments -UPPC"
OPTIMIZE_OPTION="%{optflags} -UPPC"
%else
OPTIMIZE_OPTION="%{optflags}"
%endif
@ -360,9 +360,9 @@ 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
@ -430,26 +430,18 @@ find examples -name 'Makefile' | xargs -0r rm -f
# the Koji build server does not seem to have enough RAM
# for the default 16 threads
# 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)
make check LIT_ARGS="-v -j4" \
%ifarch %{arm} ppc64 s390 s390x
| tee llvm-testlog-%{_arch}.txt
%else
%{nil}
%endif
make -k check LIT_ARGS="-v -j4" | tee llvm-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
make -C tools/clang/test TESTARGS="-v -j4" \
| tee clang-testlog-%{_arch}.txt
#ifarch ppc ppc64 s390 s390x
# || :
#else
# %{nil}
#endif
make -C tools/clang/test TESTARGS="-v -j4" | tee clang-testlog-%{_arch}.txt || :
%endif
@ -466,6 +458,10 @@ make -C tools/clang/test TESTARGS="-v -j4" \
# 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 \
@ -484,9 +480,6 @@ exit 0
%files
%defattr(-,root,root,-)
%doc CREDITS.TXT LICENSE.TXT README.txt
%ifarch %{arm} ppc64 s390 s390x
%doc llvm-testlog-%{_arch}.txt
%endif
%{_bindir}/bugpoint
%{_bindir}/llc
%{_bindir}/lli
@ -501,6 +494,7 @@ exit 0
%files devel
%defattr(-,root,root,-)
%doc llvm-testlog-%{_arch}.txt
%{_bindir}/llvm-config-%{__isa_bits}
%{_includedir}/%{name}
%{_includedir}/%{name}-c
@ -579,6 +573,10 @@ exit 0
%endif
%changelog
* 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

View File

@ -1,3 +1,3 @@
3896ef4334df08563b05d0848ba80582 clang-3.2.src.tar.gz
71610289bbc819e3e15fdd562809a2d7 llvm-3.2.src.tar.gz
610deacbd5928bbc62f630512f7d0292 R600-Mesa-9.1.patch.gz
f033b786761165f5b2cbe00ed861152b clang-20130507.tar.xz
f113764a80fc87ad2b5898b156fa8f4b compiler-rt-20130507.tar.xz
f8313d30e86c7f352f77da3521ead4da llvm-20130507.tar.xz