llvm/llvm.spec

381 lines
11 KiB
RPMSpec
Raw Normal View History

%define gccver %(gcc -dumpversion)
%define majver %(echo %version | cut -d. -f1-2)
Name: llvm
Version: 10.0.0
Release: 1mamba
Summary: The Low Level Virtual Machine
Group: Development/Languages
Vendor: openmamba
Distribution: openmamba
Packager: Davide Madrisan <davide.madrisan@gmail.com>
URL: https://llvm.org/
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-%{version}.src.tar.xz
Source6: llvm-6.0.0-llvm-config.patch
Patch0: %{name}-3.1-llvm-config.patch
Patch6: llvm-3.8.0-ocamldoc-install.patch
License: NCSA
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libedit-devel
BuildRequires: libffi-devel
BuildRequires: libgcc
BuildRequires: libncurses-devel
BuildRequires: libstdc++6-devel
BuildRequires: libxml2-devel
BuildRequires: libz-devel
BuildRequires: libz3-devel
BuildRequires: ocaml-ctypes-devel
BuildRequires: ocaml-integers
BuildRequires: ocaml-runtime
## AUTOBUILDREQ-END
BuildRequires: glibc-devel
BuildRequires: ocaml >= 4.09.0-4mamba
BuildRequires: ocaml-ctypes >= 0.16
BuildRequires: ocaml-ounit
BuildRequires: z3
BuildRequires: libz3-devel
#BuildConflicts: llvm-ocaml
Provides: llvm-tools
Obsoletes: llvm-tools
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
%package -n lib%{name}
Group: System/Libraries
Summary: Shared libraries for %{name}
%description -n lib%{name}
This package contains shared libraries for %{name}.
%package -n lib%{name}-devel
Summary: Libraries and header files for LLVM
Group: Development/Languages
Provides: llvm-devel
Obsoletes: llvm-devel
%description -n lib%{name}-devel
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
This package contains library and header files needed to develop new native programs that use the LLVM infrastructure.
%package -n lib%{name}-apidocs
Group: Documentation
Summary: lib%{name} API documentation
Requires: lib%{name}-devel = %{?epoch:%epoch:}%{version}-%{release}
Requires: gtk-doc
%description -n lib%{name}-apidocs
This package includes the lib%{name} API documentation.
%package ocaml
Summary: OCaml binding for LLVM
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
#Requires: ocaml-runtime
%description ocaml
OCaml binding for LLVM.
%package ocaml-devel
Summary: Development files for %{name}-ocaml
Group: Development/Libraries
Requires: %{name}-devel = %{?epoch:%epoch:}%{version}-%{release}
Requires: %{name}-ocaml = %{?epoch:%epoch:}%{version}-%{release}
Requires: ocaml
%description ocaml-devel
The %{name}-ocaml-devel package contains libraries and signature files for developing applications that use %{name}-ocaml.
%package ocaml-apidocs
Group: Documentation
Summary: LLVM ocaml API documentation
Requires: %{name}-ocaml-devel = %{?epoch:%epoch:}%{version}-%{release}
Requires: gtk-doc
%description ocaml-apidocs
This package includes the LLVM ocaml API documentation.
%prep
%setup -q -n %{name}-%{version}.src
#-D -T
#:<< _EOF
%patch6 -p1
# https://bugs.llvm.org/show_bug.cgi?id=34123
#sed -i '/LLVMSupport/d' tools/clang/tools/extra/clangd/tool/CMakeLists.txt
sed -i "/REMOVE_DUPLICATES/d" tools/llvm-shlib/CMakeLists.txt
%build
#:<< __EOF
mkdir -p build
cd build
#%ifarch x86_64
# -DCMAKE_C_COMPILER=clang \
# -DCMAKE_CXX_COMPILER=clang++ \
# -DLLVM_ENABLE_LLD=ON \
#%else
# -DCMAKE_C_COMPILER=gcc \
# -DCMAKE_CXX_COMPILER=g++ \
#%endif
cmake \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DLLVM_HOST_TRIPLE="%{_target_platform}" \
-DLLVM_DEFAULT_TARGET_TRIPLE="%{_target_platform}" \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_INSTALL_UTILS=ON \
%ifnarch arm
-DLLVM_ENABLE_RTTI=ON \
%endif
-DLLVM_ENABLE_FFI=ON \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \
-DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
-DLLVM_ENABLE_SPHINX=ON \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
%ifarch x86_64
-DLLVM_LIBDIR_SUFFIX="64" \
%endif
-Wno-dev ..
# -DLLVM_ENABLE_LTO=Thin \
ninja all ocaml_doc
#% make all docs-llvm-html docs-llvm-man docs-clang-html docs-clang-man
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
#% makeinstall -C build
cd build
export DESTDIR=%{buildroot}
ninja install
#install -d %{buildroot}%{_sysconfdir}/ld.so.conf.d
#cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
#%{_libdir}/llvm
#EOF
%ifarch x86_64
# Needed for multilib (https://bugs.archlinux.org/task/29951)
# Header stub is taken from Fedora
mv %{buildroot}%{_includedir}/llvm/Config/llvm-config{,-64}.h
cp %{SOURCE6} %{buildroot}%{_includedir}/llvm/Config/llvm-config.h
%endif
rm -f %{buildroot}%{_datadir}/doc/clang/html/.buildinfo
rm -f %{buildroot}%{_datadir}/doc/llvm/html/.buildinfo
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%post
/sbin/ldconfig
:
%postun
/sbin/ldconfig
:
%files
%defattr(-,root,root)
%{_bindir}/bugpoint
%{_bindir}/count
%{_bindir}/dsymutil
%{_bindir}/FileCheck
%{_bindir}/llc
%{_bindir}/lli
%{_bindir}/lli-child-target
%{_bindir}/llvm*
%{_bindir}/not
%{_bindir}/obj2yaml
%{_bindir}/sancov
%{_bindir}/sanstats
%{_bindir}/verify-uselistorder
%{_bindir}/yaml2obj
%{_bindir}/yaml-bench
%{_bindir}/opt
%dir %{_datadir}/opt-viewer
%{_datadir}/opt-viewer/*
#%{_mandir}/man1/FileCheck.1*
#%{_mandir}/man1/bugpoint.1*
#%{_mandir}/man1/dsymutil.1*
#%{_mandir}/man1/lit.1*
#%{_mandir}/man1/llc.1*
#%{_mandir}/man1/lli.1*
#%{_mandir}/man1/llvm-*.1*
#%{_mandir}/man1/opt.1*
#%{_mandir}/man1/tblgen.1*
%doc CREDITS.TXT LICENSE.TXT
#doc llvm-testlog.txt
%files -n libllvm
%defattr(-,root,root)
%{_libdir}/libLLVM-*.so
%{_libdir}/libLTO.so.*
%{_libdir}/libRemarks.so.*
%files -n libllvm-devel
%defattr(-,root,root)
%{_includedir}/%{name}
%{_includedir}/%{name}-c
%{_libdir}/*.a
%{_libdir}/libLLVM.so
%{_libdir}/libLTO.so
%{_libdir}/libRemarks.so
%{_libdir}/LLVM*.so
%dir %{_libdir}/cmake/llvm
%{_libdir}/cmake/llvm/*.cmake
#%doc README.txt
#%files -n libllvm-apidocs
#%defattr(-,root,root)
#%dir %{_datadir}/doc/llvm/html/
#%{_datadir}/doc/llvm/html/*
%files ocaml
%defattr(-,root,root)
%{_libdir}/ocaml/llvm/*.cma
%{_libdir}/ocaml/llvm/*.cmi
%{_libdir}/ocaml/llvm/*.mli
%{_libdir}/ocaml/META.llvm*
%files ocaml-devel
%defattr(-,root,root)
%{_libdir}/ocaml/llvm/*.a
%{_libdir}/ocaml/llvm/*.cmx*
%files ocaml-apidocs
%defattr(-,root,root)
%dir %{_docdir}/llvm/ocaml-html
%{_docdir}/llvm/ocaml-html/*
%changelog
* Mon Mar 30 2020 Automatic Build System <autodist@mambasoft.it> 10.0.0-1mamba
- automatic version update by autodist
* Sat Feb 08 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-4mamba
- rework build flags
* Sat Feb 08 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-3mamba
- split build of llvm clang etc. in separate sources
* Tue Jan 07 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-2mamba
- rebuild with -DLLVM_ENABLE_LTO=Thin
* Mon Dec 30 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-1mamba
- update to 9.0.1
* Thu Mar 28 2019 Automatic Build System <autodist@mambasoft.it> 8.0.0-1mamba
- automatic version update by autodist
* Sat Jan 26 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 7.0.1-4mamba
- bump release
* Sat Jan 26 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 7.0.1-3mamba
- move *.so from libllvm-devel to libllvm
* Mon Jan 21 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 7.0.1-2mamba
- rebuilt with binutils plugin LLVMgold.so
* Sat Dec 22 2018 Automatic Build System <autodist@mambasoft.it> 7.0.1-1mamba
- automatic version update by autodist
* Sun Oct 14 2018 Automatic Build System <autodist@mambasoft.it> 7.0.0-1mamba
- automatic version update by autodist
* Sun Sep 02 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.1-4mamba
- remove building with libc++ to fix e.g. Mesa build
* Sat Jul 14 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.1-3mamba
- rebuilt wth LLVM_ENABLE_LIBCXX=ON
* Sat Jul 14 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.1-2mamba
- rebuilt with libc++
* Sat Jul 07 2018 Automatic Build System <autodist@mambasoft.it> 6.0.1-1mamba
- automatic version update by autodist
* Mon Jun 25 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.0-4mamba
- rebuilt with gcc 8.1.0
* Sun Jun 24 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.0-3mamba
- apply patches from Arch to possibly fix lld segfault
* Sat Jun 23 2018 Silvan Calarco <silvan.calarco@mambasoft.it> 6.0.0-2mamba
- rebuilt with standard target libdir and other changes to try fixing lld crash with at least chromium build
* Tue Jun 19 2018 Automatic Build System <autodist@mambasoft.it> 6.0.0-1mamba
- automatic version update by autodist
* Mon Dec 25 2017 Automatic Build System <autodist@mambasoft.it> 5.0.1-1mamba
- automatic version update by autodist
* Tue Nov 28 2017 Silvan Calarco <silvan.calarco@mambasoft.it> 5.0.0-2mamba
- fix link against libllvm by changing and extending build arguments and external llvm subpackages
* Tue Nov 28 2017 Silvan Calarco <silvan.calarco@mambasoft.it> 5.0.0-1mamba
- update to 5.0.0
* Wed Jul 13 2016 Automatic Build System <autodist@mambasoft.it> 3.8.1-1mamba
- automatic version update by autodist
* Sat Jun 11 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.0-3mamba
- rebuilt using cmake
* Sat May 28 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.0-2mamba
- rebuilt
* Thu May 26 2016 Automatic Build System <autodist@mambasoft.it> 3.8.0-1mamba
- automatic version update by autodist
* Sun Jan 18 2015 Automatic Build System <autodist@mambasoft.it> 3.5.1-1mamba
- automatic version update by autodist
* Fri Sep 19 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.5.0-2mamba
- patch llvm-config for x86_64 support and %{_libdir}/llvm
* Wed Sep 10 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.5.0-1mamba
- update to 3.5.0
* Thu Jul 10 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.2-1mamba
- update to 3.4.2
* Sun Feb 16 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4-2mamba
- fix configure settings and add --with-extra-ld-options to correctly link and
pass --with-arch=%{_target_cpu} to fix penmamba bug #000163
* Sun Jan 12 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4-1mamba
- update to 3.4
* Thu Jun 20 2013 Automatic Build System <autodist@mambasoft.it> 3.3-1mamba
- update to 3.3
* Sat Dec 22 2012 Automatic Build System <autodist@mambasoft.it> 3.2-1mamba
- automatic version update by autodist
* Fri Jul 20 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 3.1-1mamba
- update to 3.1
* Thu Feb 23 2012 Ercole 'ercolinux' Carpanetto <ercole69@gmail.com> 3.0.-1mamba
- update to 3.0
* Sun Jul 10 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 2.9-1mamba
- update to 2.9
* Sat Jan 01 2011 Davide Madrisan <davide.madrisan@gmail.com> 2.8-1mamba
- package created by autospec