Merge branch 'f19' into f18

This commit is contained in:
Adam Jackson 2013-05-28 15:15:28 -04:00
commit c1d649f7c2
10 changed files with 158 additions and 82 deletions

5
.gitignore vendored
View File

@ -6,3 +6,8 @@
/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
/cfe-3.3rc2-source.tar.gz
/llvm-3.3rc2-source.tar.gz

View File

@ -0,0 +1,13 @@
--- llvm-3.2.src.orig/tools/clang/lib/Driver/Tools.cpp 2012-11-21 01:56:23.000000000 -0600
+++ llvm-3.2.src/tools/clang/lib/Driver/Tools.cpp 2013-03-31 21:08:41.890206683 -0500
@@ -688,8 +688,8 @@
}
default:
// Assume "soft", but warn the user we are guessing.
- FloatABI = "soft";
- D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "soft";
+ FloatABI = "hard";
+ D.Diag(diag::warn_drv_assuming_mfloat_abi_is) << "hard";
break;
}
}

View File

@ -1,26 +0,0 @@
--- llvm-3.2.src/tools/clang/lib/Driver/ToolChains.cpp~ 2012-12-17 00:59:27.000000000 +0900
+++ llvm-3.2.src/tools/clang/lib/Driver/ToolChains.cpp 2013-02-12 19:18:00.755164292 +0900
@@ -1054,10 +1054,12 @@
static const char *const ARMLibDirs[] = { "/lib" };
static const char *const ARMTriples[] = {
"arm-linux-gnueabi",
- "arm-linux-androideabi"
+ "arm-linux-androideabi",
+ "armv5tel-redhat-linux-gnueabi",
};
static const char *const ARMHFTriples[] = {
"arm-linux-gnueabihf",
+ "armv7hl-redhat-linux-gnueabi",
};
static const char *const X86_64LibDirs[] = { "/lib64", "/lib" };
@@ -1104,7 +1106,8 @@
"powerpc-linux-gnu",
"powerpc-unknown-linux-gnu",
"powerpc-suse-linux",
- "powerpc-montavista-linuxspe"
+ "powerpc-montavista-linuxspe",
+ "ppc64-redhat-linux",
};
static const char *const PPC64LibDirs[] = { "/lib64", "/lib" };
static const char *const PPC64Triples[] = {

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

@ -0,0 +1,12 @@
diff -up llvm-3.2.src/tools/llvm-shlib/Makefile.jx llvm-3.2.src/tools/llvm-shlib/Makefile
--- llvm-3.2.src/tools/llvm-shlib/Makefile.jx 2012-08-06 16:52:18.000000000 -0400
+++ llvm-3.2.src/tools/llvm-shlib/Makefile 2013-05-01 16:55:20.286980046 -0400
@@ -76,7 +76,7 @@ endif
ifeq ($(HOST_OS), $(filter $(HOST_OS), Linux GNU))
# Don't allow unresolved symbols.
- LLVMLibsOptions += -Wl,--no-undefined
+ LLVMLibsOptions += -Wl,--no-undefined -Wl,-Bsymbolic
endif
ifeq ($(HOST_OS),SunOS)

122
llvm.spec
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 prerel rc2
%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: 2%{?dist}
Version: 3.3
Release: 0.4.%{prerel}%{?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}}-source.tar.gz
Source1: %{downloadurl}/cfe-%{version}%{?prerel:%{prerel}}-source.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
Patch10: llvm-3.2-clang-driver-secondary-arch-triplets.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
@ -62,12 +74,8 @@ Patch10: llvm-3.2-clang-driver-secondary-arch-triplets.patch
# test suite. i don't even.
Patch20: llvm-3.2-llvm-config-dso-hack.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
# hack the link flags for the shared libs for speed and memory usage
Patch21: llvm-3.2-symbolic-shlib.patch
BuildRequires: bison
BuildRequires: chrpath
@ -266,40 +274,31 @@ HTML documentation for LLVM's OCaml binding.
%prep
%setup -q -n llvm-%{version}%{?prerel}.src %{?with_clang:-a1}
rm -r -f tools/clang
#setup -q -n llvm-%{version}%{?prerel}.src %{?with_clang:-a1} %{?with_crt:-a2}
%setup -q -n llvm.src %{?with_clang:-a1} %{?with_crt:-a2}
rm -f tools/clang
%if %{with clang}
mv clang-%{version}%{?prerel}.src tools/clang
mv cfe.src tools/clang
%endif
# llvm patches
%patch0 -p1 -b .timestamp
# clang triplets
%patch10 -p1 -b .orig
# arm hard float
%patch11 -p1 -b .orig
# fix llvm-config --libs
#patch20 -p1 -b .orig
%patch600 -p1 -b .orig
%patch601 -p1 -b .orig
%patch602 -p1 -b .orig
%patch603 -p1 -b .orig
%patch21 -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} \
@ -319,10 +318,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,aarch64,cpp,nvptx,systemz \
--enable-experimental-targets=R600
# FIXME file this
@ -335,7 +336,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
@ -355,9 +356,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
@ -425,26 +426,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
@ -461,6 +454,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 \
@ -479,9 +476,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
@ -497,6 +491,7 @@ exit 0
%files devel
%defattr(-,root,root,-)
%doc llvm-testlog-%{_arch}.txt
%{_bindir}/llvm-config-%{__isa_bits}
%{_includedir}/%{name}
%{_includedir}/%{name}-c
@ -575,6 +570,29 @@ exit 0
%endif
%changelog
* 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
@ -721,7 +739,7 @@ exit 0
* Fri Mar 25 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.3.rc2
- Update to 2.9rc2
* Thu Mar 18 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.2.rc1
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.2.rc1
- Split shared libraries into separate subpackage
- Don't include test logs; breaks multilib (# 666195)
- clang++: also search for platform-specific include files (# 680644)

18
make-clang-snapshot.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
DIRNAME=clang-$( date +%Y%m%d )
URL=http://llvm.org/git/clang.git
rm -rf $DIRNAME
git clone $URL $DIRNAME
cd $DIRNAME
if [ -z "$1" ]; then
git log | head -1
else
git checkout $1
fi
git log | head -1 | awk '{ print $2 }' > ../commitid
rm -rf .git
cd ..
tar cf - $DIRNAME | xz -c9 > $DIRNAME.tar.xz
rm -rf $DIRNAME

18
make-compiler-rt-snapshot.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
DIRNAME=compiler-rt-$( date +%Y%m%d )
URL=http://llvm.org/git/compiler-rt.git
rm -rf $DIRNAME
git clone $URL $DIRNAME
cd $DIRNAME
if [ -z "$1" ]; then
git log | head -1
else
git checkout $1
fi
git log | head -1 | awk '{ print $2 }' > ../commitid
rm -rf .git
cd ..
tar cf - $DIRNAME | xz -c9 > $DIRNAME.tar.xz
rm -rf $DIRNAME

18
make-llvm-snapshot.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/sh
DIRNAME=llvm-$( date +%Y%m%d )
URL=http://llvm.org/git/llvm.git
rm -rf $DIRNAME
git clone $URL $DIRNAME
cd $DIRNAME
if [ -z "$1" ]; then
git log | head -1
else
git checkout $1
fi
git log | head -1 | awk '{ print $2 }' > ../commitid
rm -rf .git
cd ..
tar cf - $DIRNAME | xz -c9 > $DIRNAME.tar.xz
rm -rf $DIRNAME

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
f113764a80fc87ad2b5898b156fa8f4b compiler-rt-20130507.tar.xz
5519f4bac1e038829fce0b8f34a74792 cfe-3.3rc2-source.tar.gz
063396afe869f515abbdb76673d22b69 llvm-3.3rc2-source.tar.gz