Hello community, here is the log from the commit of package llvm7 for openSUSE:Factory checked in at 2019-06-22 11:22:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm7 (Old) and /work/SRC/openSUSE:Factory/.llvm7.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm7" Sat Jun 22 11:22:10 2019 rev:14 rq:710290 version:7.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm7/llvm7.changes 2019-05-03 22:26:18.284199581 +0200 +++ /work/SRC/openSUSE:Factory/.llvm7.new.4615/llvm7.changes 2019-06-22 11:22:14.325260988 +0200 @@ -1,0 +2,26 @@ +Sat Jun 15 20:11:03 UTC 2019 - Aaron Puchert <[email protected]> + +- Change some groups: + * put libraries in System/Libraries, + * devel packages in Development/Libraries, + * clang in Development/Languages/C and C++, + * the gold plugin in Development/Tools/Building. +- Add some URLs, use https:// when possible. +- Remove unneeded devel dependencies. +- Only suggest a C++ standard library for clang. It's also a + C compiler and needs no C++ library when only used as such. +- Fix Supplements for editor plugins. +- Fix some rpmlint issues: + * Reword summary and description for Polly. + * Fix /usr/bin/env shebangs. + * Remove executable bit where not needed. + * Move bash completion to /usr. + * Remove hard dependency of libclang8 to libstdc++-devel. +- Make rpm macros work properly. +- Remove sources from documentation. +- Run %fdupes on the right directories. +- Don't run LLVM tests on ppc, where they often get stuck. +- Enable tests for libcxx, where possible. +- Reduce memory requirements for compile jobs depending on arch. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm7.spec ++++++ --- /var/tmp/diff_new_pack.xHsIYC/_old 2019-06-22 11:22:17.405264261 +0200 +++ /var/tmp/diff_new_pack.xHsIYC/_new 2019-06-22 11:22:17.405264261 +0200 @@ -66,18 +66,18 @@ Summary: Low Level Virtual Machine License: NCSA Group: Development/Languages/Other -Url: http://www.llvm.org +Url: https://www.llvm.org/ # NOTE: please see README.packaging in the llvm package for details on how to update this package -Source0: http://llvm.org/releases/%{_relver}/llvm-%{_relver}.src.tar.xz -Source1: http://llvm.org/releases/%{_relver}/cfe-%{_relver}.src.tar.xz -Source2: http://llvm.org/releases/%{_relver}/clang-tools-extra-%{_relver}.src.tar.xz -Source3: http://llvm.org/releases/%{_relver}/compiler-rt-%{_relver}.src.tar.xz -Source4: http://llvm.org/releases/%{_relver}/libcxx-%{_relver}.src.tar.xz -Source5: http://llvm.org/releases/%{_relver}/libcxxabi-%{_relver}.src.tar.xz -Source6: http://llvm.org/releases/%{_relver}/openmp-%{_relver}.src.tar.xz -Source7: http://llvm.org/releases/%{_relver}/lld-%{_relver}.src.tar.xz -Source8: http://llvm.org/releases/%{_relver}/lldb-%{_relver}.src.tar.xz -Source9: http://llvm.org/releases/%{_relver}/polly-%{_relver}.src.tar.xz +Source0: https://llvm.org/releases/%{_relver}/llvm-%{_relver}.src.tar.xz +Source1: https://llvm.org/releases/%{_relver}/cfe-%{_relver}.src.tar.xz +Source2: https://llvm.org/releases/%{_relver}/clang-tools-extra-%{_relver}.src.tar.xz +Source3: https://llvm.org/releases/%{_relver}/compiler-rt-%{_relver}.src.tar.xz +Source4: https://llvm.org/releases/%{_relver}/libcxx-%{_relver}.src.tar.xz +Source5: https://llvm.org/releases/%{_relver}/libcxxabi-%{_relver}.src.tar.xz +Source6: https://llvm.org/releases/%{_relver}/openmp-%{_relver}.src.tar.xz +Source7: https://llvm.org/releases/%{_relver}/lld-%{_relver}.src.tar.xz +Source8: https://llvm.org/releases/%{_relver}/lldb-%{_relver}.src.tar.xz +Source9: https://llvm.org/releases/%{_relver}/polly-%{_relver}.src.tar.xz # Docs are created manually, see below Source50: llvm-docs-%{_relver}.src.tar.xz Source51: cfe-docs-%{_relver}.src.tar.xz @@ -157,14 +157,14 @@ %package -n libLLVM%{_sonum} Summary: Libraries for LLVM -Group: Development/Libraries/C and C++ +Group: System/Libraries %description -n libLLVM%{_sonum} This package contains the shared libraries needed for LLVM. %package devel Summary: Header Files for LLVM -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: %{name} = %{_relver} Requires: binutils-devel >= 2.21.90 Requires: bison @@ -197,16 +197,16 @@ %package -n clang%{_sonum} Summary: CLANG frontend for LLVM +Group: Development/Languages/C and C++ +Url: https://clang.llvm.org/ # Avoid multiple provider errors -Group: Development/Languages/Other Requires: libLTO%{_sonum} Requires: libclang%{_sonum} Recommends: clang%{_sonum}-checker -Recommends: libc++-devel -Recommends: libomp%{_sonum}-devel -Recommends: llvm-gold-devel Recommends: scan-build Recommends: scan-view +Suggests: libstdc++-devel +Suggests: libc++-devel %if %{with cxx} Requires: libc++%{_socxx} %endif @@ -218,8 +218,9 @@ %package -n clang%{_sonum}-checker Summary: Static code analyzer for CLANG +Group: Development/Languages/C and C++ +Url: https://clang-analyzer.llvm.org/ # Avoid multiple provider errors -Group: Development/Languages/Other Requires: libclang%{_sonum} # Due to a packaging error in clang3_8 we have to conflict. Conflicts: clang3_8 @@ -235,7 +236,7 @@ %package -n clang%{_sonum}-include-fixer Summary: Automatically add missing includes # Avoid multiple provider errors -Group: Development/Languages/Other +Group: Development/Languages/C and C++ Requires: libclang%{_sonum} = %{_relver} Conflicts: clang-include-fixer Conflicts: find-all-symbols @@ -257,16 +258,15 @@ %package -n libclang%{_sonum} Summary: Library files needed for clang # Avoid multiple provider errors -Group: Development/Libraries/C and C++ +Group: System/Libraries Requires: libLLVM%{_sonum} -Requires: libstdc++-devel %description -n libclang%{_sonum} This package contains the shared libraries needed for clang. %package -n clang%{_sonum}-devel Summary: CLANG frontend for LLVM (devel package) -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{_relver} Requires: clang%{_sonum} = %{_relver} Conflicts: cmake(Clang) @@ -278,7 +278,7 @@ %package -n libLTO%{_sonum} Summary: Link-time optimizer for LLVM # Avoid multiple provider errors -Group: Development/Languages/Other +Group: System/Libraries Requires: libLLVM%{_sonum} %description -n libLTO%{_sonum} @@ -287,7 +287,7 @@ %package LTO-devel Summary: Link-time optimizer for LLVM (devel package) # Avoid multiple provider errors -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{_relver} Requires: libLTO%{_sonum} Conflicts: libLTO.so @@ -300,7 +300,7 @@ %package gold Summary: Gold linker plugin for LLVM # Avoid multiple provider errors -Group: Development/Languages/Other +Group: Development/Tools/Building Requires: libLLVM%{_sonum} Conflicts: llvm-gold-provider Provides: llvm-gold-provider @@ -311,7 +311,7 @@ %package -n libomp%{_sonum}-devel Summary: MPI plugin for LLVM # Avoid multiple provider errors -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: libLLVM%{_sonum} Conflicts: libomp-devel Provides: libomp-devel @@ -322,7 +322,8 @@ %if %{with libcxx} %package -n libc++%{_socxx} Summary: C++ standard library implementation -Group: Development/Libraries/C and C++ +Group: System/Libraries +Url: https://libcxx.llvm.org/ Requires: libc++abi%{_socxx} = %{_relver} %description -n libc++%{_socxx} @@ -332,7 +333,7 @@ %package -n libc++-devel Summary: C++ standard library implementation (devel package) # Avoid multiple provider errors -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: libc++%{_socxx} = %{_relver} Requires: libc++abi-devel = %{_relver} Conflicts: libc++.so @@ -344,7 +345,8 @@ %package -n libc++abi%{_socxx} Summary: C++ standard library ABI -Group: Development/Libraries/C and C++ +Group: System/Libraries +Url: https://libcxxabi.llvm.org/ %description -n libc++abi%{_socxx} This package contains the ABI for libc++, a new implementation @@ -352,7 +354,7 @@ %package -n libc++abi-devel Summary: C++ standard library ABI (devel package) -Group: Development/Languages/C and C++ +Group: Development/Libraries/C and C++ Requires: libc++-devel Requires: libc++abi%{_socxx} = %{_relver} Conflicts: libc++abi.so @@ -367,7 +369,7 @@ %package vim-plugins Summary: Vim plugins for LLVM Group: Productivity/Text/Editors -Supplements: packageand(llvm3_9-devel:vim) +Supplements: packageand(llvm%{_sonum}-devel:vim) Conflicts: vim-plugin-llvm Provides: vim-plugin-llvm BuildArch: noarch @@ -378,7 +380,7 @@ %package emacs-plugins Summary: Emacs plugins for LLVM Group: Productivity/Text/Editors -Supplements: packageand(llvm3_9-devel:emacs) +Supplements: packageand(llvm%{_sonum}-devel:emacs) Conflicts: emacs-llvm Provides: emacs-llvm BuildArch: noarch @@ -388,7 +390,7 @@ %package -n python3-clang Summary: Python bindings for libclang -Group: Development/Languages/Python +Group: Development/Libraries/Python Requires: clang%{_sonum}-devel = %{_relver} BuildArch: noarch Provides: %{python3_sitearch}/clang/ @@ -401,6 +403,7 @@ %package -n lld%{_sonum} Summary: Linker for Clang/LLVM Group: Development/Tools/Building +Url: https://lld.llvm.org/ Requires(post): update-alternatives Requires(postun): update-alternatives @@ -425,7 +428,7 @@ %package -n lldb%{_sonum} Summary: Software debugger built using LLVM libraries Group: Development/Tools/Debuggers -Url: http://lldb.llvm.org +Url: https://lldb.llvm.org/ BuildRequires: cmake BuildRequires: fdupes BuildRequires: ncurses-devel @@ -461,7 +464,7 @@ %package -n lldb%{_sonum}-devel Summary: Development files for LLDB # Avoid multiple provider errors -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: clang%{_sonum}-devel = %{_relver} Requires: cmake Requires: liblldb%{_sonum} = %{_relver} @@ -481,9 +484,9 @@ %if %{with lldb_python} %package -n python3-lldb%{_sonum} Summary: Python bindings for liblldb -# Avoid multiple provider errors -Group: Development/Languages/Python +Group: Development/Libraries/Python BuildRequires: swig >= 3.0.11 +# Avoid multiple provider errors Requires: liblldb%{_sonum} = %{_relver} Provides: %{python3_sitearch}/lldb/ Conflicts: %{python3_sitearch}/lldb/ @@ -495,22 +498,23 @@ %endif %package polly -Summary: Polly is a high-level loop and data-locality optimizer and optimization infrastructure for LLVM. +Summary: LLVM Framework for High-Level Loop and Data-Locality Optimizations Group: Development/Languages/Other +Url: https://polly.llvm.org/ Conflicts: llvm-polly-provider Provides: llvm-polly-provider %description polly -Polly uses an abstract mathematical representation based on integer polyhedra -o analyze and optimize the memory access pattern of a program. We currently -perform classical loop transformations, especially tiling and loop fusion to -improve data-locality. Polly can also exploit OpenMP level parallelism, expose -SIMDization opportunities. Work has also be done in the area of automatic GPU -code generation. +Polly is a high-level loop and data-locality optimizer and optimization +infrastructure for LLVM. It uses an abstract mathematical representation based +on integer polyhedra to analyze and optimize the memory access pattern of a +program. Polly can currently perform classical loop transformations, especially +tiling and loop fusion to improve data-locality. It can also exploit OpenMP +level parallelism and expose SIMDization opportunities. %package polly-devel Summary: Development files for Polly -Group: Development/Languages/Other +Group: Development/Libraries/C and C++ Requires: llvm%{_sonum}-polly = %{_relver} Conflicts: llvm-polly-devel-provider Provides: llvm-polly-devel-provider @@ -639,24 +643,31 @@ %endif # do not eat all memory +mem_per_compile_job=900000 +%ifarch i586 ppc armv6hl armv7hl +mem_per_compile_job=600000 +%endif +%ifarch x86_64 +mem_per_compile_job=800000 +%endif + max_link_jobs="%{?jobs:%{jobs}}" max_compile_jobs="%{?jobs:%{jobs}}" echo "Available memory:" cat /proc/meminfo echo "System limits:" ulimit -a -max_mem=$(awk '/MemTotal/ { print $2 }' /proc/meminfo) +avail_mem=$(awk '/MemAvailable/ { print $2 }' /proc/meminfo) if test -n "$max_link_jobs" -a "$max_link_jobs" -gt 1 ; then mem_per_link_job=3000000 - max_jobs="$(($max_mem / $mem_per_link_job))" + max_jobs="$(($avail_mem / $mem_per_link_job))" test "$max_link_jobs" -gt "$max_jobs" && max_link_jobs="$max_jobs" && echo "Warning: Reducing number of link jobs to $max_jobs because of memory limits" - test "$max_link_jobs" -le 0 && max_link_jobs=1 && echo "Warning: Not linking in parallel at all becuse of memory limits" + test "$max_link_jobs" -le 0 && max_link_jobs=1 && echo "Warning: Not linking in parallel at all because of memory limits" fi if test -n "$max_compile_jobs" -a "$max_compile_jobs" -gt 1 ; then - mem_per_compile_job=1500000 - max_jobs="$(($max_mem / $mem_per_compile_job))" + max_jobs="$(($avail_mem / $mem_per_compile_job))" test "$max_compile_jobs" -gt "$max_jobs" && max_compile_jobs="$max_jobs" && echo "Warning: Reducing number of compile jobs to $max_jobs because of memory limits" - test "$max_compile_jobs" -le 0 && max_compile_jobs=1 && echo "Warning: Not compiling in parallel at all becuse of memory limits" + test "$max_compile_jobs" -le 0 && max_compile_jobs=1 && echo "Warning: Not compiling in parallel at all because of memory limits" fi %define __builder ninja @@ -828,8 +839,8 @@ mkdir -p %{buildroot}%{_libdir}/clang/%{_relver} mv %{buildroot}%{_datadir}/clang/bash-autocomplete.sh %{buildroot}%{_libdir}/clang/%{_relver}/bash-autocomplete.sh -mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d -ln -s %{_sysconfdir}/alternatives/clang-bash-autocomplete.sh %{buildroot}%{_sysconfdir}/bash_completion.d/clang.sh +mkdir -p %{buildroot}%{_datadir}/bash-completion/completions +ln -s %{_sysconfdir}/alternatives/clang-bash-autocomplete.sh %{buildroot}%{_datadir}/bash-completion/completions/clang.sh chmod -x %{buildroot}%{_mandir}/man1/scan-build.1 @@ -927,26 +938,41 @@ # # Version information -_llvm_version %{_relver} -_llvm_relver %{_relver} -_llvm_minorver %{_minor} -_llvm_sonum %{_sonum} -_libcxx_sonum %{_socxx} -_llvm_revision %{_revsn} +%_llvm_version %{_relver} +%_llvm_relver %{_relver} +%_llvm_minorver %{_minor} +%_llvm_sonum %{_sonum} +%_libcxx_sonum %{_socxx} +%_llvm_revision %{_revsn} # Build information -_llvm_with_libcxx %{with libcxx} -_llvm_with_openmp %{with openmp} -_llvm_with_ffi %{with ffi} -_llvm_with_oprofile %{with oprofile} -_llvm_with_valgrind %{with valgrind} -_llvm_with_pyclang %{with pyclang} -_llvm_with_lldb %{with lldb} - +%_llvm_with_libcxx %{with libcxx} +%_llvm_with_openmp %{with openmp} +%_llvm_with_ffi %{with ffi} +%_llvm_with_oprofile %{with oprofile} +%_llvm_with_valgrind %{with valgrind} +%_llvm_with_pyclang %{with pyclang} +%_llvm_with_lldb %{with lldb} EOF -%fdupes -s %{buildroot}%{_docdir}/%{name} -%fdupes -s %{buildroot}%{_docdir}/%{name}-doc +# Fix shebangs. +for script in %{buildroot}%{_bindir}/{{clang-{format,tidy}-diff,git-clang-format,\ +hmaptool,run-clang-tidy}-%{_relver},{ccc,c++}-analyzer,scan-{build,view}}; do + sed -i '1 s|/usr/bin/env *|/usr/bin/|' $script +done + +# Remove executable bit where not needed. +chmod -x \ + %{buildroot}%{python3_sitelib}/optpmap.py \ + %{buildroot}%{_libdir}/clang/%{_relver}/bash-autocomplete.sh \ + %{buildroot}%{_datadir}/clang/clang-{format,include-fixer,rename}.{el,py} \ + %{buildroot}%{_datadir}/opt-viewer/style.css + +# Remove documentation sources. +rm -r %{buildroot}%{_docdir}/llvm{,-clang}/html/_sources + +%fdupes -s %{buildroot}%{_docdir}/llvm +%fdupes -s %{buildroot}%{_docdir}/llvm-clang %fdupes %{_includedir}/%{name}/Host/ %check @@ -962,16 +988,16 @@ %if !0%{?qemu_user_space_build:1} # we just do not have enough memory with qemu emulation -%ifarch ppc -ninja -v %{?_smp_mflags} check || { echo "Ignore PowerPC failures"; } -%else +# Tests regularly get stuck on ppc, so we don't run them there. +%ifnarch ppc ninja -v %{?_smp_mflags} check %endif ninja -v %{?_smp_mflags} check-clang %if %{with libcxx} -# FIXME: check-libcxx is currently disabled because of failing tests in experimental features -# ninja -v %{?_smp_mflags} check-libcxx +%ifnarch aarch64 +ninja -v %{?_smp_mflags} check-libcxx +%endif ninja -v %{?_smp_mflags} check-libcxxabi %endif @@ -1146,7 +1172,7 @@ --slave %{_bindir}/modularize modularize %{_bindir}/modularize-%{_relver} \ --slave %{_bindir}/run-clang-tidy run-clang-tidy %{_bindir}/run-clang-tidy-%{_relver} \ --slave %{_mandir}/man1/clang.1%{ext_man} clang.1%{ext_man} %{_mandir}/man1/clang-%{_relver}.1%{ext_man} \ - --slave %{_sysconfdir}/bash_completion.d/clang.sh clang-bash-autocomplete %{_libdir}/clang/%{_relver}/bash-autocomplete.sh + --slave %{_datadir}/bash-completion/completions/clang.sh clang-bash-autocomplete.sh %{_libdir}/clang/%{_relver}/bash-autocomplete.sh %postun -n clang%{_sonum} if [ ! -f %{_bindir}/clang-%{_relver} ] ; then @@ -1530,7 +1556,7 @@ %{_libdir}/clang/%{_relver}/lib %{_libdir}/clang/%{_relver}/share %endif -%{_sysconfdir}/bash_completion.d/clang.sh +%{_datadir}/bash-completion/completions/clang.sh %files -n clang%{_sonum}-checker %license CREDITS.TXT LICENSE.TXT
