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
