485 lines
15 KiB
RPMSpec
485 lines
15 KiB
RPMSpec
%define gccver %(gcc -dumpversion)
|
|
%define majver %(echo %version | cut -d. -f1-2)
|
|
Name: llvm
|
|
Version: 6.0.0
|
|
Release: 4mamba
|
|
Summary: The Low Level Virtual Machine
|
|
Group: Development/Languages
|
|
Vendor: openmamba
|
|
Distribution: openmamba
|
|
Packager: Davide Madrisan <davide.madrisan@gmail.com>
|
|
URL: http://llvm.org/
|
|
Source0: http://releases.llvm.org/%{version}/llvm-%{version}.src.tar.xz
|
|
Source1: http://releases.llvm.org/%{version}/cfe-%{version}.src.tar.xz
|
|
Source2: http://releases.llvm.org/%{version}/compiler-rt-%{version}.src.tar.xz
|
|
Source3: http://releases.llvm.org/%{version}/clang-tools-extra-%{version}.src.tar.xz
|
|
Source4: http://releases.llvm.org/%{version}/lld-%{version}.src.tar.xz
|
|
Source5: http://releases.llvm.org/%{version}/lldb-%{version}.src.tar.xz
|
|
Source6: llvm-6.0.0-llvm-config.patch
|
|
Patch0: %{name}-3.1-llvm-config.patch
|
|
Patch1: llvm-3.4-default-to-i586.patch
|
|
Patch2: llvm-5.0.0-openmamba-triplet.patch
|
|
Patch3: llvm-3.5.0-buildfix-CommandLine_h-getOption.patch
|
|
Patch4: llvm-3.5.0-x86_64-llvm-config.patch
|
|
Patch5: llvm-3.5.0-llvm-config.patch
|
|
Patch6: llvm-3.8.0-ocamldoc-install.patch
|
|
Patch7: llvm-5.0.0-llvm-shlib-build-fix.patch
|
|
Patch8: llvm-5.0.0-disable-symbolizer-test.patch
|
|
Patch9: llvm-6.0.0--export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
|
|
Patch10: llvm-6.0.0-cmake-fix-a-typo-in-llvm_config-macro.patch
|
|
Patch11: llvm-6.0.0-export-LLVMInitializeInstCombine-as-extern-C.patch
|
|
Patch12: llvm-6.0.0-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch
|
|
Patch13: llvm-6.0.0-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch
|
|
License: NCSA
|
|
## AUTOBUILDREQ-BEGIN
|
|
BuildRequires: glibc-devel
|
|
BuildRequires: libedit-devel
|
|
BuildRequires: libffi-devel
|
|
BuildRequires: libgcc
|
|
BuildRequires: libncurses-devel
|
|
BuildRequires: libperl
|
|
BuildRequires: libstdc++6-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libz-devel
|
|
BuildRequires: perl-devel
|
|
## AUTOBUILDREQ-END
|
|
BuildRequires: gcc-c++ >= 8.1.0
|
|
BuildRequires: glibc-devel
|
|
BuildRequires: ocaml
|
|
BuildRequires: ocaml-ctypes
|
|
BuildRequires: ocaml-ounit
|
|
BuildRequires: z3
|
|
BuildRequires: libz3-devel
|
|
#Requires: gcc >= %{gccver}
|
|
#Requires: gcc-c++ >= %{gccver}
|
|
BuildConflicts: llvm-ocaml
|
|
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
|
|
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
|
Provides: llvm-devel
|
|
Obsoletes: llvm-devel
|
|
Requires: libstdc++6-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 devel
|
|
Summary: Libraries and header files for LLVM
|
|
Group: Development/Languages
|
|
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
|
Requires: libstdc++6-devel
|
|
|
|
%description 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 tools
|
|
Summary: Additional LLVM tools
|
|
Group: Development/Languages
|
|
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
|
|
|
%description tools
|
|
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 additional LLVM tools.
|
|
|
|
%package -n clang
|
|
Summary: LLVM native C/C++/Objective-C compiler
|
|
Group: Development/Languages
|
|
Requires: gcc-c++
|
|
Provides: cfe
|
|
Provides: llvm-clang
|
|
Obsoletes: llvm-clang
|
|
|
|
%description -n clang
|
|
Cfe is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools.
|
|
The Cfe Static Analyzer is a tool automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Cfe frontend as a library to parse C/C++ code.
|
|
|
|
%package -n clang-devel
|
|
Summary: Libraries and header files for LLVM cfe
|
|
Group: Development/Languages
|
|
Requires: clang = %{?epoch:%epoch:}%{version}-%{release}
|
|
Provides: cfe-devel
|
|
Provides: llvm-clang-devel
|
|
Obsoletes: llvm-clang-devel
|
|
|
|
%description -n clang-devel
|
|
Cfe is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools.
|
|
The Cfe Static Analyzer is a tool automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Cfe frontend as a library to parse C/C++ code.
|
|
This package contains header files for the Cfe compiler.
|
|
|
|
%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.
|
|
|
|
%prep
|
|
%setup -q -a1 -a2 -a3 -a4 -a5 -n %{name}-%{version}.src
|
|
#-D -T
|
|
#:<< __EOF
|
|
#%patch0 -p1
|
|
#%patch1 -p1
|
|
mv cfe-%{version}.src tools/clang
|
|
mv compiler-rt-%{version}.src projects/compiler-rt
|
|
mv clang-tools-extra-%{version}.src tools/clang/tools/extra
|
|
mv lld-%{version}.src tools/lld
|
|
mv lldb-%{version}.src tools/lldb
|
|
|
|
%patch2 -p1
|
|
#%patch3 -p1
|
|
#%ifarch x86_64
|
|
#%patch4 -p1
|
|
#%else
|
|
#%patch5 -p1
|
|
#%endif
|
|
%patch6 -p1
|
|
#%patch7 -p1
|
|
#%patch8 -p1
|
|
%patch9 -p1
|
|
%patch10 -p0
|
|
%patch11 -p1
|
|
%patch12 -p1
|
|
%patch13 -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
|
|
cmake \
|
|
-G Ninja \
|
|
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
|
-DLLVM_HOST_TRIPLE="%{_target_platform}" \
|
|
-DLLVM_DEFAULT_TARGET_TRIPLE="%{_target_platform}" \
|
|
-DLLVM_ENABLE_FFI=ON \
|
|
-DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
|
-DLLVM_LINK_LLVM_DYLIB=ON \
|
|
-DPYTHON_EXECUTABLE=%{_bindir}/python \
|
|
-DLLDB_DISABLE_PYTHON=ON \
|
|
-DLLVM_INSTALL_UTILS=ON \
|
|
-DLLVM_ENABLE_SPHINX=ON \
|
|
%ifarch x86_64
|
|
-DLLVM_LIBDIR_SUFFIX="64" \
|
|
%endif
|
|
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
|
%ifnarch arm
|
|
-DLLVM_ENABLE_RTTI=ON \
|
|
-DLLVM_BUILD_TESTS=ON \
|
|
-DLLVM_BUILD_DOCS=ON \
|
|
%else
|
|
-DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
|
|
%endif
|
|
-Wno-dev ..
|
|
|
|
#%ifarch x86_64
|
|
# -DLLVM_LIBDIR_SUFFIX="64/llvm" \
|
|
#%else
|
|
# -DLLVM_LIBDIR_SUFFIX="/llvm" \
|
|
#%endif
|
|
# -DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \
|
|
|
|
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}/llc
|
|
%{_bindir}/lli
|
|
#%{_bindir}/lli-child-target
|
|
%{_bindir}/llvm*
|
|
%{_bindir}/ld64.lld
|
|
%{_bindir}/ld.lld
|
|
%{_bindir}/lld
|
|
%{_bindir}/lld-link
|
|
#%{_bindir}/macho-dump
|
|
#%{_bindir}/c-index-test
|
|
%{_bindir}/obj2yaml
|
|
%{_bindir}/sancov
|
|
%{_bindir}/sanstats
|
|
%{_bindir}/verify-uselistorder
|
|
%{_bindir}/yaml2obj
|
|
%{_bindir}/wasm-ld
|
|
#%{_libdir}/ocaml/META.llvm
|
|
#%{_bindir}/llvm-config
|
|
%{_bindir}/opt
|
|
%{_bindir}/scan-build
|
|
%{_bindir}/scan-view
|
|
%dir %{_datadir}/scan-build
|
|
%{_datadir}/scan-build/*
|
|
%dir %{_datadir}/scan-view
|
|
%{_datadir}/scan-view/*
|
|
%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-ar.1*
|
|
%{_mandir}/man1/llvm-as.1*
|
|
%{_mandir}/man1/llvm-bcanalyzer.1*
|
|
%{_mandir}/man1/llvm-build.1*
|
|
%{_mandir}/man1/llvm-config.1*
|
|
%{_mandir}/man1/llvm-cov.1*
|
|
%{_mandir}/man1/llvm-diff.1*
|
|
%{_mandir}/man1/llvm-dis.1*
|
|
%{_mandir}/man1/llvm-dwarfdump.1*
|
|
%{_mandir}/man1/llvm-extract.1*
|
|
%{_mandir}/man1/llvm-lib.1*
|
|
%{_mandir}/man1/llvm-link.1*
|
|
%{_mandir}/man1/llvm-nm.1*
|
|
%{_mandir}/man1/llvm-pdbutil.1*
|
|
%{_mandir}/man1/llvm-profdata.1*
|
|
%{_mandir}/man1/llvm-readobj.1*
|
|
%{_mandir}/man1/llvm-stress.1*
|
|
%{_mandir}/man1/llvm-symbolizer.1*
|
|
%{_mandir}/man1/opt.1*
|
|
%{_mandir}/man1/scan-build.1*
|
|
%{_mandir}/man1/tblgen.1*
|
|
%doc CREDITS.TXT LICENSE.TXT
|
|
#doc llvm-testlog.txt
|
|
|
|
%files tools
|
|
%defattr(-,root,root)
|
|
%{_bindir}/FileCheck
|
|
%{_bindir}/clangd
|
|
%{_bindir}/count
|
|
%{_bindir}/find-all-symbols
|
|
%{_bindir}/lldb
|
|
%{_bindir}/lldb-argdumper
|
|
%{_bindir}/lldb-mi
|
|
%{_bindir}/lldb-server
|
|
%{_bindir}/lldb-test
|
|
%{_bindir}/lli-child-target
|
|
%{_bindir}/modularize
|
|
%{_bindir}/not
|
|
%{_bindir}/yaml-bench
|
|
%dir %{_docdir}/clang-tools
|
|
%{_docdir}/clang-tools/*
|
|
%dir %{_docdir}/lld
|
|
%{_docdir}/lld/*
|
|
%{_mandir}/man1/extraclangtools.1*
|
|
|
|
%files -n libllvm
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libLLVM-%{majver}.so
|
|
%{_libdir}/libLTO.so.*
|
|
%{_libdir}/liblldb.so.*
|
|
%{_libdir}/liblldbIntelFeatures.so.*
|
|
|
|
%files -n libllvm-devel
|
|
%defattr(-,root,root)
|
|
%{_includedir}/%{name}
|
|
%{_includedir}/%{name}-c
|
|
%dir %{_includedir}/lld
|
|
%{_includedir}/lld/*
|
|
%dir %{_includedir}/lldb
|
|
%{_includedir}/lldb/*
|
|
#%{_libdir}/%{name}/*.a
|
|
%dir %{_datadir}/doc/llvm/html/
|
|
%{_datadir}/doc/llvm/html/*
|
|
%{_libdir}/*.a
|
|
%{_libdir}/*.so
|
|
%exclude %{_libdir}/libLLVM-%{majver}.so
|
|
%dir %{_libdir}/cmake/llvm
|
|
%{_libdir}/cmake/llvm/*.cmake
|
|
%doc README.txt
|
|
|
|
%files -n clang
|
|
%defattr(-,root,root)
|
|
#%{_bindir}/FileCheck
|
|
%{_bindir}/c-index-test
|
|
%{_bindir}/clang
|
|
%{_bindir}/clang++
|
|
%{_bindir}/clang-*
|
|
%{_bindir}/git-clang-format
|
|
#%{_bindir}/clang-tblgen
|
|
#%{_bindir}/count
|
|
#%{_bindir}/not
|
|
%{_prefix}/libexec/c++-analyzer
|
|
%{_prefix}/libexec/ccc-analyzer
|
|
%dir %{_libdir}/clang
|
|
%dir %{_libdir}/clang/%{version}
|
|
%{_libdir}/clang/%{version}/*
|
|
%{_libdir}/libclang.so.*
|
|
%dir %{_datadir}/clang/
|
|
%{_datadir}/clang/*
|
|
%{_mandir}/man1/clang.1*
|
|
%doc tools/clang/LICENSE.TXT
|
|
|
|
%files -n clang-devel
|
|
%defattr(-,root,root)
|
|
%dir %{_includedir}/clang-c
|
|
%{_includedir}/clang-c/*.h
|
|
#%{_includedir}/clang-c/module.modulemap
|
|
%dir %{_includedir}/clang/ARCMigrate
|
|
%{_includedir}/clang/ARCMigrate/*.h
|
|
%dir %{_includedir}/clang
|
|
%{_includedir}/clang/*
|
|
%dir %{_datadir}/doc/clang/html/
|
|
%{_datadir}/doc/clang/html/*
|
|
%dir %{_libdir}/cmake/clang
|
|
%{_libdir}/cmake/clang/*.cmake
|
|
%doc tools/clang/{NOTES.txt,README.txt}
|
|
%doc tools/clang/docs
|
|
|
|
%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*
|
|
#%{_libdir}/ocaml/*.mli
|
|
%dir %{_docdir}/llvm/ocaml-html
|
|
%{_docdir}/llvm/ocaml-html/*
|
|
#%doc llvm-extradocs/ocamldoc/html
|
|
|
|
%changelog
|
|
* 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
|