|
|
d437c1 |
%if 0%{?rhel} == 6
|
|
|
d437c1 |
%define rhel6 1
|
|
|
d437c1 |
%endif
|
|
|
d437c1 |
|
|
|
d437c1 |
# llvm works on the 64-bit versions of these, but not the 32 versions.
|
|
|
d437c1 |
# consequently we build swrast on them instead of llvmpipe.
|
|
|
d437c1 |
ExcludeArch: ppc s390 %{?rhel6:s390x}
|
|
|
d437c1 |
|
|
|
d437c1 |
%global svndate 20131023
|
|
|
d437c1 |
#%global prerel rc3
|
|
|
d437c1 |
%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}%{?prerel:/%{prerel}}
|
|
|
d437c1 |
|
|
|
d437c1 |
Name: mesa-private-llvm
|
|
|
d437c1 |
Version: 3.3
|
|
|
d437c1 |
#Release: 0.4.%{prerel}%{?dist}
|
|
|
c6b5fb |
Release: 0.8.%{svndate}%{?dist}
|
|
|
d437c1 |
Summary: llvm engine for Mesa
|
|
|
d437c1 |
|
|
|
d437c1 |
Group: System Environment/Libraries
|
|
|
d437c1 |
License: NCSA
|
|
|
d437c1 |
URL: http://llvm.org/
|
|
|
d437c1 |
#Source0: %{downloadurl}/llvm-source-%{version}%{?prerel:%{prerel}}.tar.gz
|
|
|
d437c1 |
Source0: llvm-%{svndate}.tar.xz
|
|
|
d437c1 |
Source1: make-llvm-snapshot.sh
|
|
|
d437c1 |
# multilib fixes
|
|
|
d437c1 |
Source2: llvm-Config-config.h
|
|
|
d437c1 |
Source3: llvm-Config-llvm-config.h
|
|
|
d437c1 |
|
|
|
d437c1 |
# Data files should be installed with timestamps preserved
|
|
|
d437c1 |
Patch0: llvm-2.6-timestamp.patch
|
|
|
d437c1 |
Patch1: llvm-drop-patch-version-number.patch
|
|
|
d437c1 |
|
|
|
d437c1 |
BuildRequires: bison
|
|
|
d437c1 |
BuildRequires: chrpath
|
|
|
d437c1 |
BuildRequires: flex
|
|
|
d437c1 |
BuildRequires: gcc-c++ >= 3.4
|
|
|
d437c1 |
BuildRequires: groff
|
|
|
d437c1 |
BuildRequires: libtool-ltdl-devel
|
|
|
d437c1 |
BuildRequires: zip
|
|
|
d437c1 |
# for DejaGNU test suite
|
|
|
d437c1 |
BuildRequires: dejagnu tcl-devel python
|
|
|
d437c1 |
|
|
|
d437c1 |
%description
|
|
|
d437c1 |
This package contains the LLVM-based runtime support for Mesa. It is not a
|
|
|
d437c1 |
fully-featured build of LLVM, and use by any package other than Mesa is not
|
|
|
d437c1 |
supported.
|
|
|
d437c1 |
|
|
|
d437c1 |
%package devel
|
|
|
d437c1 |
Summary: Libraries and header files for Mesa's llvm engine
|
|
|
d437c1 |
Group: Development/Libraries
|
|
|
d437c1 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
d437c1 |
Requires: libstdc++-devel >= 3.4
|
|
|
d437c1 |
|
|
|
d437c1 |
%description devel
|
|
|
d437c1 |
This package contains library and header files needed to build the LLVM
|
|
|
d437c1 |
support in Mesa.
|
|
|
d437c1 |
|
|
|
d437c1 |
%prep
|
|
|
d437c1 |
#setup -q -n llvm-%{version}%{?prerel}.src
|
|
|
d437c1 |
%setup -q -n llvm-%{svndate}
|
|
|
d437c1 |
#setup -q -n llvm.src
|
|
|
d437c1 |
rm -r -f tools/clang
|
|
|
d437c1 |
|
|
|
d437c1 |
# llvm patches
|
|
|
d437c1 |
%patch0 -p1 -b .timestamp
|
|
|
d437c1 |
%patch1 -p1 -b .version
|
|
|
d437c1 |
|
|
|
d437c1 |
# fix ld search path
|
|
|
d437c1 |
sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' \
|
|
|
d437c1 |
./configure
|
|
|
d437c1 |
|
|
|
d437c1 |
%build
|
|
|
d437c1 |
%configure \
|
|
|
d437c1 |
--prefix=%{_prefix} \
|
|
|
d437c1 |
--libdir=%{_libdir} \
|
|
|
d437c1 |
--includedir=%{_includedir}/mesa-private \
|
|
|
d437c1 |
--with-extra-ld-options=-Wl,-Bsymbolic,--default-symver \
|
|
|
d437c1 |
--enable-targets=host \
|
|
|
d437c1 |
%ifnarch s390x
|
|
|
d437c1 |
--enable-experimental-targets=R600 \
|
|
|
d437c1 |
%endif
|
|
|
d437c1 |
--enable-bindings=none \
|
|
|
d437c1 |
--enable-debug-runtime \
|
|
|
d437c1 |
--enable-jit \
|
|
|
d437c1 |
--enable-shared \
|
|
|
d437c1 |
--disable-assertions \
|
|
|
d437c1 |
--disable-docs \
|
|
|
d437c1 |
--disable-libffi \
|
|
|
d437c1 |
%ifarch armv7hl armv7l
|
|
|
d437c1 |
--with-cpu=cortex-a8 \
|
|
|
d437c1 |
--with-tune=cortex-a8 \
|
|
|
d437c1 |
--with-arch=armv7-a \
|
|
|
d437c1 |
--with-float=hard \
|
|
|
d437c1 |
--with-fpu=vfpv3-d16 \
|
|
|
d437c1 |
--with-abi=aapcs-linux \
|
|
|
d437c1 |
%endif
|
|
|
d437c1 |
|
|
|
d437c1 |
# FIXME file this
|
|
|
d437c1 |
# configure does not properly specify libdir or includedir
|
|
|
d437c1 |
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}|g' Makefile.config
|
|
|
d437c1 |
sed -i 's|(PROJ_prefix)/include|&/mesa-private|g' Makefile.config
|
|
|
d437c1 |
|
|
|
d437c1 |
# mangle the library name
|
|
|
d437c1 |
sed -i 's|^LLVMVersion.*|&-mesa|' Makefile.config
|
|
|
d437c1 |
|
|
|
d437c1 |
# FIXME upstream need to fix this
|
|
|
d437c1 |
# llvm-config.cpp hardcodes lib in it
|
|
|
d437c1 |
sed -i 's|ActiveLibDir = ActivePrefix + "/lib"|ActiveLibDir = ActivePrefix + "/%{_lib}"|g' tools/llvm-config/llvm-config.cpp
|
|
|
d437c1 |
sed -i 's|ActiveIncludeDir = ActivePrefix + "/include|&/mesa-private|g' tools/llvm-config/llvm-config.cpp
|
|
|
d437c1 |
|
|
|
d437c1 |
make %{_smp_mflags} VERBOSE=1 OPTIMIZE_OPTION="%{optflags} -fno-strict-aliasing"
|
|
|
d437c1 |
|
|
|
d437c1 |
%install
|
|
|
d437c1 |
make install DESTDIR=%{buildroot}
|
|
|
d437c1 |
|
|
|
d437c1 |
# rename the few binaries we're keeping
|
|
|
d437c1 |
mv %{buildroot}%{_bindir}/llvm-config %{buildroot}%{_bindir}/%{name}-config-%{__isa_bits}
|
|
|
d437c1 |
|
|
|
d437c1 |
pushd %{buildroot}%{_includedir}/mesa-private/llvm/Config
|
|
|
d437c1 |
mv config.h config-%{__isa_bits}.h
|
|
|
d437c1 |
cp -p %{SOURCE2} config.h
|
|
|
d437c1 |
mv llvm-config.h llvm-config-%{__isa_bits}.h
|
|
|
d437c1 |
cp -p %{SOURCE3} llvm-config.h
|
|
|
d437c1 |
popd
|
|
|
d437c1 |
|
|
|
d437c1 |
file %{buildroot}/%{_bindir}/* %{buildroot}/%{bindir}/*.so | \
|
|
|
d437c1 |
awk -F: '$2~/ELF/{print $1}' | \
|
|
|
d437c1 |
xargs -r chrpath -d
|
|
|
d437c1 |
|
|
|
d437c1 |
# FIXME file this bug
|
|
|
d437c1 |
sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
|
|
|
d437c1 |
%{buildroot}%{_bindir}/%{name}-config-%{__isa_bits}
|
|
|
d437c1 |
|
|
|
d437c1 |
rm -f %{buildroot}%{_libdir}/*.a
|
|
|
d437c1 |
|
|
|
d437c1 |
# remove documentation makefiles:
|
|
|
d437c1 |
# they require the build directory to work
|
|
|
d437c1 |
find examples -name 'Makefile' | xargs -0r rm -f
|
|
|
d437c1 |
|
|
|
d437c1 |
# RHEL: strip out most binaries, most libs, and man pages
|
|
|
d437c1 |
ls %{buildroot}%{_bindir}/* | grep -v bin/mesa-private | xargs rm -f
|
|
|
d437c1 |
ls %{buildroot}%{_libdir}/* | grep -v libLLVM | xargs rm -f
|
|
|
d437c1 |
rm -rf %{buildroot}%{_mandir}/man1
|
|
|
d437c1 |
|
|
|
d437c1 |
# RHEL: Strip out some headers Mesa doesn't need
|
|
|
d437c1 |
rm -rf %{buildroot}%{_includedir}/mesa-private/llvm/{Analysis,Assembly}
|
|
|
d437c1 |
rm -rf %{buildroot}%{_includedir}/mesa-private/llvm/{DebugInfo,Object,Option}
|
|
|
d437c1 |
rm -rf %{buildroot}%{_includedir}/mesa-private/llvm/TableGen
|
|
|
d437c1 |
|
|
|
c6b5fb |
%if 0
|
|
|
d437c1 |
%check
|
|
|
d437c1 |
# the Koji build server does not seem to have enough RAM
|
|
|
d437c1 |
# for the default 16 threads
|
|
|
d437c1 |
|
|
|
d437c1 |
# LLVM test suite failing on ARM, PPC64 and s390(x)
|
|
|
d437c1 |
make check LIT_ARGS="-v -j4" \
|
|
|
d437c1 |
%ifarch %{arm} ppc64 s390x
|
|
|
d437c1 |
| tee llvm-testlog-%{_arch}.txt
|
|
|
d437c1 |
%else
|
|
|
d437c1 |
%{nil}
|
|
|
d437c1 |
%endif
|
|
|
c6b5fb |
%endif
|
|
|
d437c1 |
|
|
|
d437c1 |
%post -p /sbin/ldconfig
|
|
|
d437c1 |
%postun -p /sbin/ldconfig
|
|
|
d437c1 |
|
|
|
d437c1 |
# also unlike fedora, we don't alternatives around llvm-config
|
|
|
d437c1 |
# mesa knows to append -%{__isa_bits}
|
|
|
d437c1 |
|
|
|
d437c1 |
%files
|
|
|
d437c1 |
%defattr(-,root,root,-)
|
|
|
d437c1 |
%doc LICENSE.TXT
|
|
|
d437c1 |
%{_libdir}/libLLVM-3.3-mesa.so
|
|
|
d437c1 |
|
|
|
d437c1 |
%files devel
|
|
|
d437c1 |
%defattr(-,root,root,-)
|
|
|
d437c1 |
%{_bindir}/%{name}-config-%{__isa_bits}
|
|
|
d437c1 |
%{_includedir}/mesa-private/llvm
|
|
|
d437c1 |
%{_includedir}/mesa-private/llvm-c
|
|
|
d437c1 |
|
|
|
d437c1 |
%changelog
|
|
|
c6b5fb |
* Tue Jan 28 2014 Adam Jackson <ajax@redhat.com> 3.3-0.8.20131023
|
|
|
c6b5fb |
- Disable %%check, only fails in places that don't matter to Mesa (#1028575)
|
|
|
c6b5fb |
|
|
|
c6b5fb |
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.3-0.7.20131023
|
|
|
c6b5fb |
- Mass rebuild 2014-01-24
|
|
|
c6b5fb |
|
|
|
c6b5fb |
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.3-0.6.20131023
|
|
|
c6b5fb |
- Mass rebuild 2013-12-27
|
|
|
c6b5fb |
|
|
|
d437c1 |
* Wed Oct 23 2013 Jerome Glisse <jglisse@redhat.com> 3.3-0.5.20131023
|
|
|
d437c1 |
- 3.3.1 snapshot
|
|
|
d437c1 |
|
|
|
d437c1 |
* Tue Aug 20 2013 Adam Jackson <ajax@redhat.com> 3.3-0.4.rc3
|
|
|
d437c1 |
- Build with -fno-strict-aliasing
|
|
|
d437c1 |
|
|
|
d437c1 |
* Tue Jun 18 2013 Adam Jackson <ajax@redhat.com> 3.3-0.3.rc3
|
|
|
d437c1 |
- Port to RHEL6
|
|
|
d437c1 |
- Don't bother building R600 on s390x
|
|
|
d437c1 |
|
|
|
d437c1 |
* Tue Jun 11 2013 Adam Jackson <ajax@redhat.com> 3.3-0.2.rc3
|
|
|
d437c1 |
- 3.3 rc3
|
|
|
d437c1 |
- Drop tblgen
|
|
|
d437c1 |
- Strip out some headers
|
|
|
d437c1 |
|
|
|
d437c1 |
* Tue May 14 2013 Adam Jackson <ajax@redhat.com> 3.3-0.1.rc1
|
|
|
d437c1 |
- Update to 3.3 rc1
|
|
|
d437c1 |
- Move library to %%{_libdir} to avoid rpath headaches
|
|
|
d437c1 |
- Link with -Bsymbolic and --default-symver
|
|
|
d437c1 |
- --disable-libffi
|
|
|
d437c1 |
- Misc spec cleanup
|
|
|
d437c1 |
|
|
|
d437c1 |
* Wed Dec 05 2012 Adam Jackson <ajax@redhat.com> 3.1-13
|
|
|
d437c1 |
- Forked spec for RHEL7 Mesa's private use
|
|
|
d437c1 |
- no ocaml support
|
|
|
d437c1 |
- no doxygen build
|
|
|
d437c1 |
- no clang support
|
|
|
d437c1 |
- no static archives
|
|
|
d437c1 |
- no libraries, binaries, or manpages not needed by Mesa
|