From: Marcin Krol Date: Sat, 1 Jun 2019 11:59:42 +0000 (+0200) Subject: - merged 8.0.0 from PLD, TLDized X-Git-Url: https://git.tld-linux.org/?a=commitdiff_plain;h=4491aa7644e7699e77ac2e0fb5d91dc09cae0a03;p=packages%2Fllvm.git - merged 8.0.0 from PLD, TLDized --- diff --git a/libdir.patch b/libdir.patch deleted file mode 100644 index 9fefe00..0000000 --- a/libdir.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- llvm-3.7.0.src/bindings/ocaml/llvm/CMakeLists.txt.orig 2014-12-30 04:24:07.000000000 +0100 -+++ llvm-3.7.0.src/bindings/ocaml/llvm/CMakeLists.txt 2015-10-03 17:47:47.253164926 +0200 -@@ -8,4 +8,4 @@ - "${LLVM_LIBRARY_DIR}/ocaml/META.llvm") - - install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm" -- DESTINATION lib/ocaml) -+ DESTINATION lib${LLVM_LIBDIR_SUFFIX}/ocaml) ---- llvm-3.7.0.src/bindings/ocaml/backends/CMakeLists.txt.orig 2014-12-30 04:24:07.000000000 +0100 -+++ llvm-3.7.0.src/bindings/ocaml/backends/CMakeLists.txt 2015-10-03 17:48:57.483480254 +0200 -@@ -23,5 +23,5 @@ - "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}") - - install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}" -- DESTINATION lib/ocaml) -+ DESTINATION lib${LLVM_LIBDIR_SUFFIX}/ocaml) - endforeach() ---- llvm-3.7.0.src/cmake/modules/AddOCaml.cmake.orig 2015-06-07 21:22:22.000000000 +0200 -+++ llvm-3.7.0.src/cmake/modules/AddOCaml.cmake 2015-10-03 18:13:42.583970785 +0200 -@@ -183,12 +183,12 @@ - endforeach() - - install(FILES ${install_files} -- DESTINATION lib/ocaml) -+ DESTINATION lib${LLVM_LIBDIR_SUFFIX}/ocaml) - install(FILES ${install_shlibs} - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE - GROUP_READ GROUP_EXECUTE - WORLD_READ WORLD_EXECUTE -- DESTINATION lib/ocaml) -+ DESTINATION lib${LLVM_LIBDIR_SUFFIX}/ocaml) - - foreach( install_file ${install_files} ${install_shlibs} ) - get_filename_component(filename "${install_file}" NAME) diff --git a/llvm-lld-link.patch b/llvm-lld-link.patch deleted file mode 100644 index 7449a54..0000000 --- a/llvm-lld-link.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/lld/COFF/CMakeLists.txt llvm-3.9.0.src/tools/lld/COFF/CMakeLists.txt ---- llvm-3.9.0.src.orig/tools/lld/COFF/CMakeLists.txt 2016-07-13 05:19:27.000000000 +0200 -+++ llvm-3.9.0.src/tools/lld/COFF/CMakeLists.txt 2016-11-03 12:20:24.000000000 +0100 -@@ -18,6 +18,9 @@ - Symbols.cpp - Writer.cpp - -+ LINK_LIBS -+ pthread -+ - LINK_COMPONENTS - ${LLVM_TARGETS_TO_BUILD} - Core -diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/lld/lib/Core/CMakeLists.txt llvm-3.9.0.src/tools/lld/lib/Core/CMakeLists.txt ---- llvm-3.9.0.src.orig/tools/lld/lib/Core/CMakeLists.txt 2016-01-07 01:14:09.000000000 +0100 -+++ llvm-3.9.0.src/tools/lld/lib/Core/CMakeLists.txt 2016-11-03 12:20:10.000000000 +0100 -@@ -12,5 +12,5 @@ - ${LLD_INCLUDE_DIR}/lld/Core - - LINK_LIBS -- LLVMSupport -+ LLVMSupport pthread - ) -diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/lld/lib/Driver/CMakeLists.txt llvm-3.9.0.src/tools/lld/lib/Driver/CMakeLists.txt ---- llvm-3.9.0.src.orig/tools/lld/lib/Driver/CMakeLists.txt 2016-03-02 20:08:05.000000000 +0100 -+++ llvm-3.9.0.src/tools/lld/lib/Driver/CMakeLists.txt 2016-11-03 12:20:10.000000000 +0100 -@@ -17,6 +17,7 @@ - LLVMObject - LLVMOption - LLVMSupport -+ pthread - ) - - add_dependencies(lldDriver DriverOptionsTableGen) -diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/lld/lib/ReaderWriter/CMakeLists.txt llvm-3.9.0.src/tools/lld/lib/ReaderWriter/CMakeLists.txt ---- llvm-3.9.0.src.orig/tools/lld/lib/ReaderWriter/CMakeLists.txt 2016-03-02 01:37:50.000000000 +0100 -+++ llvm-3.9.0.src/tools/lld/lib/ReaderWriter/CMakeLists.txt 2016-11-03 12:20:10.000000000 +0100 -@@ -16,4 +16,5 @@ - lldYAML - LLVMObject - LLVMSupport -+ pthread - ) diff --git a/llvm-tld.patch b/llvm-tld.patch index fd7cbe3..645d8cd 100644 --- a/llvm-tld.patch +++ b/llvm-tld.patch @@ -1,6 +1,5 @@ -diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/clang/lib/Driver/ToolChains.cpp llvm-3.9.0.src/tools/clang/lib/Driver/ToolChains.cpp ---- llvm-3.9.0.src.orig/tools/clang/lib/Driver/ToolChains.cpp 2016-08-18 19:56:48.000000000 +0200 -+++ llvm-3.9.0.src/tools/clang/lib/Driver/ToolChains.cpp 2016-11-03 12:18:35.000000000 +0100 +--- llvm-5.0.0.src.orig/tools/clang/lib/Driver/ToolChains/Gnu.cpp 2016-08-18 19:56:48.000000000 +0200 ++++ llvm-5.0.0.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp 2016-11-03 12:18:35.000000000 +0100 @@ -1498,6 +1498,7 @@ static const char *const X86_64LibDirs[] = {"/lib64", "/lib"}; @@ -9,7 +8,7 @@ diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/clang/lib/Dri "x86_64-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E", "x86_64-redhat-linux", "x86_64-suse-linux", -@@ -1507,6 +1508,7 @@ +@@ -1558,6 +1559,7 @@ static const char *const X32LibDirs[] = {"/libx32"}; static const char *const X86LibDirs[] = {"/lib32", "/lib"}; static const char *const X86Triples[] = { @@ -17,60 +16,65 @@ diff -dur -x '*~' -x '*.orig' -x '*.rej' llvm-3.9.0.src.orig/tools/clang/lib/Dri "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu", "i386-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux", "i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux", - static const char *const PPC64LibDirs[] = {"/lib64", "/lib"}; -@@ -3716,6 +3719,7 @@ - // in this enum, because some tests are done by integer comparison against - // the first and last known member in the family, e.g. IsRedHat(). - ArchLinux, -+ TLDLinux, - DebianLenny, - DebianSqueeze, - DebianWheezy, -@@ -3761,6 +3765,10 @@ - return Distro >= UbuntuHardy && Distro <= UbuntuXenial; - } +--- llvm-5.0.0.src/tools/clang/include/clang/Driver/Distro.h.orig 2017-05-04 14:46:38.000000000 +0200 ++++ llvm-5.0.0.src/tools/clang/include/clang/Driver/Distro.h 2017-12-01 22:44:57.785429043 +0100 +@@ -27,6 +27,7 @@ + // in this enum, because some tests are done by integer comparison against + // the first and last known member in the family, e.g. IsRedHat(). + ArchLinux, ++ TLDLinux, + DebianLenny, + DebianSqueeze, + DebianWheezy, +@@ -114,6 +115,10 @@ + return DistroVal >= UbuntuHardy && DistroVal <= UbuntuArtful; + } -+static bool IsTLD(enum Distro Distro) { -+ return Distro == TLDLinux; -+} ++ bool IsTLD() { ++ return DistroVal == TLDLinux; ++ } + - static Distro DetectDistro(const Driver &D, llvm::Triple::ArchType Arch) { - llvm::ErrorOr> File = - llvm::MemoryBuffer::getFile("/etc/lsb-release"); -@@ -3837,6 +3845,9 @@ - if (D.getVFS().exists("/etc/arch-release")) - return ArchLinux; + /// @} + }; -+ if (!llvm::sys::fs::exists("/etc/tld-release")) -+ return TLDLinux; +--- llvm-5.0.0.src/tools/clang/lib/Driver/Distro.cpp.orig 2017-05-04 14:46:38.000000000 +0200 ++++ llvm-5.0.0.src/tools/clang/lib/Driver/Distro.cpp 2017-12-01 22:47:15.155427475 +0100 +@@ -129,6 +129,9 @@ + if (VFS.exists("/etc/arch-release")) + return Distro::ArchLinux; + ++ if (VFS.exists("/etc/tld-release")) ++ return Distro::TLDLinux; + - return UnknownDistro; + return Distro::UnknownDistro; } -@@ -4012,7 +4023,7 @@ - - Distro Distro = DetectDistro(D, Arch); +--- llvm-5.0.0.src/tools/clang/lib/Driver/ToolChains/Linux.cpp.orig 2017-12-01 22:14:03.462116884 +0100 ++++ llvm-5.0.0.src/tools/clang/lib/Driver/ToolChains/Linux.cpp 2017-12-01 22:51:38.678757801 +0100 +@@ -210,7 +210,7 @@ + ExtraOpts.push_back("now"); + } -- if (IsOpenSUSE(Distro) || IsUbuntu(Distro)) { -+ if (IsOpenSUSE(Distro) || IsUbuntu(Distro) || IsTLD(Distro)) { +- if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || ++ if (Distro.IsOpenSUSE() || Distro.IsUbuntu() || Distro.IsAlpineLinux() || Distro.IsTLD() || + Triple.isAndroid()) { ExtraOpts.push_back("-z"); ExtraOpts.push_back("relro"); - } -@@ -4032,7 +4043,7 @@ - // ABI requires a mapping between the GOT and the symbol table. - // Android loader does not support .gnu.hash. - if (!IsMips && !IsAndroid) { -- if (IsRedhat(Distro) || IsOpenSUSE(Distro) || -+ if (IsRedhat(Distro) || IsOpenSUSE(Distro) || IsTLD(Distro) || - (IsUbuntu(Distro) && Distro >= UbuntuMaverick)) +@@ -232,7 +232,7 @@ + // Android loader does not support .gnu.hash until API 23. + // Hexagon linker/loader does not support .gnu.hash + if (!IsMips && !IsHexagon) { +- if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() || ++ if (Distro.IsRedhat() || Distro.IsOpenSUSE() || Distro.IsAlpineLinux() || Distro.IsTLD() || + (Distro.IsUbuntu() && Distro >= Distro::UbuntuMaverick) || + (IsAndroid && !Triple.isAndroidVersionLT(23))) ExtraOpts.push_back("--hash-style=gnu"); - -@@ -4041,7 +4052,7 @@ +@@ -241,7 +241,7 @@ ExtraOpts.push_back("--hash-style=both"); } -- if (IsRedhat(Distro) && Distro != RHEL5 && Distro != RHEL6) -+ if ((IsRedhat(Distro) && Distro != RHEL5 && Distro != RHEL6) || IsTLD(Distro)) +- if (Distro.IsRedhat() && Distro != Distro::RHEL5 && Distro != Distro::RHEL6) ++ if ((Distro.IsRedhat() && Distro != Distro::RHEL5 && Distro != Distro::RHEL6) || Distro.IsTLD()) ExtraOpts.push_back("--no-add-needed"); #ifdef ENABLE_LINKER_BUILD_ID diff --git a/llvm.spec b/llvm.spec index 235a4ec..a0706c8 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,8 +1,14 @@ +# +# NOTE: +# - normal build (x86_64) requires about 80 GB of disk space +# # TODO: # - move and package: +# %{_datadir}/clang/bash-autocomplete.sh # %{_datadir}/clang/clang-format-sublime.py - sublime plugin -# %{_datadir}/clang/clang-format.el - emacs mode -# %{_datadir}/clang/clang-format.py - vim plugin +# %{_datadir}/clang/clang-format.el - clang tools emacs integration +# %{_datadir}/clang/clang-include-fixer.el +# %{_datadir}/clang/clang-rename.el # - no content in doc package (it used to contain parts of clang apidocs and some examples) # - system isl in polly? # @@ -11,41 +17,39 @@ %bcond_without polly # Polly cache-locality optimization, auto-parallelism and vectorization %bcond_without rt # compiler-rt libraries %bcond_without multilib # compiler-rt multilib libraries -%bcond_with ocaml # OCaml binding +%bcond_without ocaml # OCaml binding %bcond_without doc # HTML docs and man pages %bcond_with apidocs # doxygen docs (HUGE, so they are not built by default) %bcond_with tests # run tests # No ocaml on other arches or no native ocaml (required for ocaml-ctypes) -%ifnarch %{ix86} %{x8664} arm aarch64 ppc sparc sparcv9 +%ifnarch %{ix86} %{x8664} %{arm} aarch64 ppc sparc sparcv9 %undefine with_ocaml %endif Summary: The Low Level Virtual Machine (An Optimizing Compiler Infrastructure) Summary(pl.UTF-8): Niskopoziomowa maszyna wirtualna (infrastruktura kompilatora optymalizującego) Name: llvm -Version: 3.9.1 +Version: 8.0.0 Release: 1 License: University of Illinois/NCSA Open Source License Group: Development/Languages -#Source0Download: http://llvm.org/releases/download.html -Source0: http://llvm.org/releases/%{version}/%{name}-%{version}.src.tar.xz -# Source0-md5: 3259018a7437e157f3642df80f1983ea -Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz -# Source1-md5: 45713ec5c417ed9cad614cd283d786a1 -Source2: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz -# Source2-md5: aadc76e7e180fafb10fb729444e287a3 -Source3: http://llvm.org/releases/%{version}/lldb-%{version}.src.tar.xz -# Source3-md5: 91399402f287d3f637db1207113deecb -Source4: http://llvm.org/releases/%{version}/polly-%{version}.src.tar.xz -# Source4-md5: 2cc7fe2bd9539775ba140abfd375bec6 -Source5: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz -# Source5-md5: 1a01d545a064fcbc46a2f05f6880d3d7 -Source6: http://llvm.org/releases/%{version}/lld-%{version}.src.tar.xz -# Source6-md5: 6254dd138e23b098df4ef7840c11e2c8 -Patch0: %{name}-lld-link.patch +#Source0Download: http://releases.llvm.org/download.html +Source0: http://releases.llvm.org/%{version}/%{name}-%{version}.src.tar.xz +# Source0-md5: 74818f431563603515a62be1ee69a142 +Source1: http://releases.llvm.org/%{version}/cfe-%{version}.src.tar.xz +# Source1-md5: 988b59cdb372c5a4f44ae4c39df3de73 +Source2: http://releases.llvm.org/%{version}/compiler-rt-%{version}.src.tar.xz +# Source2-md5: 547893456e22c75d16189a13881bc866 +Source3: http://releases.llvm.org/%{version}/lldb-%{version}.src.tar.xz +# Source3-md5: 9d319ed0f02a026242a85399938afed2 +Source4: http://releases.llvm.org/%{version}/polly-%{version}.src.tar.xz +# Source4-md5: 7643bba808becabf35785fbacc413ee5 +Source5: http://releases.llvm.org/%{version}/clang-tools-extra-%{version}.src.tar.xz +# Source5-md5: acd22ccbd06bfc0054027fe2644af1e0 +Source6: http://releases.llvm.org/%{version}/lld-%{version}.src.tar.xz +# Source6-md5: c09fb102d4537a0c37a2e8e36a1dc6d2 Patch1: %{name}-tld.patch -Patch2: libdir.patch Patch3: x32-gcc-toolchain.patch Patch4: cmake-buildtype.patch Patch5: %{name}-ocaml-shared.patch @@ -59,24 +63,23 @@ BuildRequires: gcc >= 5:3.4 %if "%(echo %{cc_version} | cut -d. -f1,2)" < "3.4" BuildRequires: __cc >= 3.4 %endif -%ifarch x32 -BuildRequires: glibc-devel(x86_64) -%endif BuildRequires: groff BuildRequires: libedit-devel BuildRequires: libltdl-devel BuildRequires: libstdc++-devel >= 5:3.4 BuildRequires: ncurses-devel %if %{with ocaml} +BuildRequires: ocaml >= 4.00.0 BuildRequires: ocaml-ctypes-devel >= 0.4 BuildRequires: ocaml-findlib BuildRequires: ocaml-ocamldoc -BuildRequires: ocaml-ounit +BuildRequires: ocaml-ounit >= 2 %endif BuildRequires: perl-base >= 1:5.6 BuildRequires: perl-tools-pod BuildRequires: python >= 1:2.7 BuildRequires: rpm-pythonprov +BuildRequires: rpmbuild(macros) >= 1.734 %{?with_doc:BuildRequires: sphinx-pdg} BuildRequires: tar >= 1:1.22 BuildRequires: xz @@ -91,12 +94,15 @@ BuildRequires: tcl-devel %endif %if %{with rt} && %{with multilib} %ifarch %{x8664} -BuildRequires: gcc-c++-multilib -BuildRequires: libstdc++-multilib-devel +BuildRequires: gcc-c++-multilib-32 +BuildRequires: libstdc++-multilib-32-devel %endif %ifarch x32 -BuildRequires: gcc-c++-multilib -BuildRequires: libstdc++-multilib-devel +BuildRequires: gcc-c++-multilib-32 +BuildRequires: gcc-c++-multilib-64 +BuildRequires: glibc-devel(x86_64) +BuildRequires: libstdc++-multilib-32-devel +BuildRequires: libstdc++-multilib-64-devel %endif %endif %if %{with lldb} @@ -107,12 +113,12 @@ BuildRequires: libatomic-devel BuildRequires: libxml2-devel >= 2 BuildRequires: ncurses-ext-devel BuildRequires: python-devel >= 2 -BuildRequires: swig-python +BuildRequires: swig-python >= 3.0.11 %endif %if %{with polly} #BuildRequires: gmp-devel or imath-devel (private copy in polly/lib/External/isl/imath) # private copy in polly/lib/External/isl -#BuildRequires: isl-devel >= 0.17.1 +#BuildRequires: isl-devel >= 0.18 #TODO (bcond): cuda-devel (with POLLY_ENABLE_GPGPU_CODEGEN=ON) %endif %if %{with ocaml} @@ -124,13 +130,16 @@ Requires: %{name}-libs = %{version}-%{release} ExcludeArch: ppc64 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%define abi 3.9 +%define abi 8 %define _sysconfdir /etc/%{name} %define specflags_ppc -fno-var-tracking-assignments # ix86 and x32 - the same issue as https://llvm.org/bugs/show_bug.cgi?id=27237 -%define specflags_ia32 -gsplit-dwarf -%define specflags_x32 -gsplit-dwarf +# use -gsplit-dwarf only when building packages with debuginfo +# to avoid excessive disk space usage +%if 0%{?_enable_debug_packages} +%define specflags -gsplit-dwarf +%endif # strip corrupts: $RPM_BUILD_ROOT/usr/lib64/llvm-gcc/bin/llvm-c++ ... %define _noautostrip .*/\\(libmud.*\\.a\\|bin/llvm-.*\\|lib.*++\\.a\\) @@ -142,9 +151,6 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define filterout_cxx -fvar-tracking-assignments -Werror=format-security %define filterout_ccpp -fvar-tracking-assignments -# std::__once_call, std::__once_callable non-function symbols -%define skip_post_check_so liblldb.so.* - %description LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, and idle-time optimization of programs from @@ -489,18 +495,42 @@ HTML documentation for LLVM's OCaml binding. %description ocaml-doc -l pl.UTF-8 Dokumentacja HTML wiązania OCamla do LLVM-a. +%package opt-viewer +Summary: Optimization records visualization tools +Summary(pl.UTF-8): Narzędzia do wizualizacji rekordów optymalizacji +Group: Development/Tools +Requires: %{name} = %{version} +BuildArch: noarch + +%description opt-viewer +Optimization records visualization tools. + +%description opt-viewer -l pl.UTF-8 +Narzędzia do wizualizacji rekordów optymalizacji. + +%package -n vim-plugin-clang +Summary: Clang format and rename integration for Vim +Summary(pl.UTF-8): Integracja narzędzi Clang do formatowania i zmiany nazw z Vimem +Group: Applications/Editors/Vim +Requires: vim-rt >= 4:7.0 +BuildArch: noarch + +%description -n vim-plugin-clang +Clang format and rename integration for Vim. + +%description -n vim-plugin-clang -l pl.UTF-8 +Integracja narzędzi Clang do formatowania i zmiany nazw z Vimem. + %prep %setup -q -n %{name}-%{version}.src -a1 %{?with_rt:-a2} %{?with_lldb:-a3} %{?with_polly:-a4} -a5 -a6 %{__mv} cfe-%{version}.src tools/clang -%{?with_rt:mv compiler-rt-%{version}.src projects/compiler-rt} -%{?with_lldb:mv lldb-%{version}.src tools/lldb} -%{?with_polly:mv polly-%{version}.src tools/polly} +%{?with_rt:%{__mv} compiler-rt-%{version}.src projects/compiler-rt} +%{?with_lldb:%{__mv} lldb-%{version}.src tools/lldb} +%{?with_polly:%{__mv} polly-%{version}.src tools/polly} %{__mv} clang-tools-extra-%{version}.src tools/clang/tools/extra %{__mv} lld-%{version}.src tools/lld -%patch0 -p1 %patch1 -p1 -%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 @@ -510,6 +540,10 @@ grep -rl /usr/bin/env tools utils | xargs sed -i -e '1{ s,^#!.*bin/env perl,#!%{__perl}, }' +find -name '*.py' -print0 | xargs -0 sed -i -e '1{ + s,^#!.*bin/python.*,#!%{__python}, +}' + %build install -d build @@ -519,10 +553,10 @@ cd build CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64" %cmake \ -%ifarch %{x8664} +%if "%{_lib}" == "lib64" -DLLVM_LIBDIR_SUFFIX:STRING=64 \ %endif -%ifarch x32 +%if "%{_lib}" == "libx32" -DLLVM_LIBDIR_SUFFIX:STRING=x32 \ %endif %if %{with apidocs} @@ -532,19 +566,20 @@ CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64" -DLLVM_ENABLE_SPHINX:BOOL=ON \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ %endif - -DLLVM_ENABLE_PIC:BOOL=ON \ -DLLVM_ENABLE_ASSERTIONS:BOOL=OFF \ -DLLVM_ENABLE_CXX1Y:BOOL=ON \ + -DLLVM_ENABLE_RTTI:BOOL=ON \ + -DLLVM_ENABLE_PIC:BOOL=ON \ -DLLVM_BINDINGS_LIST:LIST="%{?with_ocaml:ocaml}" \ -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DENABLE_LINKER_BUILD_ID:BOOL=ON \ + -DLLVM_BINUTILS_INCDIR:STRING=%{_includedir} \ ../ %{__make} \ VERBOSE=1 \ - REQUIRES_RTTI=1 \ OPTIMIZE_OPTION="%{rpmcflags} %{rpmcppflags}" %if %{with tests} @@ -561,13 +596,16 @@ CPPFLAGS="%{rpmcppflags} -D_FILE_OFFSET_BITS=64" %{__make} -C tools/clang/docs docs-clang-html %{__make} -C tools/clang/docs docs-clang-man %{__make} -C tools/lld/docs docs-lld-html -%{__make} -C tools/lldb/docs lldb-python-doc +%{__make} \ + LD_LIBRARY_PATH=$(pwd)/%{_lib} \ + -C tools/lldb/docs lldb-python-doc %{__make} -C tools/lldb/docs lldb-cpp-doc %endif %install rm -rf $RPM_BUILD_ROOT -%{__make} -C build install \ + +%{__make} -j1 -C build install \ DESTDIR=$RPM_BUILD_ROOT # only some .pyc files are created by make install @@ -597,7 +635,7 @@ echo '.so llvm-ar.1' > $RPM_BUILD_ROOT%{_mandir}/man1/llvm-ranlib.1 # Move documentation back to build directory %if %{with ocaml} rm -rf ocamldocs -%{__mv} $RPM_BUILD_ROOT%{_prefix}/docs/ocaml/html/html ocamldocs +%{__mv} $RPM_BUILD_ROOT%{_docdir}/llvm/ocaml-html ocamldocs %endif # and separate the apidoc @@ -613,9 +651,6 @@ for f in LICENSE.TXT NOTES.txt README.txt; do ln tools/clang/$f clang-docs done -# Get rid of erroneously installed example files. -%{__rm} $RPM_BUILD_ROOT%{_libdir}/LLVMHello.so -# test? %{__rm} $RPM_BUILD_ROOT%{_bindir}/{c-index-test,llvm-c-test} # not this OS %{__rm} $RPM_BUILD_ROOT%{_datadir}/clang/clang-format-bbedit.applescript @@ -624,14 +659,17 @@ done # it seems it is used internally by an extra clang tool %{__rm} $RPM_BUILD_ROOT%{_libdir}/libfindAllSymbols.a +# disable completeness check incompatible with split packaging +%{__sed} -i -e '/^foreach(target .*IMPORT_CHECK_TARGETS/,/^endforeach/d; /^unset(_IMPORT_CHECK_TARGETS)/d' $RPM_BUILD_ROOT%{_libdir}/cmake/llvm/LLVMExports.cmake + %clean rm -rf $RPM_BUILD_ROOT %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%post -n clang -p /sbin/ldconfig -%postun -n clang -p /sbin/ldconfig +%post -n clang-libs -p /sbin/ldconfig +%postun -n clang-libs -p /sbin/ldconfig %post -n lldb -p /sbin/ldconfig %postun -n lldb -p /sbin/ldconfig @@ -640,36 +678,55 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc CREDITS.TXT LICENSE.TXT README.txt %{?with_tests:llvm-testlog.txt} %attr(755,root,root) %{_bindir}/bugpoint +%attr(755,root,root) %{_bindir}/dsymutil %attr(755,root,root) %{_bindir}/llc %attr(755,root,root) %{_bindir}/lli %attr(755,root,root) %{_bindir}/llvm-ar %attr(755,root,root) %{_bindir}/llvm-as %attr(755,root,root) %{_bindir}/llvm-bcanalyzer +%attr(755,root,root) %{_bindir}/llvm-cat +%attr(755,root,root) %{_bindir}/llvm-cfi-verify %attr(755,root,root) %{_bindir}/llvm-cov +%attr(755,root,root) %{_bindir}/llvm-cvtres +%attr(755,root,root) %{_bindir}/llvm-cxxdump +%attr(755,root,root) %{_bindir}/llvm-cxxfilt +%attr(755,root,root) %{_bindir}/llvm-cxxmap %attr(755,root,root) %{_bindir}/llvm-diff %attr(755,root,root) %{_bindir}/llvm-dis -%attr(755,root,root) %{_bindir}/llvm-dsymutil +%attr(755,root,root) %{_bindir}/llvm-dlltool %attr(755,root,root) %{_bindir}/llvm-dwarfdump %attr(755,root,root) %{_bindir}/llvm-dwp +%attr(755,root,root) %{_bindir}/llvm-elfabi +%attr(755,root,root) %{_bindir}/llvm-exegesis %attr(755,root,root) %{_bindir}/llvm-extract %attr(755,root,root) %{_bindir}/llvm-lib %attr(755,root,root) %{_bindir}/llvm-link %attr(755,root,root) %{_bindir}/llvm-lto +%attr(755,root,root) %{_bindir}/llvm-lto2 %attr(755,root,root) %{_bindir}/llvm-mc -%attr(755,root,root) %{_bindir}/llvm-mcmarkup +%attr(755,root,root) %{_bindir}/llvm-mca +%attr(755,root,root) %{_bindir}/llvm-modextract +%attr(755,root,root) %{_bindir}/llvm-mt %attr(755,root,root) %{_bindir}/llvm-nm +%attr(755,root,root) %{_bindir}/llvm-objcopy %attr(755,root,root) %{_bindir}/llvm-objdump +%attr(755,root,root) %{_bindir}/llvm-opt-report +%attr(755,root,root) %{_bindir}/llvm-pdbutil %attr(755,root,root) %{_bindir}/llvm-profdata %attr(755,root,root) %{_bindir}/llvm-ranlib +%attr(755,root,root) %{_bindir}/llvm-rc +%attr(755,root,root) %{_bindir}/llvm-readelf %attr(755,root,root) %{_bindir}/llvm-readobj %attr(755,root,root) %{_bindir}/llvm-rtdyld %attr(755,root,root) %{_bindir}/llvm-size %attr(755,root,root) %{_bindir}/llvm-split +%attr(755,root,root) %{_bindir}/llvm-strip %attr(755,root,root) %{_bindir}/llvm-stress +%attr(755,root,root) %{_bindir}/llvm-strings %attr(755,root,root) %{_bindir}/llvm-symbolizer %attr(755,root,root) %{_bindir}/llvm-tblgen -%attr(755,root,root) %{_bindir}/llvm-cxxdump -%attr(755,root,root) %{_bindir}/llvm-pdbdump +%attr(755,root,root) %{_bindir}/llvm-undname +%attr(755,root,root) %{_bindir}/llvm-xray %attr(755,root,root) %{_bindir}/obj2yaml %attr(755,root,root) %{_bindir}/opt %attr(755,root,root) %{_bindir}/sancov @@ -678,6 +735,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/yaml2obj %if %{with doc} %{_mandir}/man1/bugpoint.1* +%{_mandir}/man1/dsymutil.1* %{_mandir}/man1/lit.1* %{_mandir}/man1/llc.1* %{_mandir}/man1/lli.1* @@ -685,13 +743,18 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man1/llvm-as.1* %{_mandir}/man1/llvm-bcanalyzer.1* %{_mandir}/man1/llvm-cov.1* +%{_mandir}/man1/llvm-cxxmap.1* %{_mandir}/man1/llvm-diff.1* %{_mandir}/man1/llvm-dis.1* %{_mandir}/man1/llvm-dwarfdump.1* +%{_mandir}/man1/llvm-exegesis.1* %{_mandir}/man1/llvm-extract.1* %{_mandir}/man1/llvm-lib.1* %{_mandir}/man1/llvm-link.1* +%{_mandir}/man1/llvm-mca.1* %{_mandir}/man1/llvm-nm.1* +%{_mandir}/man1/llvm-objdump.1* +%{_mandir}/man1/llvm-pdbutil.1* %{_mandir}/man1/llvm-profdata.1* %{_mandir}/man1/llvm-ranlib.1* %{_mandir}/man1/llvm-readobj.1* @@ -706,13 +769,16 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/libLLVM-%{abi}.so # non-soname symlink %attr(755,root,root) %{_libdir}/libLLVM-%{version}.so -%attr(755,root,root) %{_libdir}/libLTO.so +%attr(755,root,root) %ghost %{_libdir}/libLTO.so.8 +%attr(755,root,root) %{_libdir}/LLVMgold.so +%attr(755,root,root) %{_libdir}/libOptRemarks.so.8 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/llvm-config %attr(755,root,root) %{_libdir}/libLLVM.so -%attr(755,root,root) %{_libdir}/BugpointPasses.so +%attr(755,root,root) %{_libdir}/libLTO.so +%attr(755,root,root) %{_libdir}/libOptRemarks.so %{_libdir}/libLLVM*.a %{_includedir}/llvm %{_includedir}/llvm-c @@ -742,6 +808,7 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libPollyISL.a %{_libdir}/libPollyPPCG.a %{_includedir}/polly +%{_libdir}/cmake/polly %endif %files -n clang @@ -752,15 +819,26 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/clang-%{abi} %attr(755,root,root) %{_bindir}/clang-check %attr(755,root,root) %{_bindir}/clang-cl +%attr(755,root,root) %{_bindir}/clang-cpp %attr(755,root,root) %{_bindir}/clang-format +%attr(755,root,root) %{_bindir}/clang-import-test +%attr(755,root,root) %{_bindir}/clang-offload-bundler %attr(755,root,root) %{_bindir}/git-clang-format %dir %{_libdir}/clang %dir %{_libdir}/clang/%{version} %{_libdir}/clang/%{version}/include %if %{with rt} -%ifarch %{ix86} %{x8664} x32 +%ifarch %{ix86} %{x8664} +%dir %{_libdir}/clang/%{version}/lib +%dir %{_libdir}/clang/%{version}/lib/linux +%dir %{_libdir}/clang/%{version}/share +%endif +%ifarch x32 +%if %{with multilib} %dir %{_libdir}/clang/%{version}/lib %dir %{_libdir}/clang/%{version}/lib/linux +%dir %{_libdir}/clang/%{version}/share +%endif %endif %ifarch %{ix86} %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-i*86.a @@ -771,15 +849,27 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.so %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a.syms %endif -%ifarch %{ix86} %{x8664} x32 %{arm} aarch64 mips mips64 ppc64 -%{_libdir}/clang/%{version}/asan_blacklist.txt +%ifarch %{ix86} %{x8664} %{arm} aarch64 mips mips64 ppc64 +%{_libdir}/clang/%{version}/share/asan_blacklist.txt +%endif +%ifarch %{ix86} %{x8664} mips64 +%{_libdir}/clang/%{version}/share/cfi_blacklist.txt +%endif +%ifarch %{x8664} aarch64 mips64 +%{_libdir}/clang/%{version}/share/dfsan_abilist.txt +%{_libdir}/clang/%{version}/share/msan_blacklist.txt +%endif +%ifarch %{x8664} aarch64 +%{_libdir}/clang/%{version}/share/hwasan_blacklist.txt %endif -%ifarch %{ix86} %{x8664} x32 mips64 -%{_libdir}/clang/%{version}/cfi_blacklist.txt +%ifarch x32 +%if %{with multilib} +%{_libdir}/clang/%{version}/share/asan_blacklist.txt +%{_libdir}/clang/%{version}/share/cfi_blacklist.txt +%{_libdir}/clang/%{version}/share/dfsan_abilist.txt +%{_libdir}/clang/%{version}/share/msan_blacklist.txt +%{_libdir}/clang/%{version}/share/hwasan_blacklist.txt %endif -%ifarch %{x8664} x32 aarch64 mips64 -%{_libdir}/clang/%{version}/dfsan_abilist.txt -%{_libdir}/clang/%{version}/msan_blacklist.txt %endif %endif %dir %{_datadir}/clang @@ -836,11 +926,18 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc tools/clang/tools/extra/{CODE_OWNERS.TXT,README.txt} %attr(755,root,root) %{_bindir}/clang-apply-replacements +%attr(755,root,root) %{_bindir}/clang-change-namespace +%attr(755,root,root) %{_bindir}/clang-extdef-mapping %attr(755,root,root) %{_bindir}/clang-include-fixer %attr(755,root,root) %{_bindir}/clang-query +%attr(755,root,root) %{_bindir}/clang-refactor %attr(755,root,root) %{_bindir}/clang-rename +%attr(755,root,root) %{_bindir}/clang-reorder-fields %attr(755,root,root) %{_bindir}/clang-tidy +%attr(755,root,root) %{_bindir}/clangd +%attr(755,root,root) %{_bindir}/diagtool %attr(755,root,root) %{_bindir}/find-all-symbols +%attr(755,root,root) %{_bindir}/hmaptool %attr(755,root,root) %{_bindir}/modularize %attr(755,root,root) %{_bindir}/pp-trace %{_datadir}/clang/clang-include-fixer.py @@ -852,25 +949,28 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc tools/lld/{LICENSE.TXT,README.md} %attr(755,root,root) %{_bindir}/ld.lld +%attr(755,root,root) %{_bindir}/ld64.lld %attr(755,root,root) %{_bindir}/lld %attr(755,root,root) %{_bindir}/lld-link +%attr(755,root,root) %{_bindir}/wasm-ld %files -n lld-devel %defattr(644,root,root,755) -%{_libdir}/liblld[ACDEHMRXY]*.a +%{_libdir}/liblld[ACDEHMRWXY]*.a %{_includedir}/lld %if %{with lldb} %files -n lldb %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/lldb -%attr(755,root,root) %{_bindir}/lldb-%{version} %attr(755,root,root) %{_bindir}/lldb-argdumper %attr(755,root,root) %{_bindir}/lldb-mi -%attr(755,root,root) %{_bindir}/lldb-mi-%{version} %attr(755,root,root) %{_bindir}/lldb-server -%attr(755,root,root) %{_bindir}/lldb-server-%{version} +%attr(755,root,root) %{_bindir}/lldb-test +%attr(755,root,root) %{_bindir}/lldb-vscode %attr(755,root,root) %{_libdir}/liblldb.so.%{version} +%attr(755,root,root) %ghost %{_libdir}/liblldb.so.8 +%attr(755,root,root) %ghost %{_libdir}/liblldbIntelFeatures.so.8 %dir %{py_sitedir}/lldb %attr(755,root,root) %{py_sitedir}/lldb/lldb-argdumper %{py_sitedir}/lldb/formatters @@ -884,6 +984,7 @@ rm -rf $RPM_BUILD_ROOT %files -n lldb-devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/liblldb.so +%attr(755,root,root) %{_libdir}/liblldbIntelFeatures.so %{_libdir}/liblldb*.a %{_includedir}/lldb %endif @@ -891,18 +992,30 @@ rm -rf $RPM_BUILD_ROOT %if %{with ocaml} %files ocaml %defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/ocaml/stublibs/dllllvm*.so +%dir %{_libdir}/ocaml/llvm +%{_libdir}/ocaml/llvm/llvm*.cma +%{_libdir}/ocaml/llvm/llvm*.cmi %{_libdir}/ocaml/META.llvm* -%attr(755,root,root) %{_libdir}/ocaml/dllllvm*.so -%{_libdir}/ocaml/llvm*.cma -%{_libdir}/ocaml/llvm*.cmi %files ocaml-devel %defattr(644,root,root,755) -%{_libdir}/ocaml/libllvm*.a -%{_libdir}/ocaml/llvm*.a -%{_libdir}/ocaml/llvm*.cmx* +%{_libdir}/ocaml/llvm/libllvm*.a +%{_libdir}/ocaml/llvm/llvm*.a +%{_libdir}/ocaml/llvm/llvm*.cmx +%{_libdir}/ocaml/llvm/llvm*.cmxa +%{_libdir}/ocaml/llvm/llvm*.mli %files ocaml-doc %defattr(644,root,root,755) %doc ocamldocs/* %endif + +%files opt-viewer +%defattr(644,root,root,755) +%{_datadir}/opt-viewer + +%files -n vim-plugin-clang +%defattr(644,root,root,755) +%{_datadir}/clang/clang-format.py +%{_datadir}/clang/clang-rename.py diff --git a/x32-gcc-toolchain.patch b/x32-gcc-toolchain.patch index fffe393..701d570 100644 --- a/x32-gcc-toolchain.patch +++ b/x32-gcc-toolchain.patch @@ -1,5 +1,5 @@ ---- llvm-3.6.2.src/tools/clang/lib/Driver/ToolChains.cpp~ 2015-07-26 12:48:18.000000000 +0200 -+++ llvm-3.6.2.src/tools/clang/lib/Driver/ToolChains.cpp 2015-07-26 17:44:56.883613971 +0200 +--- llvm-5.0.0.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp~ 2015-07-26 12:48:18.000000000 +0200 ++++ llvm-5.0.0.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp 2015-07-26 17:44:56.883613971 +0200 @@ -1312,6 +1312,9 @@ "x86_64-slackware-linux", "x86_64-linux-android", "x86_64-unknown-linux"};