# # spec file for package llvm9 # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define _relver 9.0.1 %define _minor 9.0 %define _sonum 9 # Integer version used by update-alternatives %define _uaver 901 %define _socxx 1 %ifarch x86_64 aarch64 %arm %bcond_without libcxx %else %bcond_with libcxx %endif %ifarch aarch64 ppc64 ppc64le %{ix86} x86_64 %bcond_without openmp %else %bcond_with openmp %endif # LLVM currently doesn't build with Gold on ppc # Gold is not supported on riscv64 %ifarch ppc riscv64 %bcond_with gold %else %bcond_without gold %endif %ifarch x86_64 %bcond_without lldb %if 0%{?suse_version} > 1320 # lldb python breaks with swig < 3.0.11 %bcond_without lldb_python %else %bcond_with lldb_python %endif %else %bcond_with lldb %bcond_with lldb_python %endif %ifarch %{arm} x86_64 %{ix86} ppc64le s390x %bcond_without thin_lto %else %bcond_with thin_lto %endif %bcond_with ffi %bcond_with oprofile %bcond_with valgrind %bcond_without pyclang %bcond_without polly %bcond_without lld Name: llvm9 Version: 9.0.1 Release: 7.3 Summary: Low Level Virtual Machine License: Apache-2.0 WITH LLVM-exception OR NCSA Group: Development/Languages/Other URL: https://www.llvm.org/ # NOTE: please see README.packaging in the llvm package for details on how to update this package 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}/clang-%{version}.src.tar.xz Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-tools-extra-%{version}.src.tar.xz Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/compiler-rt-%{version}.src.tar.xz Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/libcxx-%{version}.src.tar.xz Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/libcxxabi-%{version}.src.tar.xz Source6: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/openmp-%{version}.src.tar.xz Source7: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lld-%{version}.src.tar.xz Source8: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lldb-%{version}.src.tar.xz Source9: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/polly-%{version}.src.tar.xz # Docs are created manually, see below Source50: llvm-docs-%{version}.src.tar.xz Source51: clang-docs-%{version}.src.tar.xz Source100: %{name}-rpmlintrc Source101: baselibs.conf # PATCH-FIX-OPENSUSE lto-disable-cache.patch -- Disable ThinLTO cache Patch0: lto-disable-cache.patch # PATCH-FIX-OPENSUSE assume-opensuse.patch idoenmez@suse.de -- Always enable openSUSE/SUSE features Patch2: assume-opensuse.patch # PATCH-FIX-OPENSUSE default-to-i586.patch -- Use i586 as default target for 32bit Patch3: default-to-i586.patch Patch4: clang-resourcedirs.patch Patch5: llvm-remove-clang-only-flags.patch Patch6: llvm-fix-find-gcc5-install.patch Patch8: clang-ignore-stack-clash-protector.patch Patch9: link-clang-shared.patch Patch10: link-clang-tools-extra-shared.patch # PATCH-FIX-OPENSUSE lldb-cmake.patch -- Let us set LLDB_REVISION and fix ncurses include path. Patch11: lldb-cmake.patch Patch12: link-lldb-shared.patch Patch13: llvm-normally-versioned-libllvm.patch Patch14: llvm-do-not-install-static-libraries.patch Patch20: llvm_build_tablegen_component_as_shared_library.patch Patch21: tests-use-python3.patch Patch22: llvm-better-detect-64bit-atomics-support.patch Patch24: opt-viewer-Find-style-css-in-usr-share.patch Patch26: clang-fix-powerpc-triplet.patch # PATCH-FIX-UPSTREAM openmp-export-fini.patch -- Export termination function for libomp.so (boo#1155108) Patch27: openmp-export-fini.patch # https://github.com/llvm/llvm-project/commit/343597789eba1e6482e130b0c1b0818b1432d311 Patch28: gwp-asan-lto.patch # Do not use the deprecated platform.linux_distribution. Patch29: libcxx-tests-linux-distribution.patch # Backports of RISC-V patches (D65634, D66003, D63497, D69723, D60657) Patch30: clang-riscv64-rv64gc.diff Patch31: riscv64-suse-linux.patch Patch32: llvm-riscv64-fix-cffi.diff Patch33: D60657-riscv-pcrel_lo.diff # Backport of .eh_frame related RISC-V fixes (D61584, D63404, D66419) Patch34: riscv-eh-frame-fixup.patch # PATCH-FIX-OPENSUSE polly-pthread.patch -- Make sure -lpthread is linked after libPolly (related to GCC#55394) Patch35: polly-pthread.patch # PATCH-FEATURE_UPSTREAM compiler-rt-move-fdp.patch -- Move FuzzedDataProvider to include Patch36: compiler-rt-move-fdp.patch # PATCH-FIX-UPSTREAM compiler-rt-sanitizer-ipc-perm.patch -- Fix sanitizer-common build with glibc 2.31 Patch37: compiler-rt-sanitizer-ipc-perm.patch # eisfair patch i586-pc-linux-gnu Patch1000: llvm-target-i586-pc-linux-gnu.patch BuildRequires: binutils-devel >= 2.21.90 BuildRequires: cmake BuildRequires: fdupes BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libstdc++-devel BuildRequires: libtool BuildRequires: ninja BuildRequires: pkgconfig BuildRequires: python3-base BuildRequires: pkgconfig(libedit) BuildRequires: pkgconfig(zlib) # Avoid multiple provider errors Requires: libLLVM%{_sonum} Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: %{name}-doc # llvm does not work on s390 ExcludeArch: s390 %if %{with gold} BuildRequires: binutils-gold %endif %if %{with ffi} BuildRequires: pkgconfig(libffi) %endif %if %{with valgrind} BuildRequires: pkgconfig(valgrind) %endif %if %{with oprofile} BuildRequires: oprofile-devel %endif %description LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, and idle-time optimization of programs from arbitrary programming languages. The compiler infrastructure includes mirror sets of programming tools as well as libraries with equivalent functionality. %package -n libLLVM%{_sonum} Summary: Libraries for LLVM 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/Libraries/C and C++ Requires: %{name} = %{version} Requires: libstdc++-devel Requires: libtool Requires: llvm%{_sonum}-LTO-devel Requires: llvm%{_sonum}-gold %if %{with polly} Requires: llvm%{_sonum}-polly-devel %endif Requires: pkgconfig Conflicts: llvm-devel-provider < %{version} Conflicts: cmake(LLVM) Provides: llvm-devel-provider = %{version} %if %{with ffi} Requires: pkgconfig(libffi) %endif %if %{with valgrind} Requires: pkgconfig(valgrind) %endif %if %{with oprofile} Requires: oprofile-devel %endif %description devel This package contains library and header files needed to develop new native programs that use the LLVM infrastructure. %package doc Summary: Documentation for LLVM Group: Documentation/HTML Requires: %{name} = %{version} # The docs used to be contained in the devel package. Conflicts: llvm-devel-provider < 9.0.0 Conflicts: llvm-doc-provider < %{version} Provides: llvm-doc-provider = %{version} BuildArch: noarch %description doc This package contains documentation for the LLVM infrastructure. %package -n clang%{_sonum} Summary: CLANG frontend for LLVM Group: Development/Languages/C and C++ URL: https://clang.llvm.org/ # Avoid multiple provider errors Requires: libLTO%{_sonum} Requires: libclang%{_sonum} Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: clang%{_sonum}-checker Recommends: clang%{_sonum}-doc Recommends: libstdc++-devel Suggests: libc++-devel Provides: llvm%{_sonum}-emacs-plugins Conflicts: emacs-llvm < %{version} Provides: emacs-llvm = %{version} Conflicts: vim-plugin-llvm < %{version} %if %{with libcxx} Requires: libc++%{_socxx} %endif %description -n clang%{_sonum} This package contains the clang (C language) frontend for LLVM. %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 Requires: libclang%{_sonum} # Due to a packaging error in clang3_8 we have to conflict. Conflicts: clang3_8 Conflicts: scan-build < %{version} Conflicts: scan-view < %{version} Provides: scan-build = %{version} Provides: scan-view = %{version} %description -n clang%{_sonum}-checker This package contains scan-build and scan-view, command line static code analyzers for CLANG. %package -n clang%{_sonum}-include-fixer Summary: Automatically add missing includes # Avoid multiple provider errors Group: Development/Languages/C and C++ Requires: libclang%{_sonum} = %{version} Conflicts: clang-include-fixer < %{version} Conflicts: find-all-symbols < %{version} Provides: clang-include-fixer = %{version} Provides: find-all-symbols = %{version} %description -n clang%{_sonum}-include-fixer One of the major nuisances of C++ compared to other languages is the manual management of include directives in any file. clang-include-fixer addresses one aspect of this problem by providing an automated way of adding include directives for missing symbols in one translation unit. While inserting missing includes, clang-include-fixer adds missing namespace qualifiers to all instances of an unidentified symbol if the symbol is missing some prefix namespace qualifiers. %package -n libclang%{_sonum} Summary: Library files needed for clang # Avoid multiple provider errors Group: System/Libraries Requires: libLLVM%{_sonum} %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/Libraries/C and C++ Requires: %{name}-devel = %{version} Requires: clang%{_sonum} = %{version} Conflicts: cmake(Clang) %description -n clang%{_sonum}-devel This package contains the clang (C language) frontend for LLVM. (development files) %package -n clang%{_sonum}-doc Summary: Documentation for Clang Group: Documentation/HTML Conflicts: clang-doc-provider < %{version} # The docs used to be contained in the devel package. Conflicts: clang5-devel Conflicts: clang6-devel Conflicts: clang7-devel Conflicts: clang8-devel Provides: clang-doc-provider = %{version} BuildArch: noarch %description -n clang%{_sonum}-doc This package contains documentation for the Clang compiler. %package -n libLTO%{_sonum} Summary: Link-time optimizer for LLVM # Avoid multiple provider errors Group: System/Libraries Requires: libLLVM%{_sonum} %description -n libLTO%{_sonum} This package contains the link-time optimizer for LLVM. %package LTO-devel Summary: Link-time optimizer for LLVM (devel package) # Avoid multiple provider errors Group: Development/Libraries/C and C++ Requires: %{name}-devel = %{version} Requires: libLTO%{_sonum} Conflicts: libLTO.so < %{version} Provides: libLTO.so = %{version} %description LTO-devel This package contains the link-time optimizer for LLVM. (development files) %package gold Summary: Gold linker plugin for LLVM # Avoid multiple provider errors Group: Development/Tools/Building Requires: libLLVM%{_sonum} Conflicts: llvm-gold-provider < %{version} Provides: llvm-gold-provider = %{version} %description gold This package contains the Gold linker plugin for LLVM. %package -n libomp%{_sonum}-devel Summary: MPI plugin for LLVM # Avoid multiple provider errors Group: Development/Libraries/C and C++ Requires: libLLVM%{_sonum} Conflicts: libomp-devel < %{version} Provides: libomp-devel = %{version} %description -n libomp%{_sonum}-devel This package contains the OpenMP MPI plugin for LLVM. %if %{with libcxx} %package -n libc++%{_socxx} Summary: C++ standard library implementation Group: System/Libraries URL: https://libcxx.llvm.org/ Requires: libc++abi%{_socxx} = %{version} %description -n libc++%{_socxx} This package contains libc++, a new implementation of the C++ standard library, targeting C++11. %package -n libc++-devel Summary: C++ standard library implementation (devel package) # Avoid multiple provider errors Group: Development/Libraries/C and C++ Requires: libc++%{_socxx} = %{version} Requires: libc++abi-devel = %{version} Conflicts: libc++.so < %{version} Provides: libc++.so = %{version} %description -n libc++-devel This package contains libc++, a new implementation of the C++ standard library, targeting C++11. (development files) %package -n libc++abi%{_socxx} Summary: C++ standard library ABI Group: System/Libraries URL: https://libcxxabi.llvm.org/ %description -n libc++abi%{_socxx} This package contains the ABI for libc++, a new implementation of the C++ standard library, targeting C++11. %package -n libc++abi-devel Summary: C++ standard library ABI (devel package) Group: Development/Libraries/C and C++ Requires: libc++-devel Requires: libc++abi%{_socxx} = %{version} Conflicts: libc++abi.so < %{version} Provides: libc++abi.so = %{version} %description -n libc++abi-devel This package contains the ABI for libc++, a new implementation of the C++ standard library, targeting C++11. (development files) %endif %package vim-plugins Summary: Vim plugins for LLVM Group: Productivity/Text/Editors Supplements: packageand(llvm%{_sonum}:vim) Conflicts: vim-plugin-llvm < %{version} Provides: vim-plugin-llvm = %{version} BuildArch: noarch %description vim-plugins This package contains vim plugins for LLVM like syntax highlighting. %package -n python3-clang Summary: Python bindings for libclang Group: Development/Libraries/Python Requires: clang%{_sonum}-devel = %{version} Requires: python3-base Conflicts: %{python3_sitearch}/clang/ Provides: %{python3_sitearch}/clang/ BuildArch: noarch %description -n python3-clang This package contains the Python bindings to clang (C language) frontend for LLVM. %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 %description -n lld%{_sonum} LLD is a linker from the LLVM project. That is a drop-in replacement for system linkers and runs much faster than them. It also provides features that are useful for toolchain developers. %package opt-viewer Summary: Tools for visualising the LLVM optimization records Group: Development/Languages/Other BuildRequires: python3-base Requires: python3-PyYAML Requires: python3-Pygments Conflicts: opt-viewer < %{version} Provides: opt-viewer = %{version} BuildArch: noarch %description opt-viewer Set of tools for visualising the LLVM optimization records generated with -fsave-optimization-record. Used for compiler-assisted performance analysis. %if %{with lldb} %package -n lldb%{_sonum} Summary: Software debugger built using LLVM libraries Group: Development/Tools/Debuggers URL: https://lldb.llvm.org/ BuildRequires: pkgconfig BuildRequires: pkgconfig(libedit) BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(panel) BuildRequires: pkgconfig(python3) BuildRequires: pkgconfig(zlib) # Avoid multiple provider errors Requires: liblldb%{_sonum} = %{version} Requires(post): update-alternatives Requires(postun): update-alternatives Recommends: python3-lldb%{_sonum} ExclusiveArch: x86_64 %description -n lldb%{_sonum} LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler. %package -n liblldb%{_sonum} Summary: LLDB software debugger runtime library # Avoid multiple provider errors Group: System/Libraries Requires: libLLVM%{_sonum} Requires: libclang%{_sonum} %description -n liblldb%{_sonum} This subpackage contains the main LLDB component. %package -n lldb%{_sonum}-devel Summary: Development files for LLDB # Avoid multiple provider errors Group: Development/Libraries/C and C++ Requires: clang%{_sonum}-devel = %{version} Requires: liblldb%{_sonum} = %{version} Requires: llvm%{_sonum}-devel = %{version} Requires: pkgconfig(libedit) Requires: pkgconfig(libxml-2.0) Conflicts: lldb-devel-provider < %{version} Provides: lldb-devel-provider = %{version} %description -n lldb%{_sonum}-devel This package contains the development files for LLDB. %if %{with lldb_python} %package -n python3-lldb%{_sonum} Summary: Python bindings for liblldb Group: Development/Libraries/Python BuildRequires: swig >= 3.0.11 # Avoid multiple provider errors Requires: liblldb%{_sonum} = %{version} Requires: python3-base Requires: python3-six Conflicts: %{python3_sitearch}/lldb/ Provides: %{python3_sitearch}/lldb/ %description -n python3-lldb%{_sonum} This package contains the Python bindings for LLDB. It also contains pretty printers for the C++ standard library. %endif %endif %if %{with polly} %package polly Summary: LLVM Framework for High-Level Loop and Data-Locality Optimizations Group: Development/Languages/Other URL: https://polly.llvm.org/ Conflicts: llvm-polly-provider < %{version} Provides: llvm-polly-provider = %{version} %description polly 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/Libraries/C and C++ Requires: llvm%{_sonum}-polly = %{version} Conflicts: llvm-polly-devel-provider < %{version} Provides: llvm-polly-devel-provider = %{version} %description polly-devel This package contains the development files for Polly. %endif %prep %setup -q -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -b 50 -a 51 -n llvm-%{version}.src %patch0 -p2 %patch5 -p1 %patch13 -p1 %patch14 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch24 -p1 %patch32 -p1 %patch33 -p1 %patch34 -p1 %patch35 -p1 pushd compiler-rt-%{version}.src %patch28 -p2 %patch36 -p2 %patch37 -p1 popd pushd clang-%{version}.src #%patch2 -p1 %patch3 -p1 %patch4 -p1 %patch6 -p1 %patch8 -p1 %patch9 -p2 %patch26 -p1 %patch30 -p1 %patch31 -p1 %patch1000 -p1 # We hardcode openSUSE #rm unittests/Driver/DistroTest.cpp # We hardcode i586 rm test/Driver/x86_features.c rm test/Driver/nacl-direct.c popd pushd clang-tools-extra-%{version}.src %patch10 -p2 popd %if %{with lldb} pushd lldb-%{version}.src %patch11 -p1 %patch12 -p2 # Set LLDB revision sed -i s,LLDB_REVISION,\"%{_llvm_revision}\",g source/lldb.cpp #" popd %endif %if %{with libcxx} pushd libcxx-%{version}.src %patch29 -p2 rm test/libcxx/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp rm test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp rm test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp # These tests often verify timing and can randomly fail if the system is under heavy load. It happens sometimes on our build machines. rm -rf test/std/thread/ popd %endif pushd openmp-%{version}.src %patch27 -p2 popd # Move into right place mv clang-%{version}.src tools/clang mv compiler-rt-%{version}.src projects/compiler-rt mv clang-tools-extra-%{version}.src tools/clang/tools/extra %if %{with lld} mv lld-%{version}.src tools/lld %endif %if %{with polly} mv polly-%{version}.src tools/polly %endif %if %{with lldb} mv lldb-%{version}.src tools/lldb %endif %if %{with openmp} mv openmp-%{version}.src projects/openmp %endif %if %{with libcxx} mv libcxx-%{version}.src projects/libcxx mv libcxxabi-%{version}.src projects/libcxxabi %endif %build %define _lto_cflags %{nil} # Use optflags, but: # 1) Remove the -D_FORTIFY_SOURCE=2 because llvm does not build correctly with # hardening. The problem is in sanitizers from compiler-rt. # 2) Remove the -g. We don't want it in stage1 and it will be added by cmake in # the following stage. flags=$(echo %{optflags} | sed 's/-D_FORTIFY_SOURCE=./-D_FORTIFY_SOURCE=0/;s/\B-g\b//g') %ifarch armv6hl flags+=" -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" %endif %ifarch armv7hl flags+=" -mfloat-abi=hard -march=armv7-a -mtune=cortex-a15 -mfpu=vfpv3-d16" %endif # By default build everything TARGETS_TO_BUILD="all" %ifarch s390 s390x # No graphics cards on System z TARGETS_TO_BUILD="host;BPF" %endif %ifarch %arm # TODO: Document why those. TARGETS_TO_BUILD="host;ARM;AMDGPU;BPF;NVPTX" %endif %ifarch ppc64 ppc64le # TODO: Document why those. TARGETS_TO_BUILD="host;AMDGPU;BPF;NVPTX" %endif %ifarch ppc # TODO: Graphics cards turned off because of relocation overflows. TARGETS_TO_BUILD="host;BPF" %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 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="$(($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 because of memory limits" fi if test -n "$max_compile_jobs" -a "$max_compile_jobs" -gt 1 ; then 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 because of memory limits" fi %define __builder ninja %define __builddir stage1 # -z,now is breaking now, it needs to be fixed %cmake \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DCMAKE_C_FLAGS="$flags -g0" \ -DCMAKE_CXX_FLAGS="$flags -g0" \ -DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \ -DLLVM_LINK_LLVM_DYLIB:BOOL=OFF \ -DLLVM_PARALLEL_COMPILE_JOBS="$max_compile_jobs" \ -DLLVM_PARALLEL_LINK_JOBS="$max_link_jobs" \ -DENABLE_LINKER_BUILD_ID=ON \ -DLLVM_BINUTILS_INCDIR=%{_includedir} \ -DLLVM_BUILD_TOOLS:BOOL=OFF \ -DLLVM_BUILD_UTILS:BOOL=OFF \ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ -DLLVM_POLLY_BUILD:BOOL=OFF \ -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD:BOOL=OFF \ -DLLVM_INCLUDE_TESTS:BOOL=OFF \ -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD=Native \ -DLLVM_DEFAULT_TARGET_TRIPLE=%{_host} \ -DLLVM_HOST_TRIPLE=%{_host} \ %if %{with gold} -DLLVM_USE_LINKER=gold \ %endif -DCLANG_ENABLE_ARCMT:BOOL=OFF \ -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=OFF \ -DCOMPILER_RT_BUILD_SANITIZERS:BOOL=OFF \ -DCOMPILER_RT_BUILD_XRAY:BOOL=OFF \ -DLLDB_DISABLE_PYTHON=ON \ -DCMAKE_SKIP_RPATH:BOOL=OFF \ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-keep-memory" \ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-keep-memory" \ -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--no-keep-memory" \ -DPYTHON_EXECUTABLE:FILEPATH=%{_bindir}/python3 %if %{with thin_lto} ninja -v %{?_smp_mflags} clang llvm-tblgen clang-tblgen llvm-ar llvm-ranlib LLVMgold %else ninja -v %{?_smp_mflags} clang llvm-tblgen clang-tblgen %endif cd .. # Remove files that won't be needed anymore. # This reduces the total amount of disk space used during build. (bnc#1074625) find ./stage1 -name '*.o' -delete find ./stage1 -name '*.a' -delete %define __builddir build export PATH=${PWD}/stage1/bin:$PATH export CC=${PWD}/stage1/bin/clang export CXX=${PWD}/stage1/bin/clang++ %if %{with thin_lto} export LLVM_AR=${PWD}/stage1/bin/llvm-ar export LLVM_RANLIB=${PWD}/stage1/bin/llvm-ranlib %endif export LLVM_TABLEGEN=${PWD}/stage1/bin/llvm-tblgen export CLANG_TABLEGEN=${PWD}/stage1/bin/clang-tblgen # -z,now is breaking now, it needs to be fixed %cmake \ -DBUILD_SHARED_LIBS:BOOL=OFF \ -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DCLANG_LINK_CLANG_DYLIB:BOOL=ON \ -DCMAKE_C_FLAGS="$flags" \ -DCMAKE_CXX_FLAGS="$flags" \ -DLLVM_PARALLEL_COMPILE_JOBS="$max_compile_jobs" \ -DLLVM_PARALLEL_LINK_JOBS="$max_link_jobs" \ %if %{with thin_lto} -DLLVM_ENABLE_LTO=Thin \ -DCMAKE_AR="${LLVM_AR}" \ -DCMAKE_RANLIB="${LLVM_RANLIB}" \ %endif %ifarch %arm ppc s390 %{ix86} -DCMAKE_C_FLAGS_RELWITHDEBINFO="$flags -g1" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$flags -g1" \ %endif -DENABLE_LINKER_BUILD_ID=ON \ -DLLVM_TABLEGEN="${LLVM_TABLEGEN}" \ -DCLANG_TABLEGEN="${CLANG_TABLEGEN}" \ -DLLVM_ENABLE_RTTI:BOOL=ON \ -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_PIC=ON \ -DLLVM_BINUTILS_INCDIR=%{_includedir} \ -DLLVM_TARGETS_TO_BUILD=${TARGETS_TO_BUILD} \ -DLLVM_DEFAULT_TARGET_TRIPLE=%{_host} \ -DLLVM_HOST_TRIPLE=%{_host} \ %if %{with libcxx} -DLIBCXX_ENABLE_SHARED=YES \ -DLIBCXX_ENABLE_STATIC=NO \ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=NO \ -DLIBCXXABI_ENABLE_SHARED=YES \ -DLIBCXXABI_ENABLE_STATIC=NO \ %endif %if %{with gold} -DLLVM_USE_LINKER=gold \ %endif %if "%{_lib}" == "lib64" -DLLVM_LIBDIR_SUFFIX=64 \ %endif %if %{with ffi} -DLLVM_ENABLE_FFI=ON \ %endif %if %{with oprofile} -DLLVM_USE_OPROFILE=ON \ %endif %if %{without lldb_python} -DLLDB_DISABLE_PYTHON=ON \ %endif -DCMAKE_SKIP_RPATH:BOOL=OFF \ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--as-needed -Wl,--build-id=sha1" \ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,--build-id=sha1" \ -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--as-needed -Wl,--build-id=sha1" \ -DPYTHON_EXECUTABLE:FILEPATH=%{_bindir}/python3 \ -DPOLLY_BUNDLED_ISL:BOOL=ON # ThinLTO uses multiple threads from the linker process for optimizations, which # causes an extremely high lock contention on allocations due to MALLOC_CHECK_, # so we deactivate it for compilation. The tests will have it activated again. %if %{with thin_lto} MALLOC_CHECK_BACK=$MALLOC_CHECK_ unset MALLOC_CHECK_ %endif ninja -v %{?_smp_mflags} all UnitTests ClangUnitTests %if %{with thin_lto} MALLOC_CHECK_=$MALLOC_CHECK_BACK %endif cd .. %install %cmake_install # Docs are prebuilt due to sphinx dependency # # tar xf llvm-9.0.1.src.tar.xz # tar xf clang-9.0.1.src.tar.xz # pushd llvm-9.0.1.src/docs # make -f Makefile.sphinx man html # popd # pushd clang-9.0.1.src/docs # make -f Makefile.sphinx man html # popd # tar cvJf llvm-docs-9.0.1.src.tar.xz llvm-9.0.1.src/docs/_build/{man,html} # tar cvJf clang-docs-9.0.1.src.tar.xz clang-9.0.1.src/docs/_build/{man,html} # Build man/html pages pushd docs rm -rf %{buildroot}%{_prefix}/docs mkdir -p %{buildroot}%{_docdir}/llvm/html mkdir -p %{buildroot}%{_mandir}/man1 cp -r _build/man/* %{buildroot}%{_mandir}/man1 cp -r _build/html/* %{buildroot}%{_docdir}/llvm/html popd pushd tools/clang/docs mkdir -p %{buildroot}%{_docdir}/llvm-clang/html cp -r _build/man/* %{buildroot}%{_mandir}/man1 cp -r _build/html/* %{buildroot}%{_docdir}/llvm-clang/html popd # install python bindings # The python bindings use the unversioned libclang.so, # so it doesn't make sense to have multiple versions of it %if %{with pyclang} install -d %{buildroot}%{python3_sitelib}/clang pushd tools/clang/bindings/python cp clang/*.py %{buildroot}%{python3_sitelib}/clang install -d %{buildroot}%{_docdir}/python-clang/examples/cindex cp -r examples %{buildroot}%{_docdir}/python-clang install -d %{buildroot}%{_docdir}/python-clang/tests/cindex/INPUTS cp -r tests %{buildroot}%{_docdir}/python-clang popd %endif # Note that bfd-plugins is always in /usr/lib/bfd-plugins, no matter what _libdir is. mkdir -p %{buildroot}%{_prefix}/lib/bfd-plugins ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_prefix}/lib/bfd-plugins/ install -m 755 -d %{buildroot}%{_datadir}/vim/site/ for i in ftdetect ftplugin indent syntax; do cp -r utils/vim/$i %{buildroot}%{_datadir}/vim/site/ done mv utils/vim/README utils/vim/README.vim mv %{buildroot}%{_prefix}/libexec/{c++,ccc}-analyzer %{buildroot}%{_bindir} mv %{buildroot}%{_datadir}/clang/clang-format-diff.py %{buildroot}%{_bindir}/clang-format-diff mv %{buildroot}%{_datadir}/clang/clang-tidy-diff.py %{buildroot}%{_bindir}/clang-tidy-diff mv %{buildroot}%{_datadir}/clang/run-clang-tidy.py %{buildroot}%{_bindir}/run-clang-tidy install -d %{buildroot}%{python3_sitelib} mv %{buildroot}%{_datadir}/opt-viewer/opt-diff.py %{buildroot}%{_bindir}/opt-diff mv %{buildroot}%{_datadir}/opt-viewer/opt-stats.py %{buildroot}%{_bindir}/opt-stats mv %{buildroot}%{_datadir}/opt-viewer/opt-viewer.py %{buildroot}%{_bindir}/opt-viewer mv %{buildroot}%{_datadir}/opt-viewer/optpmap.py %{buildroot}%{python3_sitelib}/optpmap.py mv %{buildroot}%{_datadir}/opt-viewer/optrecord.py %{buildroot}%{python3_sitelib}/optrecord.py mkdir -p %{buildroot}%{_libdir}/clang/%{_relver} mv %{buildroot}%{_datadir}/clang/bash-autocomplete.sh %{buildroot}%{_libdir}/clang/%{_relver}/bash-autocomplete.sh mkdir -p %{buildroot}%{_datadir}/bash-completion/completions ln -s %{_sysconfdir}/alternatives/clang-bash-autocomplete.sh %{buildroot}%{_datadir}/bash-completion/completions/clang.sh mv %{buildroot}%{_mandir}/man1/{,llvm-}tblgen.1 rm %{buildroot}%{_mandir}/man1/FileCheck.1 chmod -x %{buildroot}%{_mandir}/man1/scan-build.1 %if %{with lldb_python} # Python: fix binary libraries location. rm %{buildroot}%{python3_sitearch}/lldb/_lldb.so liblldb=$(basename $(readlink -e %{buildroot}%{_libdir}/liblldb.so)) ln -vsf "../../../${liblldb}" %{buildroot}%{python3_sitearch}/lldb/_lldb.so ln -vsf "../../${liblldb}" %{buildroot}%{python3_sitearch}/_lldb.so # Remove bundled six.py. rm -f %{buildroot}%{python3_sitearch}/six.* %endif # Stuff we don't want to include rm %{buildroot}%{_mandir}/man1/lit.1 rm -rf %{buildroot}%{_includedir}/lld %if %{with openmp} rm %{buildroot}%{_libdir}/libgomp.so rm %{buildroot}%{_libdir}/libiomp*.so %endif # We don't care about applescript or sublime text rm %{buildroot}%{_datadir}/clang/*.applescript rm %{buildroot}%{_datadir}/clang/clang-format-sublime.py # XXX: FIXME we should put these in a sub-package rm %{buildroot}%{_datadir}/clang/run-find-all-symbols.py # Prepare for update-alternatives usage mkdir -p %{buildroot}%{_sysconfdir}/alternatives binfiles=( bugpoint dsymutil hmaptool llc lli \ llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-c-test llvm-cat llvm-cfi-verify llvm-cov llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-cvtres llvm-diff llvm-dis \ llvm-dlltool llvm-dwarfdump llvm-dwp llvm-elfabi llvm-exegesis llvm-extract \ llvm-jitlink llvm-lib llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca \ llvm-mt llvm-modextract llvm-nm llvm-objcopy llvm-objdump llvm-opt-report \ llvm-pdbutil llvm-profdata llvm-ranlib llvm-rc llvm-readelf llvm-readobj \ llvm-rtdyld llvm-size llvm-split llvm-stress llvm-strings llvm-strip \ llvm-symbolizer llvm-tblgen llvm-undname llvm-xray obj2yaml opt sancov \ sanstats verify-uselistorder yaml2obj \ c-index-test clang clangd clang++ clang-apply-replacements \ clang-change-namespace clang-check clang-cl clang-doc clang-extdef-mapping clang-format \ clang-import-test clang-include-fixer clang-format-diff \ clang-offload-bundler clang-query clang-refactor clang-scan-deps clang-rename \ clang-reorder-fields clang-tidy clang-tidy-diff diagtool find-all-symbols \ git-clang-format modularize run-clang-tidy \ %if %{with lldb} lldb lldb-argdumper lldb-instr lldb-mi lldb-server lldb-vscode \ %endif %if %{with lld} ld.lld lld lld-link ld64.lld wasm-ld \ %endif ) manfiles=( bugpoint dsymutil llc lli \ llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-build llvm-cov llvm-cxxfilt llvm-cxxmap llvm-diff \ llvm-dis llvm-dwarfdump llvm-exegesis llvm-extract llvm-lib llvm-link llvm-lipo llvm-mca \ llvm-nm llvm-objcopy llvm-objdump llvm-pdbutil llvm-profdata llvm-ranlib llvm-readelf llvm-readobj \ llvm-size llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tblgen opt \ clang diagtool ) # Fix the clang -> clang-X.Y symlink to work with update-alternatives mv %{buildroot}%{_bindir}/clang-%{_sonum} %{buildroot}%{_bindir}/clang ln -s %{_bindir}/clang-%{_relver} %{buildroot}%{_bindir}/clang-%{_sonum} ln -s %{_bindir}/clang-%{_relver} %{buildroot}%{_bindir}/clang-%{_minor} # Add clang++-X.Y symbolic link as well - it seems to be expected by some # software. https://bugzilla.opensuse.org/show_bug.cgi?id=1012260 ln -s %{_bindir}/clang++-%{_relver} %{buildroot}%{_bindir}/clang++-%{_sonum} ln -s %{_bindir}/clang++-%{_relver} %{buildroot}%{_bindir}/clang++-%{_minor} # Rewrite symlinks to point to new location for p in "${binfiles[@]}" ; do if [ -h "%{buildroot}%{_bindir}/$p" ] ; then ln -f -s %{_bindir}/$(readlink %{buildroot}%{_bindir}/$p)-%{_relver} %{buildroot}%{_bindir}/$p fi done for p in "${binfiles[@]}" ; do mv %{buildroot}%{_bindir}/$p %{buildroot}%{_bindir}/$p-%{_relver} ln -s -f %{_sysconfdir}/alternatives/$p %{buildroot}%{_bindir}/$p done for p in "${manfiles[@]}" ; do mv %{buildroot}%{_mandir}/man1/$p.1 %{buildroot}%{_mandir}/man1/$p-%{_relver}.1 ln -s -f %{_sysconfdir}/alternatives/$p.1%{ext_man} %{buildroot}%{_mandir}/man1/$p.1%{ext_man} done # rpm macro for version checking mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ cat > %{buildroot}%{_rpmconfigdir}/macros.d/macros.llvm < - Add vim-plugin-llvm Conflicts to clang subpackage which now contains files formerly in llvmN-vim-plugins, conflicting with packages from older llvm releases. * Thu Feb 6 2020 Richard Biener - Add back emacs-llvm Provides and Conflicts to clang subpackage originally in llvm-emacs-plugins to properly conflict with llvm-emacs-plugins from older llvm releases. * Tue Feb 4 2020 Richard Biener - Add clang5-devel to clang9-doc conflicts. * Mon Feb 3 2020 Andreas Schwab - Add compiler-rt-sanitizer-ipc-perm.patch: Fix sanitizer-common build with glibc 2.31. * Wed Jan 29 2020 Aaron Puchert - Move clang-{format,include-fixer,rename}.{el,py} files from llvm-*-plugins to clang package. (boo#1161873) - Drop the now empty llvm-emacs-plugins package. * Mon Jan 27 2020 Richard Biener - Add polly and lld build conditionals, remove excessive Requires to clang from docs. Fix conditional for libc++ use. [jsc#SLE-7400, jsc#SLE-7614, jsc#SLE-7452, jsc#SLE-8920, jsc#SLE-7390, jsc#SLE-7587] * Wed Jan 15 2020 Aaron Puchert - Undo spec-cleaner changes that we don't want. * Reintroduce blank lines in configuration. * Use packageand syntax that works for older versions of RPM. * Don't use %%{_bindir} on left-hand side of sed replacements. * Sat Jan 11 2020 Andreas Schwab - riscv-eh-frame-fixup.patch: Remove changesets that alter the libLLVM ABI * Wed Jan 8 2020 Jaime Caamaño Ruiz - Add upstream patch to export compiler-rt FuzzedDataProvider header, required by Envoy 1.12.2: * compiler-rt-move-fdp.patch * Mon Jan 6 2020 Andreas Schwab - riscv-eh-frame-fixup.patch: Fix handling of .eh_frame on RISC-V - polly-pthread.patch: Add missing -lpthread * Fri Jan 3 2020 Andreas Schwab - Enable support for riscv64 - clang-riscv64-rv64gc.diff, riscv64-suse-linux.patch, llvm-riscv64-fix-cffi.diff, D60657-riscv-pcrel_lo.diff: Backports from master * Fri Dec 20 2019 Aaron Puchert - Update to version 9.0.1. * This release contains bug-fixes for the LLVM 9.0.0 release. This release is API and ABI compatible with 9.0.0. - Drop patches that have landed upstream: * dont-install-example-analyzer-plugins.patch * fix-module-test.patch * llvm-add-missing-include.patch - Drop set-revision.patch, don't provide revision number in clang. The upstream repository has moved from Subversion to git, so the revision number is just a hash, which limits its usefulness. - Rebase llvm-do-not-install-static-libraries.patch. * Thu Dec 5 2019 Aaron Puchert - Modify libcxx-tests-linux-distribution.patch to remove dependency on python-distro again: we don't have expected failures. * Thu Dec 5 2019 Martin Liška - Add llvm-add-missing-include.patch in order to fix boo#1158367. * Tue Dec 3 2019 Aaron Puchert - Add gwp-asan-lto.patch: Make sure there are no LLVM IR files in static libraries that we package. - Add libcxx-tests-linux-distribution.patch (boo#1158293): Replace platform.linux_distribution by distro.linux_distribution. - Make documentation packages noarch. * Mon Nov 4 2019 Aaron Puchert - Add openmp-export-fini.patch: Export termination function for libomp.so, solves boo#1155108. - Remove flaky test case in libcxx. * Wed Oct 30 2019 Fabian Vogt - Fix typo, BOLL -> BOOL * Sat Oct 19 2019 Aaron Puchert - Let new {llvm,clang}*-doc packages "Conflict" with older devel packages, which they were split from. - Let doc packages conflict with older versions of themselves. * Mon Oct 14 2019 Stefan Brüns - (Build)Require only python3-base instead of full python3 package, the additional modules are not required. Helps shortening the build dependency chain. - Remove python3-* requires from lldb9 subpackage, and add it to the bindings/pretty-printer subpackage (python3-lldb9). - Add python3-base Requires to python3-clang subpackage * Sat Sep 28 2019 Aaron Puchert - Add dont-install-example-analyzer-plugins.patch: Remove example analyzer plugins from install targets instead of deleting them. - Add fix-module-test.patch: fix test instead of deleting it. - Don't build static libc++ (with ThinLTO that's not useful anyway). - Don't build libc++experimental. - Don't package libc++abi.so with libc++-devel, it's already contained in the (required) libc++abi-devel. - Be more specific about files in libc++-devel. * Sun Sep 22 2019 Aaron Puchert - Update to version 9.0.0. * For details, see the release notes: - https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html - Change License to "Apache-2.0 WITH LLVM-exception OR NCSA". (https://llvm.org/foundation/relicensing/) - Allow building with ThinLTO and enable it on some architectures. - Disable LTO cache in lto-disable-cache.patch. - Unset MALLOC_CHECK_ for compilation to mitigate lock contention. - No debug info for ppc like for the other 32-bit targets. - Clean up _constraints: same constraints for 32-bit targets. - Don't use BUILD_SHARED_LIBS for Clang anymore, since the newly available libclang-cpp.so should expose the full C++ API. - Link tools with libclang-cpp.so by using CLANG_LINK_CLANG_DYLIB, similar to LLVM_BUILD_LLVM_DYLIB for libLLVM.so. - Remove obsolete n_clang_allow_BUILD_SHARED_LIBRARY.patch. - Add link-clang-shared.patch to link more clang targets with libclang-cpp.so, especially libclang.so. - Add link-clang-tools-extra-shared.patch, link-lldb-shared.patch: link targets in clang-tools-extra and lldb with libclang-cpp.so. - Simplify llvm-do-not-install-static-libraries.patch, also handle Clang, for which we now get static libraries. - Package documentation for llvm and clang separately, recommend them for the main package: they are not required for development, but actually useful for working with the non-devel packages. - Recommend editor plugins not just for llvm-devel. - Recommend libstdc++ for Clang again. - Move diagtool from llvm to clang subpackage. - Properly distinguish between %%{_relver} and %%{version}. - Drop aarch64-disable-memorytest.patch and reactivate test. - Rebase clang-resourcedirs.patch. - Rebase llvm-normally-versioned-libllvm.patch. - Rebase llvm-remove-clang-only-flags.patch. - Rebase llvm_build_tablegen_component_as_shared_library.patch. - Rebase set-revision.patch. - Increase disk space for build. * Sun Sep 22 2019 Lubos Lunak - Make lldb recommend python3-lldb (it contains pretty printers). * Wed Aug 21 2019 Aaron Puchert - Use python3 shebangs everywhere (boo#1146533). - Drop obsolete opt-viewer-Do-not-require-python-2.patch. * Fri Aug 16 2019 Aaron Puchert - Remove unneccesary dependencies: * groff, bison and flex don't seem to be used. * jsoncpp is no longer used since r338461. * Move some BuildRequires to subpackages. * Don't recommend scan-{build,view} in clang (boo#1145444). * Devel packages are only required in other devel packages, when their headers are included in the installed headers. - Add versions to Provides/Conflicts except for files. - Remove unused (since r268685) CMake flags LLVM_ENABLE_TIMESTAMPS. - Fix installation of opt-viewer files when python3-clang is no longer built. * Sat Jul 20 2019 Aaron Puchert - Update to version 8.0.1. * This release contains bug-fixes for the LLVM 8.0.0 release. This release is API and ABI compatible with 8.0.0. - Don't run LLVM tests on ppc at all because of sporadic hangs. * Fri Jun 28 2019 Guillaume GARDET - Increase RAM for armv6/7 to avoid OOM and be scheduled on fast worker * Thu Jun 27 2019 Aaron Puchert - Use the documented LLVM_ENABLE_RTTI to enable RTTI instead of LLVM_REQUIRES_RTTI, which "is an internal flag that individual targets can use to force RTTI". (boo#1139584) - Drop obsolete llvm-build-tests-with-rtti.patch. * Tue Jun 18 2019 Aaron Puchert - Exclude riscv64 for now since it fails to build. * Sat Jun 15 2019 Aaron Puchert - 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. - Enable tests for libcxx. - Reduce memory requirements for compile jobs depending on arch. * Sun May 12 2019 Aaron Puchert - Avoid relocation overflow on ppc by not building GPU backends. - Update baselibs.conf. * Wed Apr 24 2019 Martin Liška - Disable LTO (boo#1133254). * Sat Mar 23 2019 aaronpuchert@alice-dsl.net - Fix packaging on ppc: the sanitizers aren't available there, so the directories /usr/lib/clang/*/{lib,share} are missing. - Package LLVMgold even when we don't use gold for linking. It's promised in /usr/lib/cmake/llvm/LLVMExports.cmake. - Unignore test failures on PowerPC64 architectures. The failures in ppc are unrelated to AMDGPU, so we remove that remark. - Fix dependencies: the gold plugin shouldn't depend on llvm-devel. libc++abi-devel should depend on libc++abi. - Fix typo. * Tue Mar 19 2019 Adrian Schröter - Enable libc++ on ARM (Needed for tensorflow) * Mon Mar 11 2019 msrb@suse.com - Update to 8.0.0 * For details, see the release notes: https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html - Drop llvm-unittests-Don-t-install-TestPlugin.so.patch, llvm-drop-llvm-optional-clang-specific-optimization.patch, llvm-D51108.patch, llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Already included upstream - Add 0001-CMake-Add-install-targets-for-utilities-to-LLVM-expo.patch * Sun Mar 10 2019 aaronpuchert@alice-dsl.net - Remove -fno-strict-aliasing, which upstream doesn't use any more since r245304 in 2015. (http://reviews.llvm.org/D12036) It's probably also not needed for modern versions of GCC. It was enabled in r105644 because of some bugs there. - Add a clang-%%{_sonum} symlink, which is referenced by /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1120098) - Package clang builtin headers with libclang. The library is basically unusable without the builtin headers. Currently consumers of libclang have to require clang as well, although only the headers are needed. * Tue Feb 26 2019 msrb@suse.com - llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Fix crash in rustc (boo#1126907) * Sun Feb 17 2019 John Paul Adrian Glaubitz - Allow use of Gold linker to be conditional - Disable Gold linker on ppc + LLVM currently doesn't build with Gold on ppc * Tue Jan 15 2019 msrb@suse.com - Readd clang-7 and clang++-7 symlinks * Fixes uses of clang-devel (boo#1120098) * Mon Jan 14 2019 msrb@suse.com - Update to llvm 7.0.1 * This release contains bug-fixes for the LLVM 7.0.0 release. This release is API and ABI compatible with 7.0.0. * Sun Dec 30 2018 Dirk Mueller - enable gold unconditionally like with llvm6 and older - reenable openmp support again for aarch64 (like it was already in llvm6) * Wed Dec 19 2018 Todd R - Use %%license macro - Use upstream-recommended %%{_rpmconfigdir}/macros.d directory for the rpm macros. * Fri Dec 14 2018 John Paul Adrian Glaubitz - Remove ppc from Exclude field in spec file - Allow use of Gold linker to be conditional - Disable Gold linker on ppc - Add patch to fix SUSE GNU triplet on ppc * clang-fix-powerpc-triplet.patch - Add patch from upstream to fix ABI issue on ppc * llvm-D51108.patch - Limit list of enabled targets on ppc * PowerPC;AMDGPU;BPF;NVPTX - Ignore testsuite failures on ppc * Tue Dec 11 2018 msrb@suse.com - llvm-drop-llvm-optional-clang-specific-optimization.patch * Fix ABI incompatibility when libLLVM (built with clang) is linked to a program build with gcc. (boo#1119092) * Tue Oct 23 2018 msrb@suse.com - opt-viewer-Find-style-css-in-usr-share.patch * Make sure opt-viewer installed in /usr/bin can find resources from /usr/share/opt-viewer. (boo#1112730) * Fri Oct 19 2018 msrb@suse.com - llvm-unittests-Don-t-install-TestPlugin.so.patch * It is only used for testing and is causing failures when processing LLVMExports.cmake. * Tue Aug 28 2018 msrb@suse.com - Update to llvm 7.0.0 * For details, see the release notes: https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html - Remove no longer needed patches: * llvm6-fix-gdb-index-crash.patch * lldb-fix-build-with-python-3.7.patch * lldb-add-pthread-dl-libs.patch * polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - Add tests-use-python3.patch * Prevents tests from failing because of missing python 2. - Add llvm-better-detect-64bit-atomics-support.patch * Fixes build on i586. * Mon Aug 27 2018 msrb@suse.com - Updated llvm-remove-clang-only-flags.patch - Exclude also "-Werror=unguarded-availability-new" (bsc#1106000) * Wed Jul 25 2018 msrb@suse.com - Update to llvm 6.0.1 * This release contains bug-fixes for the LLVM 6.0.0 release. It is API and ABI compatible with 6.0.0. - Remove no longer needed llvm6-fix-InstCombine.patch - Add lldb-fix-build-with-python-3.7.patch * Fix build with python 3.7 * Fri Jun 29 2018 l.lunak@centrum.cz - llvm6-fix-gdb-index-crash.patch * From upstream, fix lld --gdb-index crash. * Thu Jun 14 2018 msrb@suse.com - Do not requires gcc6 for older sle versions. * llvm6 is not built on <= 12 SP3 and this was preventing build on 12 SP4. * Thu May 17 2018 msrb@suse.com - llvm_build_tablegen_component_as_shared_library.patch * Build TableGen component as its own shared library because it is not included in the libLLVM library and is needed for ldc. (bsc#1086445) * Thu May 17 2018 tchvatal@suse.com - Add patch llvm6-fix-InstCombine.patch to fix InstCombine init * Will be fixed in 6.0.1 release * Wed May 9 2018 msrb@suse.com - Do not build stage1 with debug info. It was accidentally added with the use of %%optflags. This should fix out of memory errors on 32bit architectures and speed up build everywhere else. (bsc#1092697) * Wed Apr 11 2018 msrb@suse.com - llvm-build-tests-with-rtti.patch * Fixes build failure with gcc 8. (bnc#1087136) * Thu Apr 5 2018 msrb@suse.com - Do not export Polly static libraries which we do not distribute. * Updated llvm-do-not-install-static-libraries.patch - Use external jsoncpp instead of the bundled one. * Added polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - llvm6-devel must require llvm6-polly-devel * Files in llvm6-devel reference Polly. * Mon Mar 19 2018 msrb@suse.com - Update to llvm 6.0.0 * Added polly * Notable changes: - Retpoline Spectre variant 2 mitigation - GlobalISel by default for AArch64 at -O0 - improved scheduling on several x86 micro-architectures - Clang defaults to -std=gnu++14 instead of -std=gnu++98 - support for some upcoming C++2a features - improved optimizations, new compiler warnings, many bug fixes, and more. - Use alternatives for clang's bash autocomplete to prevent conflicts with other versions. * Thu Feb 15 2018 msrb@suse.com - Remove liblldb5 and lldb5-devel from baselibs.conf. They are only build for x86_64, so no point having them in baselibs.conf. * Wed Feb 7 2018 msrb@suse.com - Use %%optflags, except for FORTIFY_SOURCE which is not compatible with compiler-rt. - Exclude static libraries differently. * Drop llvm-split-static-library-exports-into-their-own-export-file.diff * Drop clang-split-static-library-exports-into-their-own-export-file.diff * Update llvm-do-not-install-static-libraries.patch to not use EXCLUDE_FROM_ALL which is not available in cmake 3.5. - This fixes build on SLE12. - Do not force gcc6 on OpenSUSE - fixes build. - Reduce the amount of concurent link jobs by increasing their memory requirement - to reduce stalls in OBS. * Wed Jan 31 2018 msrb@suse.com - Cleanup %%ifarch conditions, remove targets unintentionally added to s390/s390x. (bnc#1078436) * Tue Jan 30 2018 msrb@suse.com - Limit the amount of parallel link jobs, but no longer limit compile jobs. This should prevent running out of memory during linking while not longer slowing down compilation. - Remove build dependency on procps * Mon Jan 29 2018 msrb@suse.com - Reduce disk size requirement to 30GB in _constraints. We no longer need that much since we stopped building static libraries. * Thu Jan 18 2018 msrb@suse.com - n_clang_allow_BUILD_SHARED_LIBRARY.patch * Allow buildling clang with BUILD_SHARED_LIBRARY while the rest is built with LLVM_LINK_LLVM_DYLIB. (bnc#1065464) - Remove clang-devel-static. * Wed Jan 10 2018 msrb@suse.com - Place gold plugin to the right directory. (bnc#1073210) * It must be in /usr/lib/bfd-plugins on all architectures. * Remove llvm5-gold from baselibs.conf - nothing needs a 32bit version of it and it would now conflict with the 64bit one. - Reduce _constraints requirements on 32bit architectures. * Since we had to disable debuginfo on them, they require much less. * Wed Jan 10 2018 normand@linux.vnet.ibm.com - ignore make check error for PowerPC as bypass https://bugs.llvm.org/show_bug.cgi?id=35871 * Mon Jan 8 2018 dmueller@suse.com - disable debuginfo build for ARM as well * Fri Jan 5 2018 msrb@suse.com - Delete intermediate files during build to reduce total disk usage (bnc#1074625) * Thu Jan 4 2018 msrb@suse.com - Update to llvm 5.0.1 * This release contains bug-fixes for the LLVM 5.0.0 release. * This release is API and ABI compatible with 5.0.0. - llvm-do-not-install-static-libraries.patch * Updated. * Fri Dec 22 2017 fcrozat@suse.com - Increase minimum memory and disk sizes required for building in _constraints. * Wed Dec 13 2017 msrb@suse.com - Rename python3-lldb to python3-lldb5 so it can work with llvm meta package. * Mon Dec 11 2017 msrb@suse.com - Rename python packages to follow naming conventions. - Remove unnecessary dependencies on python3. - Make opt-viewer not require python2. * opt-viewer-Do-not-require-python-2.patch * Mon Dec 4 2017 msrb@suse.com - Switch to python3. - Fix %%check tests when used with python3. * Define LANG=C.UTF-8 when running the tests. - Add explicit Provides/Conflicts to llvm5-devel, clang5-devel-static and lldb5-devel. * These are required to be validated by obs repo-checker. * Fri Dec 1 2017 msrb@suse.com - Use LLVM_OPTIMIZED_TABLEGEN to speed up build. (bnc#1064786) - Fix files of lldb4 to work correctly with update-alternatives. - Remove Conflicts clang(LLDB) from lldb4-devel - it does not exist. It would be provided automatically, but no such cmake file is installed. - llvm-do-not-install-static-libraries.patch * Do not install static libraries instead of installing them and deleting after. * Reduces disk usage during build. (bnc#1064786) - Do not build unnecessary parts during stage1. * Speeds up build a bit. (bnc#1064786) * Mon Nov 20 2017 msrb@suse.com - Updated baselibs.conf to reference version 5 packages. - Deleted rogue llvm5.spec.r29 file. - Deleted arm_suse_support.diff, llvm-add_a_LLVM_USE_LINKER.patch, libsanitizer.patch. - No longer used, applied already in the source. * Tue Oct 17 2017 msrb@suse.com - llvm-normally-versioned-libllvm.patch * Change libLLVM naming scheme to match our naming guidelines. * The reasons for the original naming scheme are no longer valid, more details in the patch. * Fri Oct 13 2017 msrb@suse.com - Disable all thread related tests in libcxx. Many of them use timeouts to detect failure. They can fail randomly if the machine is under heavy load (happens often in OBS). * Tue Oct 10 2017 msrb@suse.com - Drop llvm5-devel-static. llvm5-devel contains shared library with the same content. * Mon Oct 9 2017 msrb@suse.com - Increase disk space requirement in _constraints to 45GB. Otherwise the build gets stuck in random places. - Skip build of lldb5 python on distributions with swig < 3.0.11 * Wed Aug 30 2017 msrb@suse.com - Copy from llvm4. - Update to llvm 5.0.0. * Wed Aug 30 2017 msrb@suse.com - Use LLVM_BUILD_LLVM_DYLIB instead of BUILD_SHARED_LIBS to build single libLLVM library. This is the recommended way. The old way was causing various issues. * llvm-split-static-library-exports-into-their-own-export-file.diff * clang-split-static-library-exports-into-their-own-export-file.diff (bnc#1049703) - Add lld, linker for Clang/LLVM (sr#517692) - Include clang++-MAJOR.MINOR symbolic link (bnc#1012260) - Remove unnecessary dependency on flex and bison. - Make sure all binaries are managed by update-alternatives - Add llvm-add_a_LLVM_USE_LINKER.patch and link using gold to prevent memory exhaustion on some build machines. - Reduce debuginfo on x86 architecture. LLVM libraries are so big that they exhaust all memory on 32 bit machine if linked with full debuginfo. - Speed up build by skipping parts that are not required in stage1. - Build lldb in-tree as one of the llvm tools. * Tue Aug 29 2017 meissner@suse.com - clang-ignore-stack-clash-protector.patch: ignore -fstack-clash-protection for now. * Tue Aug 8 2017 schwab@suse.de - xlocale.patch: don't use obsolete - libsanitizer.patch: fix use of undocumented types * Sun Jul 16 2017 dmueller@suse.com - build fixes for armv6 (skip testsuite as it requires 64bit, set the list of targets to include ARM and remove triplet hack) * Sat Jul 1 2017 jimmy@boombatower.com - Include provides and conflics in baselibs.conf for llvm4-devel, clang4-devel, llvm4-LTO-devel, and llvm4-gold. * Mon Jun 26 2017 idonmez@suse.com - Update to version 4.0.1 * Minor bugfixes * Fri Jun 2 2017 idonmez@suse.com - Use gcc6 only for SLE boo#1041469 * Tue May 9 2017 idonmez@suse.com - Package libLLVMFuzzer * Wed Apr 19 2017 dmueller@suse.com - readd arm_suse_support.diff which was accidentally removed in the 4.0.0 update * Wed Apr 5 2017 afaerber@suse.de - Enable AMDGPU and NVPTX targets everywhere except for S/390. The AMDGPU target is needed for Mesa Clover (sr#485802). * Tue Apr 4 2017 idonmez@suse.com - Use gcc6 on SLE12 * Thu Mar 30 2017 idonmez@suse.com - Package license & credits * Mon Mar 27 2017 idonmez@suse.com - Update to version 4.0.0 * See + http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html and + http://releases.llvm.org/4.0.0/tools/clang/docs/ReleaseNotes.html + http://releases.llvm.org/4.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - Drop the following patches, fixed upstream: amdgpu_revert_r280589.patch arm_suse_support.diff clang-fix-substitutions-abi_tag.patch clang-incomplete-field-types.patch glibc-2.24-libcxx.patch llvm-install-CheckAtomic.patch revert-cmake-soname.patch * Fri Feb 24 2017 idonmez@suse.com - Enable BPF for all arches bsc#1026191 * Wed Jan 25 2017 idonmez@suse.com - libc++ must depend on libc++abi * Wed Jan 25 2017 idonmez@suse.com - Stop using otherproviders() due to an rpm parser bug, use self-conflicts instead as suggested by mls. * Tue Jan 24 2017 idonmez@suse.com - Add amdgpu_revert_r280589.patch to fix an amdgpu regression bsc#1021577 * Tue Jan 17 2017 jslaby@suse.com - Require LLVMgold and libLTO in llvm-devel, otherwise we get in CMake: The imported target "LLVMgold" references the file "/usr/lib64/LLVMgold.so" but this file does not exist. This happens when requiring llvm3_9-devel directly, not llvm-devel. * Wed Dec 21 2016 idonmez@suse.com - Update to version 3.9.1 * See: + http://llvm.org/releases/3.9.1/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/tools/extra/docs/ReleaseNotes.html * Wed Sep 28 2016 toddrme2178@gmail.com - Update to version 3.9.0 * Clang now supports the G++ abi_tag attribute. * Clang will no longer pass --build-id by default to the linker. * Improved C++1z support in Clang. * Clang now has support for all OpenCL 2.0 features. * Added support for all non-offloading features from OpenMP 4.5, * The static analyzer now checks for incorrect usage of MPI APIs in C and C++. * LLVM no longer does inter-procedural analysis and optimization (except inlining) on functions with comdat linkage. * LLVM now supports the Intel CPUs Skylake Server with AVX512 (-march=skylake-avx512) and Knights Landing (-march=knl). * More at: + http://llvm.org/releases/3.9.0/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/tools/extra/docs/ReleaseNotes.html * Fix the following patches: + arm_suse_support.diff + assume-opensuse.patch + clang-resourcedirs.patch + default-to-i586.patch + glibc-2.23-libcxx.patch + glibc-2.24-libcxx.patch + lldb-add-pthread-dl-libs.patch + lldb-cmake.patch + llvm-fix-find-gcc5-install.patch + llvm-remove-clang-only-flags.patch + revert-cmake-soname.patch + set-revision.patch * Remove upstream-included patch: + llvm-nonvoid-return.patch * Remove patch for removed files: + glibc-2.23-libcxx.patch - Backport upstream patches: * clang-fix-substitutions-abi_tag.patch * clang-incomplete-field-types.patch * llvm-install-CheckAtomic.patch - Add clang%%{_sonum}-include-fixer subpackage and associated libfindAllSymbols%%{_sonum} and libfindAllSymbols%%{_sonum}-devel subpackages. - Add sanstats to llvm binary list. * Fri Sep 23 2016 toddrme2178@gmail.com - Change update-alternatives to use %%postun instead of %%preun, which is now what Factory maintainers are requesting. - Use the minor version to set the update-alternatives priority so the most recent version of the LLVM, Clang, and LLDB are used by default. - Add LLVM rpm macros so downstream packages can have some idea how LLVM was built. * Tue Sep 20 2016 toddrme2178@gmail.com - Rename libomp to make it possible to have multiple versions available. * Fri Sep 9 2016 toddrme2178@gmail.com - Split the old llvm package into this version-specific package and a wrapper package. - Implement update-alternatives to allow parallel installation of many of the subpackages. - Rename subpackages that can be parallel-installed to a version-specific name based on the associated shared library's current .so number. - Various fixes to support the above changes. * Wed Sep 7 2016 tchvatal@suse.com - Sort a bit with spec-cleaner - Remove the latest switch for now, things should be either coinstallable or not, we don't need to bother around with compilation like this * Wed Aug 31 2016 toddrme2178@gmail.com - Update to llvm 3.8.1 * See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html - Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8) - Change versioning of liblldb3_8 to liblldb-3_8 and use a variable to control the name instead of hard-coding it. - Use bcond_with and bcond_without to enable/disable build options instead of hard-coding them. - Put buildrequires as requires in -devel packages to avoid linker errors when building packages against the -devel packages. - Add ffi support (disabled by default). - Add oprofile support (disabled by default). - Add valgrind support (disabled by default). - Link cmake files to the normal cmake file directory to allow autodetection of cmake interfaces. - Remove unused lldb components from main spec file. - Split llvm python bindings into own subpackage. - Split emacs plugin into own subpackage - Move additional vim plugins into vim plugins package - Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages - Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since they aren't architecture-specific. - Make packages besides llvm, llvm-clang, and the shared libraries conflict with other versions. This will be important when multiple LLVM versions are supported. - Various spec file cleanups - Rebase patches: * arm_suse_support.diff * assume-opensuse.patch * clang-resourcedirs.patch * default-to-i586.patch * glibc-2.23-libcxx.patch * glibc-2.24-libcxx.patch * lldb-add-pthread-dl-libs.patch * lldb-cmake.patch * llvm-fix-find-gcc5-install.patch * llvm-nonvoid-return.patch * llvm-remove-clang-only-flags.patch * revert-cmake-soname.patch * set-revision.patch * Fri Aug 26 2016 tchvatal@suse.com - Start conversion to use cmake macros with now introduced compatibility for ninja - Reduce number of threads if we don't have enough memory - Add patch for the nonvoid returns: * llvm-nonvoid-return.patch * Thu Jul 28 2016 normand@linux.vnet.ibm.com - for ppc64le set memory to 4GB in _constraints file (failure in Factory:PowerPC) * Wed Jul 13 2016 schwab@suse.de - glibc-2.24-libcxx.patch: fix libcxx testsuite for glibc 2.24 * Wed May 18 2016 ronisbr@gmail.com - Build LLDB separated from LLVM. - Re-enable python bindings for the LLDB API. * Wed May 18 2016 idonmez@suse.com - Disable libcxx/lldb/openmp for SLE fate#319582 * Mon Apr 25 2016 idonmez@suse.com - Update rpmlintrc to whitelist libLTO.so * Mon Apr 11 2016 idonmez@suse.com - Re-enable glibc-2.23 patch for Tumbleweed * Sun Apr 10 2016 dmueller@suse.com - fix arm_suse_support.diff for armv6hl - adjust compile flags for llvm on armv6hl (fixes Mesa build) * Mon Apr 4 2016 idonmez@suse.com - Update llvm-remove-clang-only-flags.patch to remove - Wcovered-switch-default flag for gcc compatibility. * Wed Mar 16 2016 idonmez@suse.com - Use gcc for stage1 bootstrap - Add back libstdc++-devel dependency for clang since libc++ is only available for x86-64 atm. * Thu Mar 10 2016 idonmez@suse.com - Comment out glibc-2.23-libcxx.patch until glibc 2.23 actually hits the Factory. * Tue Mar 8 2016 idonmez@suse.com - Update to llvm 3.8.0 * See http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html - Fold lldb build into llvm and disable python support - Drop clang-disable-ada-extension.patch, libcxxabi-exceptions.patch and cmake-host-triple.patch - Add revert-cmake-soname.patch to fix soname handling * Wed Mar 2 2016 idonmez@suse.com - Add glibc-2.23-libcxx.patch to fix test failures with glibc 2.23 * Sat Oct 3 2015 mimi.vx@gmail.com - Remove FFI support because its fragile * Sun Sep 27 2015 idonmez@suse.com - Enable OpenMP for x86, x86_64, ppc64 and ppc64le * Mon Sep 14 2015 idonmez@suse.com - Enable all targets on x86, x86_64 * Wed Sep 2 2015 idonmez@suse.com - Update to version 3.7.0 * See http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html - Merge aarch64-suse-support.patch into arm_suse_support.diff - Refresh arm_suse_support.diff, llvm-fix-find-gcc5-install.patch - Remove llvm-fix-parsearmarch.patch, upstream. * Tue May 26 2015 ro@suse.de - fix build on s390x (one typo in ifarch and one change in filelist) * Mon May 25 2015 idonmez@suse.com - Update to version 3.6.1 * No changelog upstream * Fri Apr 24 2015 idonmez@suse.com - Add llvm-fix-parsearmarch.patch to fix parsing armv{6,7}hl archs. * Mon Mar 2 2015 idonmez@suse.com - Update to version 3.6.0 * See http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html - Add python-xml dependency for regression tests - Removed the following patches, fixed upstream: * arm-remove-xfails.diff * libcxx-libdir.patch * llvm-config-lib64.patch * llvm-fix-intrusiverefcntptr.patch * Fri Feb 20 2015 rguenther@suse.com - Add llvm-fix-intrusiverefcntptr.patch to fix build of LLVM tools with GCC 5. - Add llvm-fix-find-gcc5-install.patch to properly find installed GCC 5. * Wed Jan 28 2015 idonmez@suse.com - Add a gcc dependency for clang, this is heavyweight but we need libgcc_s which comes with the gcc package (bnc#893359) * Fri Dec 12 2014 idonmez@suse.com - Conditionalize libcxx{abi} build on build_libcxx variable - Turn libc++.so into an ldscript so it links to libc++abi automatically. * Tue Oct 21 2014 dmueller@suse.com - fix constraints for armv6l/armv7l (there is no 4GB RAM on 32bit) * Mon Sep 29 2014 idonmez@suse.com - Rename llvm-remove-werror-date-time.patch to llvm-remove-clang-only-flags.patch and remove more clang only flags. * Fri Sep 26 2014 idonmez@suse.com - Enable shared libs on PPC64 * Thu Sep 25 2014 idonmez@suse.com - Require llvm-clang not just clang * Wed Sep 17 2014 idonmez@suse.com - Add llvm-remove-werror-date-time.patch to remove -Werror=date-time for CXXFLAGS, gcc does not support it and it creeps into llvm-config --cflags * Wed Sep 17 2014 idonmez@suse.com - Remove wrong Requires from the llvm-devel package * Wed Sep 17 2014 idonmez@suse.com - Add default target triple form ARM, fixes bnc#893359 * Fri Sep 5 2014 idonmez@suse.com - Use ninja for building * Thu Sep 4 2014 idonmez@suse.com - Update to llvm 3.5.0 * Major update, see http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html - Use upstream pristine tarballs - Add libc++/libc++abi support clang (only on x86_64) - Add libcxxabi-exceptions.patch to fix libcxxabi exception handling - Add libcxx-libdir.patch to fix libdir on 64bit arches - Remove asan-disable-hugemalloctest.patch and cmake-patchversion.patch, fixed upstream. * Fri Aug 15 2014 idonmez@suse.com - Fix the sed line for minimal damage. * Wed Jul 23 2014 idonmez@suse.com - Add baselibs.conf to source files * Wed Jul 23 2014 idonmez@suse.com - Add cmake-patchversion.patch to sync config.h.in with config.h.cmake * Tue Jul 22 2014 idonmez@suse.com - Update to llvm 3.4.2 * Minor bugfix release - Drop clang-max_align_t.patch, applied upstream. * Sat Jun 21 2014 arnaud@versini.eu - Add clang-max_align_t.patch to resolve issue with libstdc++ 4.9 max_align_t missing declaration * Tue May 13 2014 peter.trommler@ohm-hochschule.de - build compiler-rt on ppc64 (don't delete it) * Thu Apr 3 2014 idonmez@suse.com - Fix resource dir for libclang case (clang-resourcedirs.patch) - Always build tests * Sat Feb 22 2014 ro@suse.de - complete ifarchs for s390 * Fri Jan 24 2014 idonmez@suse.com - Remove non-existing doc subpackage * Fri Jan 24 2014 idonmez@suse.com - Add a dependency on ncurses-devel since libLLVM now links to tinfo. * Tue Jan 14 2014 idonmez@suse.com - Add 32bit libclang bnc#857131 * Tue Jan 7 2014 idonmez@suse.com - Update to final llvm 3.4 release * See http://llvm.org/releases/3.4/docs/ReleaseNotes.html for complete changelog. * Tue Dec 24 2013 idonmez@suse.com - Update to final release candidate (r197980) * Sat Dec 21 2013 idonmez@suse.com - Update to r197866 from release_34 branch * Tue Dec 17 2013 idonmez@suse.com - Update to r197490 from release_34 branch * Thu Dec 12 2013 idonmez@suse.com - Update to r197142 from release_34 branch - Disable assertions again now that PPC64 backend is fixed * Tue Dec 10 2013 idonmez@suse.com - Update to r196899 from release_34 branch - Remove compiler_rt-r196612.patch, merged upstream * Mon Dec 9 2013 idonmez@suse.com - Add compiler_rt-r196612.patch to fix ubsan failures on i586 * Mon Dec 9 2013 idonmez@suse.com - Update to r196762 from release_34 branch * Mon Dec 9 2013 dvaleev@suse.com - enable ppc64le * Thu Dec 5 2013 idonmez@suse.com - Update to r196503 from release_34 branch to get compiler_rt fixes * Thu Dec 5 2013 idonmez@suse.com - Update to r196487 from release_34 branch to get compiler_rt fixes * Wed Dec 4 2013 idonmez@suse.com - Ship cmake files for llvm (needed for lldb and such) * Wed Dec 4 2013 idonmez@suse.com - Update to r196371 from release_34 branch * Wed Dec 4 2013 termim@gmail.com - install python binding to libclang * Sun Dec 1 2013 idonmez@suse.com - Update to r196358 from llvm 3.4 branch - Add asan-disable-hugemalloctest.patch to disable ASAN HugeMallocTest, it requires 4.1+ GB of RAM. - Refresh patches * aarch64-suse-support.patch * arm_suse_support.diff * assume-opensuse.patch * default-to-i586.patch - Drop upstream patches * llvm-disable-pretty-stack-trace.patch * r189852.diff * unreachable-code.patch * llvm-no-visibility.patch * Tue Oct 22 2013 dmueller@suse.com - add r189852.diff: Remove vtables optimisation that breaks ARM and PowerPC - Disable testsuite on ARMv7, takes forever to run * Thu Oct 17 2013 schwab@suse.de - Fix file list for %%arm * Wed Oct 9 2013 dmueller@suse.com - use %%arm, not arm in arch conditions - add arm-remove-xfails.diff: remove XFAILs in testsuite that pass and thereby make check fail * Fri Sep 27 2013 idonmez@suse.com - Set DisablePrettyStackTrace to true since it messes up signal handling. bnc#839074 and fdo#60929 implemented with llvm-disable-pretty-stack-trace.patch) * Wed Aug 28 2013 schwab@suse.de - Fix filelist for aarch64 * Wed Aug 28 2013 schwab@suse.de - aarch64-suse-support.patch: Enable AArch64 suse toolchain support * Wed Aug 28 2013 idonmez@suse.com - Add s390x support * Wed Aug 28 2013 idonmez@suse.com - Remove unused chrpath dependency - Re-enable ARCMT since libclang depends on it * Mon Aug 26 2013 schwab@suse.de - Define host_triple for aarch64 * Thu Aug 22 2013 idonmez@suse.com - Fix ARMv6 build * Wed Aug 21 2013 idonmez@suse.com - Only enable PowerPC on ppc64 * Mon Aug 12 2013 idonmez@suse.com - Disable shared libs on PowerPC - Disable ARCMT, it only makes sense for iOS/OSX * Tue Aug 6 2013 idonmez@suse.com - Fix build * Wed Jul 17 2013 idonmez@suse.com - Disable building unit-tests, should fix undefined reference problem on ARM & PowerPC * Tue Jul 16 2013 coolo@suse.com - do not build on slow or low memory workers * Thu Jul 4 2013 idonmez@suse.com - Drop disable_neon_in_armv7.diff, neon seems to be working fine - Add cmake-host-triple.patch to pass a host triple argument * Wed Jul 3 2013 idonmez@suse.com - Create libLLVM and libclang subpackages. * Wed Jun 19 2013 llunak@suse.com - Fix finding internal headers on x86_64 * Wed Jun 19 2013 idonmez@suse.com - Fix ARM v5/v7 builds * Tue Jun 18 2013 tobias.johannes.klausmann@mni.thm.de - Create a baselibs.conf Provide *-32 Bit Packages for x86_64 * Thu Jun 13 2013 tobias.johannes.klausmann@mni.thm.de - Initial version of a cmake based buildscript + Updated arm_suse_support.diff (patch6) to work with llvm 3.3 + Set version in spec to 3.3 * Thu Jun 13 2013 idonmez@suse.com - Update to final 3.3 release (r183898) * Fri May 24 2013 idonmez@suse.com - Disable debug symbols on PPC64 * Tue May 21 2013 idonmez@suse.com - Update to version 3.3 RC2 * Small bugfixes * Tue May 14 2013 idonmez@suse.com - Enable ARM64 support * Thu May 9 2013 idonmez@suse.com - Add unreachable-code.patch to fix unreachable code warnings on SLE * Wed May 8 2013 idonmez@suse.com - Update to version 3.3 RC1 * Added support for AArch64, ARM’s 64-bit architecture. * LLVM now has a new SLP vectorizer. * LLVM and clang now support IBM’s z/Architecture. * The R600 backend was added in this release, it supports AMD GPUs (HD2XXX - HD7XXX). * See http://llvm.org/releases/3.3/docs/ReleaseNotes.html for complete changelog. - Drop upstream patches: * pr13303.patch * pr14795.patch * pr14831.patch * python-ulimit.patch * Wed Jan 16 2013 llunak@suse.com - pr13303.patch: reapply, was temporarily reverted upstream * Fri Jan 11 2013 idonmez@suse.com - Add pre-generated doc files, remove sphinx dependency * Tue Jan 8 2013 llunak@suse.com - pr14795.patch: Fix incorrect line numbers after -frewrite-includes (PR#14795) - pr14831.patch: Do not incorrectly warn about pragmas in -frewrite-includes (PR#14831) * Mon Dec 31 2012 dmueller@suse.com - disable cross-compile mode in stage2 for armv5/v7 * Thu Dec 20 2012 idonmez@suse.com - Update to final 3.2 release * No code changes since rc3 * Sun Dec 16 2012 idonmez@suse.com - Update to r170281 from release_32 branch * SROA fixes * Fri Dec 14 2012 idonmez@suse.com - Disable compilation on PPC, only PPC64 is supported. * Fri Dec 14 2012 idonmez@suse.com - Add python-ulimit.patch: Don't set a limit on address space. This enables us running tests on PowerPC. * Wed Dec 12 2012 idonmez@suse.com - Unbreak PowerPC support * Sat Dec 8 2012 idonmez@suse.com - Update to r169678 from release_32 branch * This is 3.2rc3 * Wed Dec 5 2012 idonmez@suse.com - Update to r169391 from release_32 branch * SROA fixes * Tue Dec 4 2012 guillaume@opensuse.org - Fix ARM build * Mon Dec 3 2012 schuetzm@gmx.net - Fix llvm-config --libdir to return /usr/lib64 where appropriate. The old method of using sed on the executable does no longer work, because llvm-config is now a binary. * Fri Nov 30 2012 idonmez@suse.com - Update to r168987 from release_32 branch * Crash fixes * Miscompilation fixes * Tue Nov 20 2012 idonmez@suse.com - Stop excluding ppc64 architecture * Tue Nov 20 2012 idonmez@suse.com - Update to r168357 from release_32 branch * Fixes a miscompilation with gcc 4.7 * Sun Nov 18 2012 idonmez@suse.com - Update to r168286 from release_32 branch * Fixes llvm PR14309 * Thu Nov 15 2012 idonmez@suse.com - Update to r168031 from release_32 branch * This is 3.2rc1 * Mon Nov 12 2012 idonmez@suse.com - Update to r167720 from release_32 branch * Thread local variables may have a specified TLS model. * LLVM now has a loop optimizer. * SROA has been rewritten to be more powerful. * A new optimization pass added to merge stack objects which are used in disjoint areas of the code. * LLVM now merge consecutive loads and stores. * New TableGen infrastructure to support bundling for Very Long Instruction Word (VLIW) architectures. * Added a new target independent VLIW packetizer. * A probability based block placement and code layout algorithm was added to LLVM's code generator. * The ARM target now includes a full featured macro assembler, including direct-to-object module support for clang. * A new IR-level pass, called "TargetTransformInfo" provides a number of low-level interfaces. - Refresh default-to-i586.patch to apply again - Drop following patches (fixed upstream) * arm-suse-support.patch * pr12463.patch * pr13141.patch * pr13303.patch * rewrite-includes.patch * clang-fix-mips-test.patch (fixed differently in spec file) * Sat Oct 27 2012 coolo@suse.com - add explicit buildrequire groff for man pages * Mon Sep 10 2012 idonmez@suse.com - Fix debuginfo generation * Thu Jul 19 2012 llunak@suse.com - make link time optimization plugin accessible to ar/nm/ranlib - build the plugin properly * Sat Jul 14 2012 adrian@suse.de - fix arm build * Fri Jul 13 2012 llunak@suse.com - change rewrite-includes patch to use options to match upstream changed option names * Fri Jul 13 2012 llunak@suse.com - fix debuginfo generation (PR#13303) * Mon Jun 18 2012 llunak@suse.com - Do not reject PCH because of -DFOO duplication (PR#13141) * Tue May 15 2012 idonmez@suse.com - Update to final 3.1 release * Thu May 10 2012 idonmez@suse.com - Depend on python-base so we don't pull whole Mesa * Tue May 8 2012 llunak@suse.com - make -rewrite-includes support -C and -CC * Thu May 3 2012 llunak@suse.com - patch for -rewrite-includes feature * Mon Apr 30 2012 idonmez@suse.com - Update to svn revision 155819 from 3.1 branch * C++11 fixes * Fri Apr 27 2012 idonmez@suse.com - Update to svn revision 155700 from 3.1 branch * Crash fixes * C++11 fixes * Thu Apr 26 2012 idonmez@suse.com - Update to svn revision 155574 from 3.1 branch * Crash fixes * Correctly enable compiler-rt * Remove unneeded runtime python dependencies * Thu Apr 26 2012 idonmez@suse.com - Switch to 2-stage bootstrap because we don't do build-compare anyway. * Wed Apr 25 2012 idonmez@suse.com - More fixes to llvm-config * Tue Apr 24 2012 idonmez@suse.com - Fix llvm-config --libs output * Sun Apr 22 2012 idonmez@suse.com - Update to svn revision 155320 from 3.1 branch * AVX fixes * Tue Apr 17 2012 idonmez@suse.com - Update to svn revision 154914 from 3.1 branch Major new features: * AddressSanitizer, a fast memory error detector. * MachineInstr Bundles, Support to model instruction bundling / packing. * ARM Integrated Assembler, A full featured assembler and direct-to-object support for ARM. * Basic Block Placement Probability driven basic block placement. LLVM IR and Core Improvements * IR support for half float * IR support for vectors of pointers, including vector GEPs. * Module flags have been introduced. * Loads can now have range metadata attached to them to describe the possible values being loaded. * Inline cost heuristics have been completely overhauled and now closely model constant propagation through call sites, disregard trivially dead code costs, and can model C++ STL iterator patterns. Optimizer Improvements * The loop unroll pass now is able to unroll loops with run-time trip counts. This feature is turned off by default, and is enabled with the -unroll-runtime flag. * A new basic-block autovectorization pass is available. Pass -vectorize to run this pass along with some associated post-vectorization cleanup passes. X86-32 and X86-64 Target Improvements * Bug fixes and improved support for AVX1 * Support for AVX2 (still incomplete at this point) ARM Target Improvements * The constant island pass now supports basic block and constant pool entry alignments greater than 4 bytes. Clang Changes * New: -Wdangling-else, -Wstrncat-size * Improved: -Wformat, -Wempty-body, -Wliteral-conversion * Clang 3.1 adds support for anonymous structs and anonymous unions, added in the latest ISO C standard. Use -std=c11 or -std=gnu11 to enable support for the new language standard. The new C11 features are backwards-compatible and are available as an extension in all language modes. * All warning and language selection flags which previously accepted c1x have been updated to accept c11. The old c1x forms have been removed. * Generalized constant expressions * Lambda expressions * Generalized initializers * Unrestricted unions * User-defined literals * Forward-declared enumerations * Atomics (both libc++'s and libstdc++4.7's are supported) * Tue Mar 20 2012 idonmez@suse.com - Target i586-linux for 32bit builds * Tue Dec 27 2011 idonmez@suse.com - Add upstream fix for llvm PR11642 * Sun Dec 25 2011 idonmez@suse.com - Don't run gcc for ada files, just fail instead. * Thu Dec 22 2011 idonmez@suse.com - Add clang-glibc2.14.patch to support glibc 2.14 headers - Install profiling support * Mon Dec 5 2011 idoenmez@suse.de - Switch to 3-stage bootstrap * Fri Dec 2 2011 idoenmez@suse.de - Build first stage compiler with -O0 to workaround gcc 4.5 bug * Thu Dec 1 2011 idoenmez@suse.de - Update to final 3.0 release * No real change since rc2 * Tue Nov 29 2011 idoenmez@suse.de - Use %%{_lib} macro instead of checking for x86_64 * Wed Nov 16 2011 idonmez@suse.com - Enable ARM support again - Switch to optimized build * Thu Nov 10 2011 idonmez@suse.com - Disable ARM support, VM goes out of memory while compiling it * Thu Nov 10 2011 idonmez@suse.com - Really enable ARM support - Remove forcing -frtti * Mon Nov 7 2011 idonmez@suse.com - Update to r143961 from llvm-3.0 branch * No longer hardcoding include paths * Mon Nov 7 2011 idonmez@suse.com - Fix LLVMgold.so path for x86-64 * Sun Nov 6 2011 idonmez@suse.com - Enable ld gold support * Tue Nov 1 2011 idonmez@suse.com - Update r143456 from llvm-3.0 branch * llvm/clang 3.0rc2 * Fri Oct 28 2011 idonmez@suse.com - Add llvm-pr9614-part{1,2}.patch to fix LLVM PR9614 * Fri Oct 28 2011 idonmez@suse.com - Fixup dependencies so that llvm-clang doesn't depend on llvm-clang-devel * Tue Oct 25 2011 idonmez@suse.com - Update to r142912 llvm-3.0 branch * Fixes to python bindings * Fri Oct 21 2011 idonmez@suse.com - Update to r142641 * llvm/clang 3.0 rc1 * Thu Oct 20 2011 idonmez@suse.com - Enable ARM code generation * Wed Oct 19 2011 idonmez@suse.com - Fix libdir on x86_64 * Tue Oct 18 2011 idonmez@suse.com - Update to r142341 * First build from 3.0 branch * -Wc++98-compat warnings for the lexer * Add flags for the remaining shift related warnings (-Wshift-count-negative, -Wshift-count-overflow). * Only warn in -Wliteral-conversion if the conversion loses information * Added clang_getCompletionAnnotation and clang_getCompletionNumAnnotations to retrieve annotations from completion string. * Add support for -std=gnu90 and -std=c++03, for compatibility with modern gcc. - Switch to tar.bz2 and remove xz dependency * Thu Sep 29 2011 idonmez@suse.com - Update to r140780 * Code cleanup * Crash fixes * Add support for alignment-specifiers in C1X and C++11 * Introduce a new compiler switch: -fms-compatility * Emit debug info for c++0x nullptr. * Tue Sep 13 2011 idonmez@suse.com - Update to r139589 * C++0x fixes * PCH fixes * Thu Sep 1 2011 idonmez@suse.com - Update to r138939 * Many crash fixes. * Performance optimizations. * Allow C99 hexfloats in C++0x mode. * Add missing function _mm_ucomige_sd to emmintrin.h. * Fri Aug 12 2011 idonmez@novell.com - Update to r137452 * Fix problems found by PVS-Studio * More AVX fixes * Many C++ fixes - Add assume-opensuse.patch to remove dependency on openSUSE-release * Wed Aug 3 2011 idonmez@novell.com - Update to r136773 * Many AVX fixes * Support for C++0x unicode string and character literals * Tue Jul 19 2011 vljn@ovi.com - Update to r135431 * API changes to match Mesa requirements * Mon Jul 11 2011 idonmez@novell.com - Update to r134888 * Type system rewrite * Sat Jul 9 2011 idonmez@novell.com - Update to r134813 * Mainly gcc compatibility fixes * Fri Jul 8 2011 idonmez@novell.com - Update to r134698 * Up to 80x speed improvements with -Wuninitialized * Thu Jul 7 2011 idonmez@novell.com - Enable RTTI support - Disable assertions because they are not thread safe - Update to r134611 * Many C++ fixes and speedups * Updates for AVX instruction support * gcc 4.6.1 support * Sat Jul 2 2011 idonmez@novell.com - Fix manpage generation (bnc #703591) * Sun Jun 5 2011 idonmez@novell.com - Update to r132667 * Sun May 29 2011 idonmez@novell.com - Update to use cmake buildsystem - Remove unmaintained ocaml support * Thu May 26 2011 idonmez@novell.com - Drop ocaml support because its unmaintained - Update to latest svn revision 132050 + Start of the upcoming 3.0 version + Support for gcc 4.6 c++ headers + Better support for C++0x * Fri Apr 29 2011 idoenmez@novell.com - Fix ocaml dependency * Thu Apr 7 2011 idoenmez@novell.com - Update to 2.9 + Type Based Alias Analysis (TBAA) is now implemented in clang + LLVM now generates better debug information + Inline assembly now supports multiple alternative constraints * Wed Apr 6 2011 stepan@coresystems.de - drop revision from Requires: fields - update to 2.8.99 revision 129008. * Mon Mar 7 2011 jslaby@suse.de - spec file cleanup * Wed Dec 22 2010 dmacvicar@suse.de - Do not require specific ffi version but gather the appropiate one from the distro * Fri Dec 10 2010 reddwarf@opensuse.org - Fix compatibility with C++0x compilers (g++ 4.5) * Mon Nov 29 2010 ismail@namtrac.org - Fix C include paths * Fri Nov 26 2010 ismail@namtrac.org - Fix header path for openSUSE 11.4 - Enabled PIC for x86 for loadable module support - Enable package tests for llvm and clang - Disable package timestamps to silence an rpmlint warning * Wed Jun 2 2010 anschneider@exsuse.de - Fixed the build on x86 plattforms. - Package the clang c++-analyzer. * Sat May 1 2010 jslaby@suse.de - update to llvm 2.7 * Mon Mar 15 2010 jslaby@suse.de - added vim plugins * Sun Mar 14 2010 jslaby@suse.de - added libffi-devel to llvm-devel requires so that build does not fail - fixed build of explicit constructors with gcc45 * Mon Nov 2 2009 jslaby@suse.de - Initial 2.6 release