Hello community,

here is the log from the commit of package llvm9 for openSUSE:Factory checked 
in at 2019-10-16 09:17:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/llvm9 (Old)
 and      /work/SRC/openSUSE:Factory/.llvm9.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "llvm9"

Wed Oct 16 09:17:38 2019 rev:1 rq:738487 version:9.0.0

Changes:
--------
New Changes file:

--- /dev/null   2019-09-25 09:10:10.894331610 +0200
+++ /work/SRC/openSUSE:Factory/.llvm9.new.2352/llvm9.changes    2019-10-16 
09:18:03.431038939 +0200
@@ -0,0 +1,1962 @@
+-------------------------------------------------------------------
+Mon Oct 14 14:16:20 UTC 2019 - Stefan Brüns <[email protected]>
+
+- (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 13:28:45 UTC 2019 - Aaron Puchert <[email protected]>
+
+- 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 19:42:25 UTC 2019 - Aaron Puchert <[email protected]>
+
+- 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 11:13:10 UTC 2019 - Lubos Lunak <[email protected]>
+
+- Make lldb recommend python3-lldb (it contains pretty printers).
+
+-------------------------------------------------------------------
+Wed Aug 21 21:53:49 UTC 2019 - Aaron Puchert <[email protected]>
+
+- Use python3 shebangs everywhere (boo#1146533).
+- Drop obsolete opt-viewer-Do-not-require-python-2.patch.
+
+-------------------------------------------------------------------
+Fri Aug 16 09:53:24 UTC 2019 - Aaron Puchert <[email protected]>
+
+- 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 18:45:23 UTC 2019 - Aaron Puchert <[email protected]>
+
+- 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 09:55:21 UTC 2019 - Guillaume GARDET <[email protected]>
+
+- Increase RAM for armv6/7 to avoid OOM and be scheduled on fast
+  worker
+
+-------------------------------------------------------------------
+Thu Jun 27 23:03:49 UTC 2019 - Aaron Puchert <[email protected]>
+
+- 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 21:26:33 UTC 2019 - Aaron Puchert <[email protected]>
+
+- Exclude riscv64 for now since it fails to build.
+
+-------------------------------------------------------------------
+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.
+- Enable tests for libcxx.
+- Reduce memory requirements for compile jobs depending on arch.
+
+-------------------------------------------------------------------
+Sun May 12 19:11:24 UTC 2019 - Aaron Puchert <[email protected]>
+
+- Avoid relocation overflow on ppc by not building GPU backends.
+- Update baselibs.conf.
+
+-------------------------------------------------------------------
+Wed Apr 24 17:20:07 UTC 2019 - Martin Liška <[email protected]>
+
+- Disable LTO (boo#1133254).
+
+-------------------------------------------------------------------
+Sat Mar 23 23:29:21 UTC 2019 - [email protected]
+
+- 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 09:16:11 UTC 2019 - Adrian Schröter <[email protected]>
+
+- Enable libc++ on ARM (Needed for tensorflow)
+
+-------------------------------------------------------------------
+Mon Mar 11 12:53:39 UTC 2019 - [email protected]
+
+- 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 20:24:03 UTC 2019 - [email protected]
+
+- 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.
++++ 1765 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:Factory/.llvm9.new.2352/llvm9.changes

New:
----
  _constraints
  assume-opensuse.patch
  baselibs.conf
  cfe-9.0.0.src.tar.xz
  cfe-docs-9.0.0.src.tar.xz
  clang-fix-powerpc-triplet.patch
  clang-ignore-stack-clash-protector.patch
  clang-resourcedirs.patch
  clang-tools-extra-9.0.0.src.tar.xz
  compiler-rt-9.0.0.src.tar.xz
  default-to-i586.patch
  dont-install-example-analyzer-plugins.patch
  fix-module-test.patch
  libcxx-9.0.0.src.tar.xz
  libcxxabi-9.0.0.src.tar.xz
  link-clang-shared.patch
  link-clang-tools-extra-shared.patch
  link-lldb-shared.patch
  lld-9.0.0.src.tar.xz
  lldb-9.0.0.src.tar.xz
  lldb-cmake.patch
  llvm-9.0.0.src.tar.xz
  llvm-better-detect-64bit-atomics-support.patch
  llvm-do-not-install-static-libraries.patch
  llvm-docs-9.0.0.src.tar.xz
  llvm-fix-find-gcc5-install.patch
  llvm-normally-versioned-libllvm.patch
  llvm-remove-clang-only-flags.patch
  llvm9-rpmlintrc
  llvm9.changes
  llvm9.spec
  llvm_build_tablegen_component_as_shared_library.patch
  lto-disable-cache.patch
  openmp-9.0.0.src.tar.xz
  opt-viewer-Find-style-css-in-usr-share.patch
  polly-9.0.0.src.tar.xz
  set-revision.patch
  tests-use-python3.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ llvm9.spec ++++++
++++ 1852 lines (skipped)

++++++ _constraints ++++++
<?xml version="1.0"?>
<constraints>
  <hardware>
    <disk>
      <size unit="G">35</size>
    </disk>
    <memory>
      <size unit="M">9000</size>
    </memory>
  </hardware>
  <overwrite>
    <!-- 
      We have disabled debuginfo on 32 bit architecture because they simply can 
no address enough memory to link llvm libraries with it.
      Without debuginfo the disk and memory requirements are much lower.
    -->
    <conditions>
      <arch>armv6l</arch>
      <arch>armv7l</arch>
      <arch>i586</arch>
      <arch>ppc</arch>
      <arch>s390</arch>
    </conditions>
    <hardware>
      <disk>
        <size unit="G">10</size>
      </disk>
      <memory>
        <size unit="M">4096</size>
      </memory>
    </hardware>
  </overwrite>
  <overwrite>
    <conditions>
      <arch>aarch64</arch>
    </conditions>
    <hardware>
      <memory>
        <size unit="M">4096</size>
      </memory>
    </hardware>
    <sandbox>kvm</sandbox>
  </overwrite>
  <overwrite>
    <conditions>
      <arch>ppc64</arch>
      <arch>ppc64le</arch>
    </conditions>
    <hardware>
      <memory>
        <size unit="M">4096</size>
      </memory>
    </hardware>
  </overwrite>
</constraints>
++++++ assume-opensuse.patch ++++++
Index: cfe-8.0.0rc3.src/lib/Driver/Distro.cpp
===================================================================
--- cfe-8.0.0rc3.src.orig/lib/Driver/Distro.cpp
+++ cfe-8.0.0rc3.src/lib/Driver/Distro.cpp
@@ -19,6 +19,8 @@ using namespace clang::driver;
 using namespace clang;
 
 static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
+    return Distro::OpenSUSE;
+/*
   llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> File =
       VFS.getBufferForFile("/etc/lsb-release");
   if (File) {
@@ -141,7 +143,7 @@ static Distro::DistroType DetectDistro(l
   if (VFS.exists("/etc/gentoo-release"))
     return Distro::Gentoo;
 
-  return Distro::UnknownDistro;
+  return Distro::UnknownDistro;*/
 }
 
 Distro::Distro(llvm::vfs::FileSystem &VFS) : DistroVal(DetectDistro(VFS)) {}
Index: cfe-8.0.0rc3.src/unittests/Driver/CMakeLists.txt
===================================================================
--- cfe-8.0.0rc3.src.orig/unittests/Driver/CMakeLists.txt
+++ cfe-8.0.0rc3.src/unittests/Driver/CMakeLists.txt
@@ -5,7 +5,6 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_clang_unittest(ClangDriverTests
-  DistroTest.cpp
   ToolChainTest.cpp
   ModuleCacheTest.cpp
   MultilibTest.cpp
++++++ baselibs.conf ++++++
libLLVM9
libclang9
libLTO9
llvm9-devel
  provides "llvm-devel-<targettype> = <version>"
  conflicts "otherproviders(llvm-devel-<targettype>)"
clang9-devel
  provides "clang-devel-<targettype> = <version>"
  conflicts "otherproviders(clang-devel-<targettype>)"
llvm9-LTO-devel
  provides "llvm-LTO-devel-<targettype> = <version>"
  conflicts "otherproviders(llvm-LTO-devel-<targettype>)"
++++++ clang-fix-powerpc-triplet.patch ++++++
[Driver] Fix incorrect GNU triplet for PowerPC on SUSE Linux

On SUSE distributions for 32-bit PowerPC, gcc is configured
as a 64-bit compiler using the GNU triplet "powerpc64-suse-linux",
but invoked with "-m32" by default. Thus, the correct GNU triplet
for 32-bit PowerPC SUSE distributions is "powerpc64-suse-linux"
and not "powerpc-suse-linux".

Differential Revision: https://reviews.llvm.org/D55326

diff -Nru cfe-7.0.0.src.orig/lib/Driver/ToolChains/Gnu.cpp 
cfe-7.0.0.src/lib/Driver/ToolChains/Gnu.cpp
--- cfe-7.0.0.src.orig/lib/Driver/ToolChains/Gnu.cpp    2018-07-31 
16:21:46.000000000 +0200
+++ cfe-7.0.0.src/lib/Driver/ToolChains/Gnu.cpp 2018-12-05 15:55:34.106427845 
+0100
@@ -1865,7 +1865,7 @@
   static const char *const PPCLibDirs[] = {"/lib32", "/lib"};
   static const char *const PPCTriples[] = {
       "powerpc-linux-gnu", "powerpc-unknown-linux-gnu", "powerpc-linux-gnuspe",
-      "powerpc-suse-linux", "powerpc-montavista-linuxspe"};
+      "powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
   static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
   static const char *const PPC64Triples[] = {
       "powerpc64-linux-gnu", "powerpc64-unknown-linux-gnu",
++++++ clang-ignore-stack-clash-protector.patch ++++++
Index: cfe-6.0.0rc1.src/include/clang/Driver/Options.td
===================================================================
--- cfe-6.0.0rc1.src.orig/include/clang/Driver/Options.td
+++ cfe-6.0.0rc1.src/include/clang/Driver/Options.td
@@ -816,6 +816,7 @@ def fexcess_precision_EQ : Joined<["-"],
     Group<clang_ignored_gcc_optimization_f_Group>;
 def : Flag<["-"], "fexpensive-optimizations">, 
Group<clang_ignored_gcc_optimization_f_Group>;
 def : Flag<["-"], "fno-expensive-optimizations">, 
Group<clang_ignored_gcc_optimization_f_Group>;
+def : Flag<["-"], "fstack-clash-protection">, Group<clang_ignored_f_Group>;
 def fextdirs_EQ : Joined<["-"], "fextdirs=">, Group<f_Group>;
 def : Flag<["-"], "fdefer-pop">, Group<clang_ignored_gcc_optimization_f_Group>;
 def : Flag<["-"], "fno-defer-pop">, 
Group<clang_ignored_gcc_optimization_f_Group>;
++++++ clang-resourcedirs.patch ++++++
Index: cfe-6.0.0rc1.src/lib/Driver/Driver.cpp
===================================================================
--- cfe-6.0.0rc1.src.orig/lib/Driver/Driver.cpp
+++ cfe-6.0.0rc1.src/lib/Driver/Driver.cpp
@@ -115,7 +115,7 @@ Driver::Driver(StringRef ClangExecutable
   // Dir is bin/ or lib/, depending on where BinaryPath is.
   std::string Dir = llvm::sys::path::parent_path(BinaryPath);
 
-  SmallString<128> P(Dir);
+  SmallString<128> P((Dir != "") ? Dir : "/usr/bin/");
   if (CustomResourceDir != "") {
     llvm::sys::path::append(P, CustomResourceDir);
   } else {
++++++ default-to-i586.patch ++++++
Index: cfe-6.0.0rc1.src/lib/Driver/ToolChains/Arch/X86.cpp
===================================================================
--- cfe-6.0.0rc1.src.orig/lib/Driver/ToolChains/Arch/X86.cpp
+++ cfe-6.0.0rc1.src/lib/Driver/ToolChains/Arch/X86.cpp
@@ -102,8 +102,8 @@ const char *x86::getX86TargetCPU(const A
   case llvm::Triple::Haiku:
     return "i586";
   default:
-    // Fallback to p4.
-    return "pentium4";
+    // Fallback to i586.
+    return "i586";
   }
 }
 
++++++ dont-install-example-analyzer-plugins.patch ++++++
>From c28bd7f58bc49d6cfec557ba030beed933504859 Mon Sep 17 00:00:00 2001
From: Aaron Puchert <[email protected]>
Date: Sat, 28 Sep 2019 02:19:06 +0200
Subject: [PATCH] Don't install example analyzer plugins

Reviewers: hintonda, NoQ

Subscribers: mgorny, baloghadamsoftware, a.sidorin, Szelethus, donat.nagy, 
dkrupp, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68172
---
 .../Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt   | 2 +-
 clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt | 2 +-
 clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt        | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt 
b/clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt
index dde2cca133b..229de548149 100644
--- a/clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt
+++ b/clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt
@@ -3,7 +3,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 set(LLVM_EXPORTED_SYMBOL_FILE 
${CMAKE_CURRENT_SOURCE_DIR}/CheckerDependencyHandlingAnalyzerPlugin.exports)
-add_llvm_library(CheckerDependencyHandlingAnalyzerPlugin MODULE 
CheckerDependencyHandling.cpp PLUGIN_TOOL clang)
+add_llvm_library(CheckerDependencyHandlingAnalyzerPlugin MODULE BUILDTREE_ONLY 
CheckerDependencyHandling.cpp PLUGIN_TOOL clang)
 
 clang_target_link_libraries(CheckerDependencyHandlingAnalyzerPlugin PRIVATE
   clangAnalysis
diff --git a/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt 
b/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt
index 744164782d9..432383efba5 100644
--- a/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt
+++ b/clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt
@@ -3,7 +3,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 set(LLVM_EXPORTED_SYMBOL_FILE 
${CMAKE_CURRENT_SOURCE_DIR}/CheckerOptionHandlingAnalyzerPlugin.exports)
-add_llvm_library(CheckerOptionHandlingAnalyzerPlugin MODULE 
CheckerOptionHandling.cpp PLUGIN_TOOL clang)
+add_llvm_library(CheckerOptionHandlingAnalyzerPlugin MODULE BUILDTREE_ONLY 
CheckerOptionHandling.cpp PLUGIN_TOOL clang)
 
 clang_target_link_libraries(CheckerOptionHandlingAnalyzerPlugin PRIVATE
   clangAnalysis
diff --git a/clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt 
b/clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt
index 0db1780ca7c..d9b3f05cbd1 100644
--- a/clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt
+++ b/clang/lib/Analysis/plugins/SampleAnalyzer/CMakeLists.txt
@@ -3,7 +3,7 @@ set(LLVM_LINK_COMPONENTS
   )
 
 set(LLVM_EXPORTED_SYMBOL_FILE 
${CMAKE_CURRENT_SOURCE_DIR}/SampleAnalyzerPlugin.exports)
-add_llvm_library(SampleAnalyzerPlugin MODULE MainCallChecker.cpp PLUGIN_TOOL 
clang)
+add_llvm_library(SampleAnalyzerPlugin MODULE BUILDTREE_ONLY 
MainCallChecker.cpp PLUGIN_TOOL clang)
 
 clang_target_link_libraries(SampleAnalyzerPlugin PRIVATE
   clangAnalysis
-- 
2.23.0

++++++ fix-module-test.patch ++++++
>From 45423c32672a3175ce57accc04a182ab0bdb9e84 Mon Sep 17 00:00:00 2001
From: Tom Stellard <[email protected]>
Date: Sat, 28 Sep 2019 15:21:48 +0200
Subject: [PATCH] Fix Driver/modules.cpp test to work when build directory name
 contains '.s'

Reviewers: dyung, rsmith, hansw

Reviewed By: dyung

Subscribers: mati865, mgorny, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D66176
---
 clang/test/Driver/modules.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/test/Driver/modules.cpp b/clang/test/Driver/modules.cpp
index 7c549c1300f..4f4e3a41400 100644
--- a/clang/test/Driver/modules.cpp
+++ b/clang/test/Driver/modules.cpp
@@ -15,7 +15,7 @@
 // RUN: %clang -std=c++2a %t/module.pcm -S -o %t/module.pcm.o -v 2>&1 | 
FileCheck %s --check-prefix=CHECK-COMPILE
 //
 // CHECK-COMPILE: -cc1 {{.*}} {{-emit-obj|-S}}
-// CHECK-COMPILE-SAME: -o {{.*}}.{{pcm.o|s}}
+// CHECK-COMPILE-SAME: -o {{.*}}module{{2*}}.pcm.o
 // CHECK-COMPILE-SAME: -x pcm
 // CHECK-COMPILE-SAME: {{.*}}.pcm
 
-- 
2.23.0

++++++ link-clang-shared.patch ++++++
diff --git a/clang/tools/c-index-test/CMakeLists.txt 
b/clang/tools/c-index-test/CMakeLists.txt
index ceef4b08637..606149ad74f 100644
--- a/clang/tools/c-index-test/CMakeLists.txt
+++ b/clang/tools/c-index-test/CMakeLists.txt
@@ -18,6 +18,9 @@ if (LLVM_BUILD_STATIC)
   target_link_libraries(c-index-test
     PRIVATE
     libclang_static
+  )
+  clang_target_link_libraries(c-index-test
+    PRIVATE
     clangCodeGen
     clangIndex
   )
@@ -25,6 +28,9 @@ else()
   target_link_libraries(c-index-test
     PRIVATE
     libclang
+  )
+  clang_target_link_libraries(c-index-test
+    PRIVATE
     clangAST
     clangBasic
     clangCodeGen
diff --git a/clang/tools/libclang/CMakeLists.txt 
b/clang/tools/libclang/CMakeLists.txt
index 613ead1a36b..f86be77b8e7 100644
--- a/clang/tools/libclang/CMakeLists.txt
+++ b/clang/tools/libclang/CMakeLists.txt
@@ -33,7 +33,7 @@ set(SOURCES
   ../../include/clang-c/Index.h
   )
 
-set(LIBS
+set(CLANG_LIB_DEPS
   clangAST
   clangBasic
   clangDriver
@@ -46,7 +46,7 @@ set(LIBS
 )
 
 if (CLANG_ENABLE_ARCMT)
-  list(APPEND LIBS clangARCMigrate)
+  list(APPEND CLANG_LIB_DEPS clangARCMigrate)
 endif ()
 
 if (TARGET clangTidyPlugin)
@@ -108,6 +108,11 @@ add_clang_library(libclang ${ENABLE_SHARED} 
${ENABLE_STATIC} INSTALL_WITH_TOOLCH
   Support
   )
 
+clang_target_link_libraries(libclang
+  PRIVATE
+  ${CLANG_LIB_DEPS}
+  )
+
 if(ENABLE_SHARED)
   if(WIN32)
     set_target_properties(libclang
++++++ link-clang-tools-extra-shared.patch ++++++
++++ 1257 lines (skipped)

++++++ link-lldb-shared.patch ++++++
diff --git a/lldb/source/Core/CMakeLists.txt b/lldb/source/Core/CMakeLists.txt
index 476e92878e0..3cd16eb22e4 100644
--- a/lldb/source/Core/CMakeLists.txt
+++ b/lldb/source/Core/CMakeLists.txt
@@ -66,7 +66,6 @@ add_lldb_library(lldbCore
   ValueObjectVariable.cpp
 
   LINK_LIBS
-    clangAST
     lldbBreakpoint
     lldbDataFormatters
     lldbExpression
@@ -88,6 +87,10 @@ add_lldb_library(lldbCore
     Demangle
   )
 
+clang_target_link_libraries(lldbCore INTERFACE
+  clangAST
+  )
+
 # Needed to properly resolve references in a debug build.
 # TODO: Remove once we have better layering
 set_target_properties(lldbCore PROPERTIES LINK_INTERFACE_MULTIPLICITY 4)
diff --git a/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt 
b/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt
index 99d50c4007f..f848264e273 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt
+++ b/lldb/source/Plugins/ExpressionParser/Clang/CMakeLists.txt
@@ -26,17 +26,6 @@ add_lldb_library(lldbPluginExpressionParserClang PLUGIN
   ${tablegen_deps}
 
   LINK_LIBS
-    clangAST
-    clangCodeGen
-    clangDriver
-    clangEdit
-    clangFrontend
-    clangLex
-    clangParse
-    clangRewrite
-    clangRewriteFrontend
-    clangSema
-    clangSerialization
     lldbCore
     lldbExpression
     lldbHost
@@ -53,3 +42,17 @@ add_lldb_library(lldbPluginExpressionParserClang PLUGIN
     MCJIT
     Support
   )
+
+clang_target_link_libraries(lldbPluginExpressionParserClang INTERFACE
+  clangAST
+  clangCodeGen
+  clangDriver
+  clangEdit
+  clangFrontend
+  clangLex
+  clangParse
+  clangRewrite
+  clangRewriteFrontend
+  clangSema
+  clangSerialization
+  )
diff --git a/lldb/source/Plugins/Language/ObjC/CMakeLists.txt 
b/lldb/source/Plugins/Language/ObjC/CMakeLists.txt
index afb68d4de83..4c78f73c1b3 100644
--- a/lldb/source/Plugins/Language/ObjC/CMakeLists.txt
+++ b/lldb/source/Plugins/Language/ObjC/CMakeLists.txt
@@ -22,7 +22,6 @@ add_lldb_library(lldbPluginObjCLanguage PLUGIN
   NSString.cpp
 
   LINK_LIBS
-    clangAST
     lldbCore
     lldbDataFormatters
     lldbExpression
@@ -35,3 +34,7 @@ add_lldb_library(lldbPluginObjCLanguage PLUGIN
 
   EXTRA_CXXFLAGS ${EXTRA_CXXFLAGS}
 )
+
+clang_target_link_libraries(lldbPluginObjCLanguage INTERFACE
+  clangAST
+)
diff --git 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt 
b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
index 29d9ba1f823..6f49d7a16c7 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
@@ -9,7 +9,6 @@ add_lldb_library(lldbPluginAppleObjCRuntime PLUGIN
   AppleObjCTypeEncodingParser.cpp
 
   LINK_LIBS
-    clangAST
     lldbBreakpoint
     lldbCore
     lldbExpression
@@ -23,3 +22,7 @@ add_lldb_library(lldbPluginAppleObjCRuntime PLUGIN
   LINK_COMPONENTS
     Support
   )
+
+clang_target_link_libraries(lldbPluginAppleObjCRuntime INTERFACE
+  clangAST
+  )
diff --git 
a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt
 
b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt
index 1a6c4994613..429cd5e0324 100644
--- 
a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt
+++ 
b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/CMakeLists.txt
@@ -13,7 +13,6 @@ add_lldb_library(lldbPluginRenderScriptRuntime PLUGIN
   ${tablegen_deps}
 
   LINK_LIBS
-    clangBasic
     lldbBreakpoint
     lldbCore
     lldbDataFormatters
@@ -28,3 +27,7 @@ add_lldb_library(lldbPluginRenderScriptRuntime PLUGIN
     Support
     Target
   )
+
+clang_target_link_libraries(lldbPluginRenderScriptRuntime INTERFACE
+  clangBasic
+  )
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt 
b/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
index 1107e531e46..312a87fb01d 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
+++ b/lldb/source/Plugins/SymbolFile/DWARF/CMakeLists.txt
@@ -43,8 +43,6 @@ add_lldb_library(lldbPluginSymbolFileDWARF PLUGIN
   UniqueDWARFASTType.cpp
 
   LINK_LIBS
-    clangAST
-    clangBasic
     lldbCore
     lldbExpression
     lldbHost
@@ -63,3 +61,8 @@ add_lldb_library(lldbPluginSymbolFileDWARF PLUGIN
     DebugInfoDWARF
     Support
   )
+
+clang_target_link_libraries(lldbPluginSymbolFileDWARF INTERFACE
+    clangAST
+    clangBasic
+  )
diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt 
b/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt
index 52b431db517..b0719758eae 100644
--- a/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt
+++ b/lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt
@@ -11,8 +11,6 @@ add_lldb_library(lldbPluginSymbolFileNativePDB PLUGIN
   UdtRecordCompleter.cpp
 
   LINK_LIBS
-    clangAST
-    clangLex
     lldbCore
     lldbSymbol
     lldbUtility
@@ -21,3 +19,8 @@ add_lldb_library(lldbPluginSymbolFileNativePDB PLUGIN
     DebugInfoPDB
     Support
   )
+
+clang_target_link_libraries(lldbPluginSymbolFileNativePDB INTERFACE
+  clangAST
+  clangLex
+  )
diff --git a/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt 
b/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt
index 64168d056ce..93502f9a626 100644
--- a/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt
+++ b/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt
@@ -4,8 +4,6 @@ add_lldb_library(lldbPluginSymbolFilePDB PLUGIN
   SymbolFilePDB.cpp
 
   LINK_LIBS
-    clangAST
-    clangLex
     lldbCore
     lldbSymbol
     lldbUtility
@@ -14,3 +12,8 @@ add_lldb_library(lldbPluginSymbolFilePDB PLUGIN
     DebugInfoPDB
     Support
   )
+
+clang_target_link_libraries(lldbPluginSymbolFilePDB INTERFACE
+  clangAST
+  clangLex
+  )
diff --git a/lldb/source/Symbol/CMakeLists.txt 
b/lldb/source/Symbol/CMakeLists.txt
index 42ae414b3c8..f19d6191289 100644
--- a/lldb/source/Symbol/CMakeLists.txt
+++ b/lldb/source/Symbol/CMakeLists.txt
@@ -46,9 +46,6 @@ add_lldb_library(lldbSymbol
   ${PLATFORM_SOURCES}
 
   LINK_LIBS
-    clangAST
-    clangBasic
-    clangFrontend
     lldbCore
     lldbExpression
     lldbHost
@@ -63,3 +60,9 @@ add_lldb_library(lldbSymbol
   LINK_COMPONENTS
     Support
   )
+
+clang_target_link_libraries(lldbSymbol INTERFACE
+  clangAST
+  clangBasic
+  clangFrontend
+  )
diff --git a/lldb/tools/lldb-instr/CMakeLists.txt 
b/lldb/tools/lldb-instr/CMakeLists.txt
index e3dbeba4006..76d9b5fe382 100644
--- a/lldb/tools/lldb-instr/CMakeLists.txt
+++ b/lldb/tools/lldb-instr/CMakeLists.txt
@@ -1,7 +1,11 @@
 add_lldb_tool(lldb-instr
   Instrument.cpp
 
-  LINK_LIBS
+  LINK_COMPONENTS
+    Support
+  )
+
+clang_target_link_libraries(lldb-instr PRIVATE
     clangAST
     clangBasic
     clangCodeGen
@@ -10,7 +14,4 @@ add_lldb_tool(lldb-instr
     clangRewrite
     clangSerialization
     clangTooling
-
-  LINK_COMPONENTS
-    Support
   )
++++++ lldb-cmake.patch ++++++
Index: lldb-8.0.0rc3.src/source/lldb.cpp
===================================================================
--- lldb-8.0.0rc3.src.orig/source/lldb.cpp
+++ lldb-8.0.0rc3.src/source/lldb.cpp
@@ -23,11 +23,7 @@ using namespace lldb_private;
 #endif
 
 static const char *GetLLDBRevision() {
-#ifdef LLDB_REVISION
   return LLDB_REVISION;
-#else
-  return NULL;
-#endif
 }
 
 static const char *GetLLDBRepository() {
Index: lldb-8.0.0rc3.src/source/Core/IOHandler.cpp
===================================================================
--- lldb-8.0.0rc3.src.orig/source/Core/IOHandler.cpp
+++ lldb-8.0.0rc3.src/source/Core/IOHandler.cpp
@@ -10,8 +10,8 @@
 #include "lldb/Core/IOHandler.h"
 
 #ifndef LLDB_DISABLE_CURSES
-#include <curses.h>
-#include <panel.h>
+#include <ncurses/curses.h>
+#include <ncurses/panel.h>
 #endif
 
 #if defined(__APPLE__)
Index: lldb-8.0.0rc3.src/source/Host/CMakeLists.txt
===================================================================
--- lldb-8.0.0rc3.src.orig/source/Host/CMakeLists.txt
+++ lldb-8.0.0rc3.src/source/Host/CMakeLists.txt
@@ -143,6 +143,8 @@ endif()
 set(EXTRA_LIBS)
 if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
   list(APPEND EXTRA_LIBS kvm)
+elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
+  list(APPEND EXTRA_LIBS dl pthread)
 endif ()
 if (APPLE)
   list(APPEND EXTRA_LIBS xml2)
++++++ llvm-better-detect-64bit-atomics-support.patch ++++++
Better detect 64bit atomics support.

It appears that on i586 std::atomic<uint64_t>::load is compiled into
instruction, but std::atomic<double>::load uses __atomic_load_8. This must
be detected so the build system links it to libatomic.
Index: llvm-7.0.0.src/cmake/modules/CheckAtomic.cmake
===================================================================
--- llvm-7.0.0.src.orig/cmake/modules/CheckAtomic.cmake
+++ llvm-7.0.0.src/cmake/modules/CheckAtomic.cmake
@@ -26,8 +26,10 @@ function(check_working_cxx_atomics64 var
 #include <atomic>
 #include <cstdint>
 std::atomic<uint64_t> x (0);
+std::atomic<double> y (0);
 int main() {
   uint64_t i = x.load(std::memory_order_relaxed);
+  double j = y.load(std::memory_order_relaxed);
   return 0;
 }
 " ${varname})
++++++ llvm-do-not-install-static-libraries.patch ++++++
This has similar effect as simply deleting the static libraries which we don't
want after installation. By not copying them in the first place we reduce the
disk usage during installation.

Index: llvm-9.0.0.src/cfe-9.0.0.src/cmake/modules/AddClang.cmake
===================================================================
--- llvm-9.0.0.src.orig/cfe-9.0.0.src/cmake/modules/AddClang.cmake
+++ llvm-9.0.0.src/cfe-9.0.0.src/cmake/modules/AddClang.cmake
@@ -106,12 +106,15 @@ macro(add_clang_library name)
         set_property(GLOBAL PROPERTY CLANG_HAS_EXPORTS True)
       endif()
 
-      install(TARGETS ${name}
-        COMPONENT ${name}
-        ${export_to_clangtargets}
-        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-        RUNTIME DESTINATION bin)
+      if (ARG_SHARED OR ARG_MODULE)
+        install(TARGETS ${name}
+          COMPONENT ${name}
+          ${export_to_clangtargets}
+          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+          RUNTIME DESTINATION bin)
+        set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name})
+      endif()
 
       if (NOT LLVM_ENABLE_IDE)
         add_llvm_install_targets(install-${name}
@@ -121,7 +124,6 @@ macro(add_clang_library name)
 
       set_property(GLOBAL APPEND PROPERTY CLANG_LIBS ${name})
     endif()
-    set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name})
   else()
     # Add empty "phony" target
     add_custom_target(${name})
Index: llvm-9.0.0.src/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm-9.0.0.src.orig/cmake/modules/AddLLVM.cmake
+++ llvm-9.0.0.src/cmake/modules/AddLLVM.cmake
@@ -695,11 +695,13 @@ macro(add_llvm_library name)
         set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
       endif()
 
-      install(TARGETS ${name}
-              ${export_to_llvmexports}
-              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-              RUNTIME DESTINATION bin COMPONENT ${name})
+      if(ARG_SHARED OR ARG_MODULE OR NOT LLVM_BUILD_LLVM_DYLIB)
+        install(TARGETS ${name}
+                ${export_to_llvmexports}
+                LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+                ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
+                RUNTIME DESTINATION bin COMPONENT ${name})
+      endif()
 
       if (NOT LLVM_ENABLE_IDE)
         add_llvm_install_targets(install-${name}
Index: llvm-9.0.0.src/lld-9.0.0.src/cmake/modules/AddLLD.cmake
===================================================================
--- llvm-9.0.0.src.orig/lld-9.0.0.src/cmake/modules/AddLLD.cmake
+++ llvm-9.0.0.src/lld-9.0.0.src/cmake/modules/AddLLD.cmake
@@ -17,13 +17,6 @@ macro(add_lld_library name)
       set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True)
     endif()
 
-    install(TARGETS ${name}
-      COMPONENT ${name}
-      ${export_to_lldtargets}
-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-      RUNTIME DESTINATION bin)
-
     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
       add_llvm_install_targets(install-${name}
         DEPENDS ${name}
Index: llvm-9.0.0.src/polly-9.0.0.src/cmake/polly_macros.cmake
===================================================================
--- llvm-9.0.0.src.orig/polly-9.0.0.src/cmake/polly_macros.cmake
+++ llvm-9.0.0.src/polly-9.0.0.src/cmake/polly_macros.cmake
@@ -42,12 +42,14 @@ macro(add_polly_library name)
     llvm_config(${name} ${LLVM_LINK_COMPONENTS})
   endif( LLVM_LINK_COMPONENTS )
   if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
-    install(TARGETS ${name}
-      EXPORT LLVMExports
-      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
+    if (MODULE OR SHARED_LIBRARY OR NOT LLVM_BUILD_LLVM_DYLIB)
+      install(TARGETS ${name}
+        EXPORT LLVMExports
+        LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+        ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
+      set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
+    endif()
   endif()
-  set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
 endmacro(add_polly_library)
 
 macro(add_polly_loadable_module name)
Index: llvm-9.0.0.src/polly-9.0.0.src/lib/CMakeLists.txt
===================================================================
--- llvm-9.0.0.src.orig/polly-9.0.0.src/lib/CMakeLists.txt
+++ llvm-9.0.0.src/polly-9.0.0.src/lib/CMakeLists.txt
@@ -74,7 +74,7 @@ set_target_properties(PollyCore PROPERTI
 # LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as
 # well.
 add_polly_library(Polly $<TARGET_OBJECTS:PollyCore>)
-target_link_libraries(Polly PUBLIC
+target_link_libraries(Polly PRIVATE
   ${ISL_TARGET}
 )
 
@@ -143,7 +143,7 @@ else ()
   # hosts. This is not the case for bugpoint. Use LLVM_POLLY_LINK_INTO_TOOLS=ON
   # instead which will automatically resolve the additional dependencies by
   # Polly.
-  target_link_libraries(LLVMPolly PUBLIC ${ISL_TARGET})
+  target_link_libraries(LLVMPolly PRIVATE ${ISL_TARGET})
   if (GPU_CODEGEN)
     target_link_libraries(LLVMPolly PUBLIC PollyPPCG)
   endif ()
++++++ llvm-fix-find-gcc5-install.patch ++++++
Index: cfe-7.0.0rc1.src/lib/Driver/ToolChains/Gnu.cpp
===================================================================
--- cfe-7.0.0rc1.src.orig/lib/Driver/ToolChains/Gnu.cpp
+++ cfe-7.0.0rc1.src/lib/Driver/ToolChains/Gnu.cpp
@@ -1596,7 +1596,8 @@ Generic_GCC::GCCVersion Generic_GCC::GCC
       MinorStr = MinorStr.slice(0, EndNumber);
     }
   }
-  if (MinorStr.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0)
+  if (!MinorStr.str().empty() && 
+      (MinorStr.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0))
     return BadVersion;
   GoodVersion.MinorStr = MinorStr.str();
 
++++++ llvm-normally-versioned-libllvm.patch ++++++
Before llvm4, both major and minor version updates of llvm were regularly
breaking API. Because of that, the libLLVM library was named in following
format: libLLVM-${major}-${minor}.so

  (https://bugs.llvm.org/show_bug.cgi?id=25059)
  (https://reviews.llvm.org/D13841)

The package containing this library was called libLLVM${major}_${minor} which
follows our guidelines.

Since llvm4, llvm decided to follow semantic versioning and only break API if
the major version was increased. In addition they do not intend to ever have
minor version other than 0.
  (http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html)

The package was renamed to libLLVM${major}, which no longer follows the naming
guidelines, but since the package contained multiple libraries, it was not
detected.

Since bnc#1049703 the libLLVM${major} package contains only the
libLLVM-${major}-${minor}.so library and no others. This triggers the
shlib-policy-name-error check in our packaging system.

Because the reasons for using the libLLVM-${major}-${minor}.so format are no
longer valid, lets revert back to libLLVM.so.${major}.${minor}.${version}
format. That way the package name matches our guidelines.

Index: llvm-8.0.0rc3.src/tools/llvm-config/llvm-config.cpp
===================================================================
--- llvm-8.0.0rc3.src.orig/tools/llvm-config/llvm-config.cpp
+++ llvm-8.0.0rc3.src/tools/llvm-config/llvm-config.cpp
@@ -380,7 +380,6 @@ int main(int argc, char **argv) {
   } else {
     // default to the unix values:
     SharedExt = "so";
-    SharedVersionedExt = LLVM_DYLIB_VERSION ".so";
     StaticExt = "a";
     StaticDir = SharedDir = ActiveLibDir;
     StaticPrefix = SharedPrefix = "lib";
@@ -393,7 +392,7 @@ int main(int argc, char **argv) {
 
   bool DyLibExists = false;
   const std::string DyLibName =
-      (SharedPrefix + "LLVM-" + SharedVersionedExt).str();
+      (SharedPrefix + "LLVM." + SharedExt).str();
 
   // If LLVM_LINK_DYLIB is ON, the single shared library will be returned
   // for "--libs", etc, if they exist. This behaviour can be overridden with
Index: llvm-8.0.0rc3.src/tools/llvm-shlib/CMakeLists.txt
===================================================================
--- llvm-8.0.0rc3.src.orig/tools/llvm-shlib/CMakeLists.txt
+++ llvm-8.0.0rc3.src/tools/llvm-shlib/CMakeLists.txt
@@ -42,7 +42,7 @@ if(LLVM_BUILD_LLVM_DYLIB)
   if (LLVM_LINK_LLVM_DYLIB)
     set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN)
   endif()
-  add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME 
${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
+  add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB 
${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
 
   list(REMOVE_DUPLICATES LIB_NAMES)
   if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
++++++ llvm-remove-clang-only-flags.patch ++++++
Index: llvm-8.0.0rc3.src/cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- llvm-8.0.0rc3.src.orig/cmake/modules/HandleLLVMOptions.cmake
+++ llvm-8.0.0rc3.src/cmake/modules/HandleLLVMOptions.cmake
@@ -413,8 +413,6 @@ if( MSVC )
 elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
   append_if(LLVM_ENABLE_WERROR "-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
   append_if(LLVM_ENABLE_WERROR "-Wno-error" CMAKE_REQUIRED_FLAGS)
-  add_flag_if_supported("-Werror=date-time" WERROR_DATE_TIME)
-  add_flag_if_supported("-Werror=unguarded-availability-new" 
WERROR_UNGUARDED_AVAILABILITY_NEW)
   check_cxx_compiler_flag("-std=${LLVM_CXX_STD}" CXX_SUPPORTS_CXX_STD)
   if (CXX_SUPPORTS_CXX_STD)
    if (CYGWIN OR MINGW)
@@ -586,7 +584,6 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPI
   endif()
 
   add_flag_if_supported("-Wimplicit-fallthrough" IMPLICIT_FALLTHROUGH_FLAG)
-  add_flag_if_supported("-Wcovered-switch-default" COVERED_SWITCH_DEFAULT_FLAG)
   append_if(USE_NO_UNINITIALIZED "-Wno-uninitialized" CMAKE_CXX_FLAGS)
   append_if(USE_NO_MAYBE_UNINITIALIZED "-Wno-maybe-uninitialized" 
CMAKE_CXX_FLAGS)
 
++++++ llvm9-rpmlintrc ++++++
# This line is mandatory to access the configuration functions
from Config import *

addFilter("devel-file-in-non-devel-package .*/clang/.*/include/.*")
addFilter("devel-file-in-non-devel-package .*/clang/.*/lib/.*")
addFilter("devel-file-in-non-devel-package .*/usr/include/.*")

addFilter("devel-file-in-non-devel-package .*/lib.*/*.a")
addFilter("devel-file-in-non-devel-package .*/lib.*/*.so")
++++++ llvm_build_tablegen_component_as_shared_library.patch ++++++
The LLVMTableGen component is a special case that is excluded from libLLVM and
normally is only built as static library and linked into llvm-tblgen.

We need to have it as a shared library to be available for other projects such
as ldc.

This patch makes it even more special and forces it to be build and installed
as separate shared library.

Index: llvm-8.0.0rc3.src/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm-8.0.0rc3.src.orig/cmake/modules/AddLLVM.cmake
+++ llvm-8.0.0rc3.src/cmake/modules/AddLLVM.cmake
@@ -541,7 +541,7 @@ function(llvm_add_library name)
   if(ARG_MODULE AND LLVM_EXPORT_SYMBOLS_FOR_PLUGINS AND ARG_PLUGIN_TOOL AND 
(WIN32 OR CYGWIN))
     # On DLL platforms symbols are imported from the tool by linking against 
it.
     set(llvm_libs ${ARG_PLUGIN_TOOL})
-  elseif (DEFINED LLVM_LINK_COMPONENTS OR DEFINED ARG_LINK_COMPONENTS)
+  elseif (DEFINED LLVM_LINK_COMPONENTS OR DEFINED ARG_LINK_COMPONENTS OR 
(${name} STREQUAL "LLVMTableGen" AND LLVM_BUILD_LLVM_DYLIB))
     if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)
       set(llvm_libs LLVM)
     else()
Index: llvm-8.0.0rc3.src/cmake/modules/TableGen.cmake
===================================================================
--- llvm-8.0.0rc3.src.orig/cmake/modules/TableGen.cmake
+++ llvm-8.0.0rc3.src/cmake/modules/TableGen.cmake
@@ -115,7 +115,8 @@ macro(add_tablegen target project)
     set(LLVM_ENABLE_OBJLIB ON)
   endif()
 
-  add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
+  add_llvm_executable(${target} ${ARGN})
+  target_link_libraries(${target} PRIVATE LLVMTableGen)
   set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
 
   set(${project}_TABLEGEN "${target}" CACHE
Index: llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
===================================================================
--- llvm-8.0.0rc3.src.orig/lib/TableGen/CMakeLists.txt
+++ llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
@@ -1,3 +1,7 @@
+if (LLVM_BUILD_LLVM_DYLIB)
+    set(MAYBE_SHARED SHARED)
+endif()
+
 add_llvm_library(LLVMTableGen
   Error.cpp
   JSONBackend.cpp
@@ -9,6 +13,8 @@ add_llvm_library(LLVMTableGen
   TGLexer.cpp
   TGParser.cpp
 
+  ${MAYBE_SHARED}
+
   ADDITIONAL_HEADER_DIRS
   ${LLVM_MAIN_INCLUDE_DIR}/llvm/TableGen
   )
++++++ lto-disable-cache.patch ++++++
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake 
b/llvm/cmake/modules/HandleLLVMOptions.cmake
index 5e57a3b8234..23f9ed5fb56 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -885,20 +885,6 @@ if(uppercase_LLVM_ENABLE_LTO STREQUAL "THIN")
   if(NOT LINKER_IS_LLD_LINK)
     append("-flto=thin" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
   endif()
-  # If the linker supports it, enable the lto cache. This improves initial 
build
-  # time a little since we re-link a lot of the same objects, and significantly
-  # improves incremental build time.
-  # FIXME: We should move all this logic into the clang driver.
-  if(APPLE)
-    append("-Wl,-cache_path_lto,${PROJECT_BINARY_DIR}/lto.cache"
-           CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
-  elseif(UNIX AND LLVM_USE_LINKER STREQUAL "lld")
-    append("-Wl,--thinlto-cache-dir=${PROJECT_BINARY_DIR}/lto.cache"
-           CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
-  elseif(LLVM_USE_LINKER STREQUAL "gold")
-    append("-Wl,--plugin-opt,cache-dir=${PROJECT_BINARY_DIR}/lto.cache"
-           CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
-  endif()
 elseif(uppercase_LLVM_ENABLE_LTO STREQUAL "FULL")
   append("-flto=full" CMAKE_CXX_FLAGS CMAKE_C_FLAGS)
   if(NOT LINKER_IS_LLD_LINK)
++++++ opt-viewer-Find-style-css-in-usr-share.patch ++++++
Index: llvm-7.0.0.src/tools/opt-viewer/opt-viewer.py
===================================================================
--- llvm-7.0.0.src.orig/tools/opt-viewer/opt-viewer.py
+++ llvm-7.0.0.src/tools/opt-viewer/opt-viewer.py
@@ -252,8 +252,7 @@ def generate_report(all_remarks,
         sorted_remarks = sorted(optrecord.itervalues(all_remarks), key=lambda 
r: (r.File, r.Line, r.Column, r.PassWithDiffPrefix, r.yaml_tag, r.Function))
     IndexRenderer(output_dir, should_display_hotness, 
max_hottest_remarks_on_index).render(sorted_remarks)
 
-    shutil.copy(os.path.join(os.path.dirname(os.path.realpath(__file__)),
-            "style.css"), output_dir)
+    shutil.copy("/usr/share/opt-viewer/style.css", output_dir)
 
     _render_file_bound = functools.partial(_render_file, source_dir, 
output_dir, context, no_highlight)
     if should_print_progress:
++++++ set-revision.patch ++++++
Index: cfe-5.0.0rc1.src/lib/Basic/Version.cpp
===================================================================
--- cfe-5.0.0rc1.src/lib/Basic/Version.cpp.orig
+++ cfe-5.0.0rc1.src/lib/Basic/Version.cpp
@@ -72,19 +72,11 @@ std::string getLLVMRepositoryPath() {
 }
 
 std::string getClangRevision() {
-#ifdef CLANG_REVISION
   return CLANG_REVISION;
-#else
-  return "";
-#endif
 }
 
 std::string getLLVMRevision() {
-#ifdef LLVM_REVISION
   return LLVM_REVISION;
-#else
-  return "";
-#endif
 }
 
 std::string getClangFullRepositoryVersion() {
++++++ tests-use-python3.patch ++++++
Index: llvm-8.0.0rc3.src/test/BugPoint/compile-custom.ll.py
===================================================================
--- llvm-8.0.0rc3.src.orig/test/BugPoint/compile-custom.ll.py
+++ llvm-8.0.0rc3.src/test/BugPoint/compile-custom.ll.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 from __future__ import print_function
 
Index: llvm-8.0.0rc3.src/test/Other/opt-bisect-helper.py
===================================================================
--- llvm-8.0.0rc3.src.orig/test/Other/opt-bisect-helper.py
+++ llvm-8.0.0rc3.src/test/Other/opt-bisect-helper.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 from __future__ import print_function
 
Index: llvm-8.0.0rc3.src/test/TableGen/JSON-check.py
===================================================================
--- llvm-8.0.0rc3.src.orig/test/TableGen/JSON-check.py
+++ llvm-8.0.0rc3.src/test/TableGen/JSON-check.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 import sys
 import subprocess
Index: llvm-8.0.0rc3.src/test/tools/llvm-readobj/Inputs/relocs.py
===================================================================
--- llvm-8.0.0rc3.src.orig/test/tools/llvm-readobj/Inputs/relocs.py
+++ llvm-8.0.0rc3.src/test/tools/llvm-readobj/Inputs/relocs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
 
 from __future__ import print_function
 

Reply via email to