%define gccver %(gcc -dumpversion) %define majver %(echo %version | cut -d. -f1-2) Name: llvm5 Version: 5.0.1 Release: 3mamba Summary: The Low Level Virtual Machine Group: Development/Languages Vendor: openmamba Distribution: openmamba Packager: Davide Madrisan 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 Patch0: llvm-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 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++ BuildRequires: glibc-devel BuildRequires: ocaml BuildRequires: ocaml-ctypes BuildRequires: ocaml-ounit BuildRequires: z3 BuildRequires: libz3-devel #Requires: gcc >= %{gccver} #Requires: gcc-c++ >= %{gccver} 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} 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 clang5 Summary: LLVM native C/C++/Objective-C compiler Group: Development/Languages Requires: gcc-c++ Requires: libclang5 = %{?epoch:%epoch:}%{version}-%{release} %description -n clang5 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 libclang5 Summary: LLVM native C/C++/Objective-C runtime library Group: System/Libraries %description -n libclang5 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 clang5-devel Summary: Libraries and header files for LLVM cfe Group: Development/Languages Requires: clang5 = %{?epoch:%epoch:}%{version}-%{release} %description -n clang5-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: lib%{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 llvm-%{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 # https://bugs.llvm.org/show_bug.cgi?id=34123 sed -i '/LLVMSupport/d' tools/clang/tools/extra/clangd/tool/CMakeLists.txt %build #:<< _EOF %cmake -d build \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE="%{_target_platform}" \ -DLLVM_DEFAULT_TARGET_TRIPLE="%{_target_platform}" \ %ifarch x86_64 -DLLVM_LIBDIR_SUFFIX="64/llvm" \ %else -DLLVM_LIBDIR_SUFFIX="/llvm" \ %endif -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_DYLIB_EXPORT_ALL=ON \ %ifnarch arm -DLLVM_ENABLE_RTTI=ON \ -DLLVM_BUILD_TESTS=ON \ -DLLVM_BUILD_DOCS=ON \ %else -DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \ %endif -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_SPHINX=ON \ -DLLVM_ENABLE_DOXYGEN=OFF \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DFFI_INCLUDE_DIR=`pkg-config --variable=includedir libffi` \ -DLLVM_BINUTILS_INCDIR=/usr/include \ -DLLVM_INSTALL_UTILS=ON \ -DLLDB_DISABLE_PYTHON=ON # -DLLVM_LINK_LLVM_DYLIB=OFF \ # -DBUILD_SHARED_LIBS=ON \ %make %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %makeinstall -C build install -d %{buildroot}%{_sysconfdir}/ld.so.conf.d cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm5-%{_arch}.conf << EOF %{_libdir}/llvm EOF 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 : %post -n libclang5 /sbin/ldconfig : %postun -n libclang5 /sbin/ldconfig : %files %defattr(-,root,root) %{_bindir}/bugpoint %{_bindir}/llc %{_bindir}/lli #%{_bindir}/lli-child-target %{_bindir}/llvm* #%{_bindir}/macho-dump #%{_bindir}/c-index-test %{_bindir}/obj2yaml %{_bindir}/sancov %{_bindir}/sanstats %{_bindir}/verify-uselistorder %{_bindir}/yaml2obj #%{_libdir}/ocaml/META.llvm %exclude %{_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/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-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}/ld.lld %{_bindir}/liblldb-intel-mpxtable.so %{_bindir}/lld %{_bindir}/lld-link %{_bindir}/lldb %{_bindir}/lldb-argdumper %{_bindir}/lldb-mi %{_bindir}/lldb-server %{_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 libllvm5 %defattr(-,root,root) %{_sysconfdir}/ld.so.conf.d/llvm5-%{_arch}.conf %dir %{_libdir}/llvm %{_libdir}/llvm/*.so.* %{_libdir}/llvm/libLLVM-%{majver}.so %exclude %{_libdir}/llvm/libclang.so.* %files -n libllvm5-devel %defattr(-,root,root) %{_bindir}/llvm-config %{_includedir}/llvm %{_includedir}/llvm-c %dir %{_includedir}/lld %{_includedir}/lld/* %dir %{_includedir}/lldb %{_includedir}/lldb/* #%{_libdir}/%{name}/*.a %dir %{_datadir}/doc/llvm/html/ %{_datadir}/doc/llvm/html/* %{_libdir}/llvm/*.a %{_libdir}/llvm/*.so %exclude %{_libdir}/llvm/libLLVM-%{majver}.so %dir %{_libdir}/llvm/cmake/llvm %{_libdir}/llvm/cmake/llvm/*.cmake %doc README.txt %files -n clang5 %defattr(-,root,root) #%{_bindir}/FileCheck %{_bindir}/c-index-test %{_bindir}/clang %{_bindir}/clang++ %{_bindir}/clang-%{majver} %{_bindir}/clang-* %{_bindir}/git-clang-format #%{_bindir}/clang-tblgen #%{_bindir}/count #%{_bindir}/not %{_prefix}/libexec/c++-analyzer %{_prefix}/libexec/ccc-analyzer %dir %{_datadir}/clang/ %{_datadir}/clang/* %{_mandir}/man1/clang.1* %doc tools/clang/LICENSE.TXT %files -n libclang5 %defattr(-,root,root) %dir %{_libdir}/llvm/clang %dir %{_libdir}/llvm/clang/%{version} %{_libdir}/llvm/clang/%{version}/* %{_libdir}/llvm/libclang.so.* %files -n clang5-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/AST %{_includedir}/clang/AST/*.h %{_includedir}/clang/AST/*.def %{_includedir}/clang/AST/*.inc %dir %{_includedir}/clang/Analysis %dir %{_includedir}/clang/Analysis/Analyses %{_includedir}/clang/Analysis/Analyses/ThreadSafetyOps.def %dir %{_includedir}/clang/Analysis/DomainSpecific %{_includedir}/clang/Analysis/DomainSpecific/*.h %dir %{_includedir}/clang/Analysis/FlowSensitive %{_includedir}/clang/Analysis/FlowSensitive/DataflowValues.h %dir %{_includedir}/clang/Analysis/Support %{_includedir}/clang/Analysis/Support/BumpVector.h %dir %{_includedir}/clang/ASTMatchers/ %{_includedir}/clang/ASTMatchers/*.h %dir %{_includedir}/clang/ASTMatchers/Dynamic %{_includedir}/clang/ASTMatchers/Dynamic/*.h %{_includedir}/clang/Analysis/Analyses/*.h %{_includedir}/clang/Analysis/*.h %dir %{_includedir}/clang/Basic %{_includedir}/clang/Basic/*.h %{_includedir}/clang/Basic/*.def %{_includedir}/clang/Basic/*.inc %dir %{_includedir}/clang/CodeGen %{_includedir}/clang/CodeGen/*.h %dir %{_includedir}/clang/Config %{_includedir}/clang/Config/config.h %dir %{_includedir}/clang/Driver %{_includedir}/clang/Driver/*.h %{_includedir}/clang/Driver/Options.inc %{_includedir}/clang/Driver/Types.def %dir %{_includedir}/clang/Edit %{_includedir}/clang/Edit/*.h %dir %{_includedir}/clang/Format %{_includedir}/clang/Format/Format.h %dir %{_includedir}/clang/Frontend %{_includedir}/clang/Frontend/*.h %{_includedir}/clang/Frontend/*.def %dir %{_includedir}/clang/FrontendTool %{_includedir}/clang/FrontendTool/Utils.h %dir %{_includedir}/clang/Index %{_includedir}/clang/Index/*.h %dir %{_includedir}/clang/Lex %{_includedir}/clang/Lex/*.h %dir %{_includedir}/clang/Parse %{_includedir}/clang/Parse/* %dir %{_includedir}/clang/Rewrite %dir %{_includedir}/clang/Rewrite/Core %{_includedir}/clang/Rewrite/Core/*.h %dir %{_includedir}/clang/Rewrite/Frontend %{_includedir}/clang/Rewrite/Frontend/*.h %dir %{_includedir}/clang/Sema %{_includedir}/clang/Sema/*.h %{_includedir}/clang/Sema/*.inc %dir %{_includedir}/clang/Serialization %{_includedir}/clang/Serialization/*.h %{_includedir}/clang/Serialization/*.inc %dir %{_includedir}/clang/StaticAnalyzer %dir %{_includedir}/clang/StaticAnalyzer/Checkers %{_includedir}/clang/StaticAnalyzer/Checkers/* %dir %{_includedir}/clang/StaticAnalyzer/Core %{_includedir}/clang/StaticAnalyzer/Core/*.h %{_includedir}/clang/StaticAnalyzer/Core/Analyses.def %dir %{_includedir}/clang/StaticAnalyzer/Core/BugReporter %{_includedir}/clang/StaticAnalyzer/Core/BugReporter/*.h %dir %{_includedir}/clang/StaticAnalyzer/Core/PathSensitive %{_includedir}/clang/StaticAnalyzer/Core/PathSensitive/* %dir %{_includedir}/clang/StaticAnalyzer/Frontend %{_includedir}/clang/StaticAnalyzer/Frontend/*.h %dir %{_includedir}/clang/Tooling %{_includedir}/clang/Tooling/* %dir %{_datadir}/doc/clang/html/ %{_datadir}/doc/clang/html/* %dir %{_libdir}/llvm/cmake/clang %{_libdir}/llvm/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* %{_libdir}/ocaml/stublibs/dllllvm*.so %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 * Thu Jun 21 2018 Silvan Calarco 5.0.1-3mamba - add libclang5 to allow legacy runtime installation * Wed Jun 20 2018 Silvan Calarco 5.0.1-2mamba - legacy package * Mon Dec 25 2017 Automatic Build System 5.0.1-1mamba - automatic version update by autodist * Tue Nov 28 2017 Silvan Calarco 5.0.0-2mamba - fix link against libllvm by changing and extending build arguments and external llvm subpackages * Tue Nov 28 2017 Silvan Calarco 5.0.0-1mamba - update to 5.0.0 * Wed Jul 13 2016 Automatic Build System 3.8.1-1mamba - automatic version update by autodist * Sat Jun 11 2016 Silvan Calarco 3.8.0-3mamba - rebuilt using cmake * Sat May 28 2016 Silvan Calarco 3.8.0-2mamba - rebuilt * Thu May 26 2016 Automatic Build System 3.8.0-1mamba - automatic version update by autodist * Sun Jan 18 2015 Automatic Build System 3.5.1-1mamba - automatic version update by autodist * Fri Sep 19 2014 Silvan Calarco 3.5.0-2mamba - patch llvm-config for x86_64 support and %{_libdir}/llvm * Wed Sep 10 2014 Silvan Calarco 3.5.0-1mamba - update to 3.5.0 * Thu Jul 10 2014 Silvan Calarco 3.4.2-1mamba - update to 3.4.2 * Sun Feb 16 2014 Silvan Calarco 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 3.4-1mamba - update to 3.4 * Thu Jun 20 2013 Automatic Build System 3.3-1mamba - update to 3.3 * Sat Dec 22 2012 Automatic Build System 3.2-1mamba - automatic version update by autodist * Fri Jul 20 2012 Silvan Calarco 3.1-1mamba - update to 3.1 * Thu Feb 23 2012 Ercole 'ercolinux' Carpanetto 3.0.-1mamba - update to 3.0 * Sun Jul 10 2011 Silvan Calarco 2.9-1mamba - update to 2.9 * Sat Jan 01 2011 Davide Madrisan 2.8-1mamba - package created by autospec