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
This commit is contained in:
parent
8b95ec6e4c
commit
a5a420ce6d
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,2 @@
|
|||||||
/llvm-2.9rc2.src.tar.gz
|
/llvm-2.9.tgz
|
||||||
/clang-2.9rc2.src.tar.gz
|
/clang-2.9.tgz
|
||||||
|
12
clang-2.9-add_gcc_vers.patch
Normal file
12
clang-2.9-add_gcc_vers.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- clang-2.9/lib/Driver/ToolChains.cpp.add_gcc_vers 2011-03-21 22:29:27.000000000 +0100
|
||||||
|
+++ clang-2.9/lib/Driver/ToolChains.cpp 2011-08-01 18:20:29.504194241 +0200
|
||||||
|
@@ -1449,7 +1449,8 @@
|
||||||
|
GccTriple = "i586-suse-linux";
|
||||||
|
}
|
||||||
|
|
||||||
|
- const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
|
||||||
|
+ const char* GccVersions[] = {"4.6.1", "4.6.0",
|
||||||
|
+ "4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4",
|
||||||
|
"4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2",
|
||||||
|
"4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1",
|
||||||
|
"4.2"};
|
9
llvm-Config-config.h
Normal file
9
llvm-Config-config.h
Normal 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
|
9
llvm-Config-llvm-config.h
Normal file
9
llvm-Config-llvm-config.h
Normal 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
|
77
llvm.spec
77
llvm.spec
@ -10,27 +10,35 @@
|
|||||||
%bcond_without ocaml
|
%bcond_without ocaml
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global prerel rc2
|
#global prerel
|
||||||
%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}
|
%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}
|
||||||
|
|
||||||
Name: llvm
|
Name: llvm
|
||||||
Version: 2.9
|
Version: 2.9
|
||||||
Release: 0.4.%{prerel}%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The Low Level Virtual Machine
|
Summary: The Low Level Virtual Machine
|
||||||
|
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
License: NCSA
|
License: NCSA
|
||||||
URL: http://llvm.org/
|
URL: http://llvm.org/
|
||||||
Source0: %{downloadurl}/llvm-%{version}%{?prerel}.src.tar.gz
|
Source0: %{downloadurl}/llvm-%{version}%{?prerel}.tgz
|
||||||
Source1: %{downloadurl}/clang-%{version}%{?prerel}.src.tar.gz
|
Source1: %{downloadurl}/clang-%{version}%{?prerel}.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
|
||||||
|
# clang link failure if system GCC version is unknown
|
||||||
|
# http://llvm.org/bugs/show_bug.cgi?id=8897
|
||||||
|
Patch1: clang-2.9-add_gcc_vers.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
|
||||||
@ -58,6 +66,8 @@ Requires: %{name} = %{version}-%{release}
|
|||||||
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
|
||||||
@ -201,8 +211,12 @@ HTML documentation for LLVM's OCaml binding.
|
|||||||
%setup -q -n llvm-%{version}%{?prerel} -a1 %{?_with_gcc:-a2}
|
%setup -q -n llvm-%{version}%{?prerel} -a1 %{?_with_gcc:-a2}
|
||||||
mv clang-%{version}%{?prerel} tools/clang
|
mv clang-%{version}%{?prerel} tools/clang
|
||||||
|
|
||||||
|
# llvm patches
|
||||||
%patch0 -p1 -b .timestamp
|
%patch0 -p1 -b .timestamp
|
||||||
|
|
||||||
|
# clang patches
|
||||||
pushd tools/clang
|
pushd tools/clang
|
||||||
|
%patch1 -p1 -b .add_gcc_ver
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# Encoding fix
|
# Encoding fix
|
||||||
@ -224,6 +238,7 @@ 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 \
|
||||||
@ -235,7 +250,7 @@ popd
|
|||||||
# 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
|
||||||
@ -243,17 +258,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
|
||||||
@ -303,7 +322,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
|
||||||
|
|
||||||
@ -312,6 +331,11 @@ chmod -x %{buildroot}%{_libdir}/%{name}/*.a
|
|||||||
find examples -name 'Makefile' | xargs -0r rm -f
|
find examples -name 'Makefile' | xargs -0r rm -f
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
|
make check
|
||||||
|
(cd tools/clang && make test)
|
||||||
|
|
||||||
|
|
||||||
%post libs -p /sbin/ldconfig
|
%post libs -p /sbin/ldconfig
|
||||||
%post -n clang -p /sbin/ldconfig
|
%post -n clang -p /sbin/ldconfig
|
||||||
|
|
||||||
@ -320,13 +344,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}/macho-dump
|
%{_bindir}/macho-dump
|
||||||
%{_bindir}/opt
|
%{_bindir}/opt
|
||||||
@ -336,7 +379,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
|
||||||
@ -406,6 +449,12 @@ find examples -name 'Makefile' | xargs -0r rm -f
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Aug 1 2011 Michel Salim <salimma@fedoraproject.org> - 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
|
||||||
|
|
||||||
* Tue May 31 2011 Karsten Hopp <karsten@redhat.com> 2.9-0.4.rc2
|
* Tue May 31 2011 Karsten Hopp <karsten@redhat.com> 2.9-0.4.rc2
|
||||||
- enable ppc64 build
|
- enable ppc64 build
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user