diff --git a/README.md b/README.md index 40b8006..3799129 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # llvm15 +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. + diff --git a/llvm-3.8.0-ocamldoc-install.patch b/llvm-3.8.0-ocamldoc-install.patch new file mode 100644 index 0000000..579f075 --- /dev/null +++ b/llvm-3.8.0-ocamldoc-install.patch @@ -0,0 +1,22 @@ +diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt +index eaa175062b61..f862f2561bfd 100644 +--- a/docs/CMakeLists.txt ++++ b/docs/CMakeLists.txt +@@ -143,13 +143,15 @@ if( NOT uses_ocaml LESS 0 ) + list(APPEND odoc_files -load ${odoc_file}) + endforeach() + +- add_custom_target(ocaml_doc ++ add_custom_command(OUTPUT BUILD_OCAML_DOCS + COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html + COMMAND ${OCAMLFIND} ocamldoc -d ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html + -sort -colorize-code -html ${odoc_files} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/_ocamldoc/style.css +- ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html) ++ ${CMAKE_CURRENT_BINARY_DIR}/ocamldoc/html ++ COMMENT "Creating documentation for OCaml bindings...") ++ add_custom_target(ocaml_doc ALL DEPENDS BUILD_OCAML_DOCS) + + add_dependencies(ocaml_doc ${doc_targets}) + diff --git a/llvm-6.0.0-llvm-config.patch b/llvm-6.0.0-llvm-config.patch new file mode 100644 index 0000000..2fa08c9 --- /dev/null +++ b/llvm-6.0.0-llvm-config.patch @@ -0,0 +1,9 @@ +#include + +#if __WORDSIZE == 32 +#include "llvm-config-32.h" +#elif __WORDSIZE == 64 +#include "llvm-config-64.h" +#else +#error "Unknown word size" +#endif diff --git a/llvm15.spec b/llvm15.spec new file mode 100644 index 0000000..50180d8 --- /dev/null +++ b/llvm15.spec @@ -0,0 +1,457 @@ +%define gccver %(gcc -dumpversion) +%define majver %(echo %version | cut -d. -f1-2) +Name: llvm15 +Version: 15.0.7 +Release: 1mamba +Summary: The Low Level Virtual Machine +Group: Development/Languages +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: https://llvm.org/ +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-%{version}.src.tar.xz +Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/cmake-%{version}.src.tar.xz +Source6: llvm-6.0.0-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: libzstd-devel +BuildRequires: ocaml +BuildRequires: ocaml-bigarray-compat-devel +BuildRequires: ocaml-ctypes-devel +BuildRequires: ocaml-integers +## AUTOBUILDREQ-END +BuildRequires: glibc-devel +BuildRequires: ocaml >= 4.11.1 +BuildRequires: ocaml-ocamldoc +BuildRequires: ocaml-findlib +BuildRequires: ocaml-ctypes-devel >= 0.20.1 +BuildRequires: ocaml-integers >= 0.7.0 +%ifnarch aarch64 +BuildRequires: ocaml-ounit +%endif +BuildRequires: z3 +BuildRequires: libz3-devel +#BuildConflicts: llvm-ocaml +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} + +%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 + +%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: 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. + +%package ocaml-apidocs +Group: Documentation +Summary: LLVM ocaml API documentation +Requires: gtk-doc + +%description ocaml-apidocs +This package includes the LLVM ocaml API documentation. + +%debug_package + +# Don't clean build at the end +%global __spec_rmbuild_cmd /bin/true + +%prep +%setup -q -n llvm-%{version}.src -a1 +#% setup -q -n llvm-%{version}.src -D -T +#:<< _EOF + +%patch6 -p1 + +cp -a cmake-%{version}.src/Modules/* cmake/modules/ + +# 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 \ + -DLLVM_ENABLE_RTTI=ON \ + -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 \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ +%ifarch x86_64 aarch64 + -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 aarch64 +# 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 -p /sbin/ldconfig + +%postun -p /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}/split-file +%{_bindir}/UnicodeNameMappingGenerator +%{_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 lib%{name} +%defattr(-,root,root) +%{_libdir}/libLLVM-*.so +%{_libdir}/libLTO.so.* +%{_libdir}/libRemarks.so.* + +%files -n lib%{name}-devel +%defattr(-,root,root) +%{_includedir}/llvm +%{_includedir}/llvm-c +%{_libdir}/*.a +%{_libdir}/libLLVM.so +%{_libdir}/libLTO.so +%{_libdir}/libRemarks.so +%{_libdir}/LLVM*.so +%dir %{_libdir}/cmake/llvm +%{_libdir}/cmake/llvm/*.cmake +%{_libdir}/cmake/llvm/llvm-driver-template.cpp.in +#%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/*.cmt +%{_libdir}/ocaml/llvm/*.cmti +%{_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 %{_datadir}/doc/LLVM/llvm/ocaml-html +%{_datadir}/doc/LLVM/llvm/ocaml-html/* + + +%changelog +* Thu Jan 12 2023 Automatic Build System 15.0.7-1mamba +- automatic version update by autodist + +* Tue Nov 29 2022 Automatic Build System 15.0.6-1mamba +- automatic version update by autodist + +* Thu Nov 17 2022 Automatic Build System 15.0.5-1mamba +- automatic version update by autodist + +* Thu Nov 03 2022 Automatic Build System 15.0.4-1mamba +- automatic version update by autodist + +* Wed Oct 19 2022 Automatic Build System 15.0.3-1mamba +- automatic version update by autodist + +* Sat Oct 15 2022 Automatic Build System 15.0.2-1mamba +- automatic version update by autodist + +* Sat Jun 25 2022 Automatic Build System 14.0.6-1mamba +- automatic version update by autodist + +* Sat Jun 11 2022 Automatic Build System 14.0.5-1mamba +- automatic version update by autodist + +* Thu May 26 2022 Automatic Build System 14.0.4-1mamba +- automatic version update by autodist + +* Fri May 20 2022 Silvan Calarco 14.0.3-3mamba +- re-add LLVM_ENABLE_RTTI=ON + +* Wed May 18 2022 Silvan Calarco 14.0.3-2mamba +- rebuilt with ocaml-ctypes 0.20.1 + +* Fri Apr 29 2022 Automatic Build System 14.0.3-1mamba +- automatic version update by autodist + +* Thu Apr 28 2022 Automatic Build System 14.0.2-1mamba +- automatic version update by autodist + +* Wed Feb 09 2022 Silvan Calarco 13.0.1-2mamba +- rebuilt with ocaml-ctypes 0.20.0-2mamba and ocaml-integers 0.6.0 + +* Thu Feb 03 2022 Automatic Build System 13.0.1-1mamba +- automatic version update by autodist + +* Fri Oct 15 2021 Automatic Build System 13.0.0-1mamba +- automatic version update by autodist + +* Fri May 21 2021 Silvan Calarco 12.0.0-1mamba +- update to 12.0.0 + +* Fri Feb 26 2021 Automatic Build System 11.1.0-1mamba +- automatic version update by autodist + +* Thu Jan 21 2021 Silvan Calarco 11.0.1-2mamba +- rebuilt with ocaml 4.11.1 + +* Mon Jan 11 2021 Automatic Build System 11.0.1-1mamba +- automatic version update by autodist + +* Mon Oct 12 2020 Automatic Build System 11.0.0-1mamba +- automatic version update by autodist + +* Mon Jul 27 2020 Silvan Calarco 10.0.1-2mamba +- added debug package + +* Sat Jul 25 2020 Automatic Build System 10.0.1-1mamba +- automatic version update by autodist + +* Mon Mar 30 2020 Automatic Build System 10.0.0-1mamba +- automatic version update by autodist + +* Sat Feb 08 2020 Silvan Calarco 9.0.1-4mamba +- rework build flags + +* Sat Feb 08 2020 Silvan Calarco 9.0.1-3mamba +- split build of llvm clang etc. in separate sources + +* Tue Jan 07 2020 Silvan Calarco 9.0.1-2mamba +- rebuild with -DLLVM_ENABLE_LTO=Thin + +* Mon Dec 30 2019 Silvan Calarco 9.0.1-1mamba +- update to 9.0.1 + +* Thu Mar 28 2019 Automatic Build System 8.0.0-1mamba +- automatic version update by autodist + +* Sat Jan 26 2019 Silvan Calarco 7.0.1-4mamba +- bump release + +* Sat Jan 26 2019 Silvan Calarco 7.0.1-3mamba +- move *.so from libllvm-devel to libllvm + +* Mon Jan 21 2019 Silvan Calarco 7.0.1-2mamba +- rebuilt with binutils plugin LLVMgold.so + +* Sat Dec 22 2018 Automatic Build System 7.0.1-1mamba +- automatic version update by autodist + +* Sun Oct 14 2018 Automatic Build System 7.0.0-1mamba +- automatic version update by autodist + +* Sun Sep 02 2018 Silvan Calarco 6.0.1-4mamba +- remove building with libc++ to fix e.g. Mesa build + +* Sat Jul 14 2018 Silvan Calarco 6.0.1-3mamba +- rebuilt wth LLVM_ENABLE_LIBCXX=ON + +* Sat Jul 14 2018 Silvan Calarco 6.0.1-2mamba +- rebuilt with libc++ + +* Sat Jul 07 2018 Automatic Build System 6.0.1-1mamba +- automatic version update by autodist + +* Mon Jun 25 2018 Silvan Calarco 6.0.0-4mamba +- rebuilt with gcc 8.1.0 + +* Sun Jun 24 2018 Silvan Calarco 6.0.0-3mamba +- apply patches from Arch to possibly fix lld segfault + +* Sat Jun 23 2018 Silvan Calarco 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 6.0.0-1mamba +- automatic version update by autodist + +* 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