Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package llvm12 for openSUSE:Factory checked in at 2021-07-13 22:36:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm12 (Old) and /work/SRC/openSUSE:Factory/.llvm12.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm12" Tue Jul 13 22:36:58 2021 rev:4 rq:905657 version:12.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm12/llvm12.changes 2021-07-08 22:49:08.488134515 +0200 +++ /work/SRC/openSUSE:Factory/.llvm12.new.2625/llvm12.changes 2021-07-13 22:37:05.750292515 +0200 @@ -1,0 +2,12 @@ +Sat Jul 10 21:30:44 UTC 2021 - Aaron Puchert <[email protected]> + +- Update to version 12.0.1. + * This release contains bug-fixes for the LLVM 12.0.0 release. + This release is API and ABI compatible with 12.0.0. +- Rebase llvm-do-not-install-static-libraries.patch. +- Drop obsolete patches: + * clangd-cmake-non-standard-layout.patch + * compiler-rt-Remove-cyclades-inclusion-in-sanitizer.patch + * lld-no-version-on-undefined-weak-lazy-symbols.patch + +------------------------------------------------------------------- Old: ---- clang-12.0.0.src.tar.xz clang-docs-12.0.0.src.tar.xz clang-tools-extra-12.0.0.src.tar.xz clangd-cmake-non-standard-layout.patch compiler-rt-12.0.0.src.tar.xz compiler-rt-Remove-cyclades-inclusion-in-sanitizer.patch libcxx-12.0.0.src.tar.xz libcxxabi-12.0.0.src.tar.xz lld-12.0.0.src.tar.xz lld-no-version-on-undefined-weak-lazy-symbols.patch lldb-12.0.0.src.tar.xz llvm-12.0.0.src.tar.xz llvm-docs-12.0.0.src.tar.xz openmp-12.0.0.src.tar.xz polly-12.0.0.src.tar.xz New: ---- clang-12.0.1.src.tar.xz clang-docs-12.0.1.src.tar.xz clang-tools-extra-12.0.1.src.tar.xz compiler-rt-12.0.1.src.tar.xz libcxx-12.0.1.src.tar.xz libcxxabi-12.0.1.src.tar.xz lld-12.0.1.src.tar.xz lldb-12.0.1.src.tar.xz llvm-12.0.1.src.tar.xz llvm-docs-12.0.1.src.tar.xz openmp-12.0.1.src.tar.xz polly-12.0.1.src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm12.spec ++++++ --- /var/tmp/diff_new_pack.9cum2D/_old 2021-07-13 22:37:07.974274604 +0200 +++ /var/tmp/diff_new_pack.9cum2D/_new 2021-07-13 22:37:07.978274572 +0200 @@ -16,13 +16,13 @@ # -%define _relver 12.0.0 +%define _relver 12.0.1 %define _version %_relver%{?_rc:rc%_rc} %define _tagver %_relver%{?_rc:-rc%_rc} %define _minor 12.0 %define _sonum 12 # Integer version used by update-alternatives -%define _uaver 1200 +%define _uaver 1201 %define _socxx 1 %ifarch x86_64 aarch64 %arm @@ -130,13 +130,8 @@ # PATCH-FIX-OPENSUSE llvm-exegesis-link-dylib.patch -- Don't waste space for llvm-exegesis. # It's crippled anyway because of missing deps and not relevant for users. Eventually we should drop it. Patch27: llvm-exegesis-link-dylib.patch -# Proposed fix https://reviews.llvm.org/D100624 for https://bugs.llvm.org/show_bug.cgi?id=49915. -Patch28: lld-no-version-on-undefined-weak-lazy-symbols.patch -Patch29: clangd-cmake-non-standard-layout.patch # Fix lookup of targets in installed CMake files. (boo#1180748, https://reviews.llvm.org/D96670) Patch33: CMake-Look-up-target-subcomponents-in-LLVM_AVAILABLE_LIBS.patch -# Fix build with linux-glibc-devel 5.13. (https://reviews.llvm.org/D102059) -Patch34: compiler-rt-Remove-cyclades-inclusion-in-sanitizer.patch BuildRequires: binutils-devel >= 2.21.90 BuildRequires: cmake BuildRequires: fdupes @@ -580,16 +575,10 @@ pushd clang-tools-extra-%{_version}.src %patch10 -p2 -%patch29 -p2 -popd - -pushd compiler-rt-%{_version}.src -%patch34 -p2 popd pushd lld-%{_version}.src %patch26 -p1 -%patch28 -p2 # lld got a compile-time dependency on libunwind that we don't want. (https://reviews.llvm.org/D86805) mkdir include/mach-o cp %{SOURCE10} include/mach-o ++++++ clang-12.0.0.src.tar.xz -> clang-12.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm12/clang-12.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm12.new.2625/clang-12.0.1.src.tar.xz differ: char 27, line 1 ++++++ clang-docs-12.0.0.src.tar.xz -> clang-docs-12.0.1.src.tar.xz ++++++ ++++ 16956 lines of diff (skipped) ++++++ clang-tools-extra-12.0.0.src.tar.xz -> clang-tools-extra-12.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/ConfigCompile.cpp new/clang-tools-extra-12.0.1.src/clangd/ConfigCompile.cpp --- old/clang-tools-extra-12.0.0.src/clangd/ConfigCompile.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/ConfigCompile.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -101,6 +101,7 @@ llvm::SourceMgr *SourceMgr; // Normalized Fragment::SourceInfo::Directory. std::string FragmentDirectory; + bool Trusted = false; llvm::Optional<llvm::Regex> compileRegex(const Located<std::string> &Text, @@ -183,6 +184,7 @@ } void compile(Fragment &&F) { + Trusted = F.Source.Trusted; if (!F.Source.Directory.empty()) { FragmentDirectory = llvm::sys::path::convert_to_slash(F.Source.Directory); if (FragmentDirectory.back() != '/') @@ -319,10 +321,18 @@ void compile(Fragment::IndexBlock::ExternalBlock &&External, llvm::SMRange BlockRange) { + if (External.Server && !Trusted) { + diag(Error, + "Remote index may not be specified by untrusted configuration. " + "Copy this into user config to use it.", + External.Server->Range); + return; + } #ifndef CLANGD_ENABLE_REMOTE if (External.Server) { - diag(Error, "Clangd isn't compiled with remote index support, ignoring " - "Server." External.Server->Range); + elog("Clangd isn't compiled with remote index support, ignoring Server: " + "{0}", + *External.Server); External.Server.reset(); } #endif @@ -488,8 +498,8 @@ trace::Span Tracer("ConfigCompile"); SPAN_ATTACH(Tracer, "ConfigFile", ConfigFile); auto Result = std::make_shared<CompiledFragmentImpl>(); - vlog("Config fragment: compiling {0}:{1} -> {2}", ConfigFile, LineCol.first, - Result.get()); + vlog("Config fragment: compiling {0}:{1} -> {2} (trusted={3})", ConfigFile, + LineCol.first, Result.get(), Source.Trusted); FragmentCompiler{*Result, D, Source.Manager.get()}.compile(std::move(*this)); // Return as cheaply-copyable wrapper. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/ConfigFragment.h new/clang-tools-extra-12.0.1.src/clangd/ConfigFragment.h --- old/clang-tools-extra-12.0.0.src/clangd/ConfigFragment.h 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/ConfigFragment.h 2021-06-28 18:23:38.000000000 +0200 @@ -94,6 +94,9 @@ /// Absolute path to directory the fragment is associated with. Relative /// paths mentioned in the fragment are resolved against this. std::string Directory; + /// Whether this fragment is allowed to make critical security/privacy + /// decisions. + bool Trusted = false; }; SourceInfo Source; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/ConfigProvider.cpp new/clang-tools-extra-12.0.1.src/clangd/ConfigProvider.cpp --- old/clang-tools-extra-12.0.0.src/clangd/ConfigProvider.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/ConfigProvider.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -34,7 +34,7 @@ : FileCache(Path), Directory(Directory) {} void get(const ThreadsafeFS &TFS, DiagnosticCallback DC, - std::chrono::steady_clock::time_point FreshTime, + std::chrono::steady_clock::time_point FreshTime, bool Trusted, std::vector<CompiledFragment> &Out) const { read( TFS, FreshTime, @@ -43,6 +43,7 @@ if (Data) for (auto &Fragment : Fragment::parseYAML(*Data, path(), DC)) { Fragment.Source.Directory = Directory; + Fragment.Source.Trusted = Trusted; CachedValue.push_back(std::move(Fragment).compile(DC)); } }, @@ -52,35 +53,38 @@ std::unique_ptr<Provider> Provider::fromYAMLFile(llvm::StringRef AbsPath, llvm::StringRef Directory, - const ThreadsafeFS &FS) { + const ThreadsafeFS &FS, + bool Trusted) { class AbsFileProvider : public Provider { mutable FileConfigCache Cache; // threadsafe const ThreadsafeFS &FS; + bool Trusted; std::vector<CompiledFragment> getFragments(const Params &P, DiagnosticCallback DC) const override { std::vector<CompiledFragment> Result; - Cache.get(FS, DC, P.FreshTime, Result); + Cache.get(FS, DC, P.FreshTime, Trusted, Result); return Result; }; public: AbsFileProvider(llvm::StringRef Path, llvm::StringRef Directory, - const ThreadsafeFS &FS) - : Cache(Path, Directory), FS(FS) { + const ThreadsafeFS &FS, bool Trusted) + : Cache(Path, Directory), FS(FS), Trusted(Trusted) { assert(llvm::sys::path::is_absolute(Path)); } }; - return std::make_unique<AbsFileProvider>(AbsPath, Directory, FS); + return std::make_unique<AbsFileProvider>(AbsPath, Directory, FS, Trusted); } std::unique_ptr<Provider> Provider::fromAncestorRelativeYAMLFiles(llvm::StringRef RelPath, - const ThreadsafeFS &FS) { + const ThreadsafeFS &FS, bool Trusted) { class RelFileProvider : public Provider { std::string RelPath; const ThreadsafeFS &FS; + bool Trusted; mutable std::mutex Mu; // Keys are the (posix-style) ancestor directory, not the config within it. @@ -128,18 +132,19 @@ // This will take a (per-file) lock for each file that actually exists. std::vector<CompiledFragment> Result; for (FileConfigCache *Cache : Caches) - Cache->get(FS, DC, P.FreshTime, Result); + Cache->get(FS, DC, P.FreshTime, Trusted, Result); return Result; }; public: - RelFileProvider(llvm::StringRef RelPath, const ThreadsafeFS &FS) - : RelPath(RelPath), FS(FS) { + RelFileProvider(llvm::StringRef RelPath, const ThreadsafeFS &FS, + bool Trusted) + : RelPath(RelPath), FS(FS), Trusted(Trusted) { assert(llvm::sys::path::is_relative(RelPath)); } }; - return std::make_unique<RelFileProvider>(RelPath, FS); + return std::make_unique<RelFileProvider>(RelPath, FS, Trusted); } std::unique_ptr<Provider> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/ConfigProvider.h new/clang-tools-extra-12.0.1.src/clangd/ConfigProvider.h --- old/clang-tools-extra-12.0.0.src/clangd/ConfigProvider.h 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/ConfigProvider.h 2021-06-28 18:23:38.000000000 +0200 @@ -69,7 +69,8 @@ /// Directory will be used to resolve relative paths in the fragments. static std::unique_ptr<Provider> fromYAMLFile(llvm::StringRef AbsPath, llvm::StringRef Directory, - const ThreadsafeFS &); + const ThreadsafeFS &, + bool Trusted = false); // Reads fragments from YAML files found relative to ancestors of Params.Path. // // All fragments that exist are returned, starting from distant ancestors. @@ -78,7 +79,8 @@ // // If Params does not specify a path, no fragments are returned. static std::unique_ptr<Provider> - fromAncestorRelativeYAMLFiles(llvm::StringRef RelPath, const ThreadsafeFS &); + fromAncestorRelativeYAMLFiles(llvm::StringRef RelPath, const ThreadsafeFS &, + bool Trusted = false); /// A provider that includes fragments from all the supplied providers. /// Order is preserved; later providers take precedence over earlier ones. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/quality/CompletionModel.cmake new/clang-tools-extra-12.0.1.src/clangd/quality/CompletionModel.cmake --- old/clang-tools-extra-12.0.0.src/clangd/quality/CompletionModel.cmake 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/quality/CompletionModel.cmake 2021-06-28 18:23:38.000000000 +0200 @@ -4,9 +4,10 @@ # ${CMAKE_CURRENT_BINARY_DIR}. The generated header # will define a C++ class called ${cpp_class} - which may be a # namespace-qualified class name. +set(CLANGD_COMPLETION_MODEL_COMPILER ${CMAKE_CURRENT_LIST_DIR}/CompletionModelCodegen.py) function(gen_decision_forest model filename cpp_class) - set(model_compiler ${CMAKE_SOURCE_DIR}/../clang-tools-extra/clangd/quality/CompletionModelCodegen.py) - + set(model_compiler ${CLANGD_COMPLETION_MODEL_COMPILER}) + set(output_dir ${CMAKE_CURRENT_BINARY_DIR}) set(header_file ${output_dir}/${filename}.h) set(cpp_file ${output_dir}/${filename}.cpp) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/tool/ClangdMain.cpp new/clang-tools-extra-12.0.1.src/clangd/tool/ClangdMain.cpp --- old/clang-tools-extra-12.0.0.src/clangd/tool/ClangdMain.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/tool/ClangdMain.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -831,8 +831,8 @@ if (llvm::sys::path::user_config_directory(UserConfig)) { llvm::sys::path::append(UserConfig, "clangd", "config.yaml"); vlog("User config file is {0}", UserConfig); - ProviderStack.push_back( - config::Provider::fromYAMLFile(UserConfig, /*Directory=*/"", TFS)); + ProviderStack.push_back(config::Provider::fromYAMLFile( + UserConfig, /*Directory=*/"", TFS, /*Trusted=*/true)); } else { elog("Couldn't determine user config file, not loading"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clang-tools-extra-12.0.0.src/clangd/unittests/ConfigCompileTests.cpp new/clang-tools-extra-12.0.1.src/clangd/unittests/ConfigCompileTests.cpp --- old/clang-tools-extra-12.0.0.src/clangd/unittests/ConfigCompileTests.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/clang-tools-extra-12.0.1.src/clangd/unittests/ConfigCompileTests.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -318,21 +318,35 @@ DiagKind(llvm::SourceMgr::DK_Warning)))); } +TEST_F(ConfigCompileTests, ExternalServerNeedsTrusted) { + Fragment::IndexBlock::ExternalBlock External; + External.Server.emplace("xxx"); + Frag.Index.External = std::move(External); + compileAndApply(); + EXPECT_THAT( + Diags.Diagnostics, + ElementsAre(DiagMessage( + "Remote index may not be specified by untrusted configuration. " + "Copy this into user config to use it."))); + EXPECT_FALSE(Conf.Index.External.hasValue()); +} + TEST_F(ConfigCompileTests, ExternalBlockWarnOnMultipleSource) { + Frag.Source.Trusted = true; Fragment::IndexBlock::ExternalBlock External; External.File.emplace(""); External.Server.emplace(""); Frag.Index.External = std::move(External); compileAndApply(); - llvm::StringLiteral ExpectedDiag = #ifdef CLANGD_ENABLE_REMOTE - "Exactly one of File or Server must be set."; + EXPECT_THAT( + Diags.Diagnostics, + Contains(AllOf(DiagMessage("Exactly one of File or Server must be set."), + DiagKind(llvm::SourceMgr::DK_Error)))); #else - "Clangd isn't compiled with remote index support, ignoring Server."; + ASSERT_TRUE(Conf.Index.External.hasValue()); + EXPECT_EQ(Conf.Index.External->Kind, Config::ExternalIndexSpec::File); #endif - EXPECT_THAT(Diags.Diagnostics, - Contains(AllOf(DiagMessage(ExpectedDiag), - DiagKind(llvm::SourceMgr::DK_Error)))); } TEST_F(ConfigCompileTests, ExternalBlockErrOnNoSource) { ++++++ compiler-rt-12.0.0.src.tar.xz -> compiler-rt-12.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc --- old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 2021-04-06 18:38:18.000000000 +0200 +++ new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc 2021-06-28 18:23:38.000000000 +0200 @@ -370,15 +370,6 @@ #if SANITIZER_GLIBC // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE - _(CYGETDEFTHRESH, WRITE, sizeof(int)); - _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); - _(CYGETMON, WRITE, struct_cyclades_monitor_sz); - _(CYGETTHRESH, WRITE, sizeof(int)); - _(CYGETTIMEOUT, WRITE, sizeof(int)); - _(CYSETDEFTHRESH, NONE, 0); - _(CYSETDEFTIMEOUT, NONE, 0); - _(CYSETTHRESH, NONE, 0); - _(CYSETTIMEOUT, NONE, 0); _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp --- old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -143,7 +143,6 @@ # include <sys/procfs.h> #endif #include <sys/user.h> -#include <linux/cyclades.h> #include <linux/if_eql.h> #include <linux/if_plip.h> #include <linux/lp.h> @@ -459,7 +458,6 @@ #if SANITIZER_GLIBC unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); - unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); #if EV_VERSION > (0x010000) unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); #else @@ -823,15 +821,6 @@ #endif // SANITIZER_LINUX #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; - unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; - unsigned IOCTL_CYGETMON = CYGETMON; - unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; - unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; - unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; - unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; - unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; - unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h --- old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h 2021-04-06 18:38:18.000000000 +0200 +++ new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h 2021-06-28 18:23:38.000000000 +0200 @@ -983,7 +983,6 @@ #if SANITIZER_LINUX && !SANITIZER_ANDROID extern unsigned struct_ax25_parms_struct_sz; -extern unsigned struct_cyclades_monitor_sz; extern unsigned struct_input_keymap_entry_sz; extern unsigned struct_ipx_config_data_sz; extern unsigned struct_kbdiacrs_sz; @@ -1328,15 +1327,6 @@ #endif // SANITIZER_LINUX #if SANITIZER_LINUX && !SANITIZER_ANDROID -extern unsigned IOCTL_CYGETDEFTHRESH; -extern unsigned IOCTL_CYGETDEFTIMEOUT; -extern unsigned IOCTL_CYGETMON; -extern unsigned IOCTL_CYGETTHRESH; -extern unsigned IOCTL_CYGETTIMEOUT; -extern unsigned IOCTL_CYSETDEFTHRESH; -extern unsigned IOCTL_CYSETDEFTIMEOUT; -extern unsigned IOCTL_CYSETTHRESH; -extern unsigned IOCTL_CYSETTIMEOUT; extern unsigned IOCTL_EQL_EMANCIPATE; extern unsigned IOCTL_EQL_ENSLAVE; extern unsigned IOCTL_EQL_GETMASTRCFG; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_posix_libcdep.cpp new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_posix_libcdep.cpp --- old/compiler-rt-12.0.0.src/lib/sanitizer_common/sanitizer_posix_libcdep.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/compiler-rt-12.0.1.src/lib/sanitizer_common/sanitizer_posix_libcdep.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -165,7 +165,12 @@ #if !SANITIZER_GO // TODO(glider): different tools may require different altstack size. -static const uptr kAltStackSize = SIGSTKSZ * 4; // SIGSTKSZ is not enough. +static uptr GetAltStackSize() { + // Note: since GLIBC_2.31, SIGSTKSZ may be a function call, so this may be + // more costly that you think. However GetAltStackSize is only call 2-3 times + // per thread so don't cache the evaluation. + return SIGSTKSZ * 4; +} void SetAlternateSignalStack() { stack_t altstack, oldstack; @@ -176,10 +181,10 @@ // TODO(glider): the mapped stack should have the MAP_STACK flag in the // future. It is not required by man 2 sigaltstack now (they're using // malloc()). - void* base = MmapOrDie(kAltStackSize, __func__); + void *base = MmapOrDie(GetAltStackSize(), __func__); altstack.ss_sp = (char*) base; altstack.ss_flags = 0; - altstack.ss_size = kAltStackSize; + altstack.ss_size = GetAltStackSize(); CHECK_EQ(0, sigaltstack(&altstack, nullptr)); } @@ -187,7 +192,7 @@ stack_t altstack, oldstack; altstack.ss_sp = nullptr; altstack.ss_flags = SS_DISABLE; - altstack.ss_size = kAltStackSize; // Some sane value required on Darwin. + altstack.ss_size = GetAltStackSize(); // Some sane value required on Darwin. CHECK_EQ(0, sigaltstack(&altstack, &oldstack)); UnmapOrDie(oldstack.ss_sp, oldstack.ss_size); } ++++++ libcxx-12.0.0.src.tar.xz -> libcxx-12.0.1.src.tar.xz ++++++ ++++ 2185 lines of diff (skipped) ++++++ libcxxabi-12.0.0.src.tar.xz -> libcxxabi-12.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxxabi-12.0.0.src/CMakeLists.txt new/libcxxabi-12.0.1.src/CMakeLists.txt --- old/libcxxabi-12.0.0.src/CMakeLists.txt 2021-04-06 18:38:18.000000000 +0200 +++ new/libcxxabi-12.0.1.src/CMakeLists.txt 2021-06-28 18:23:38.000000000 +0200 @@ -28,7 +28,7 @@ project(libcxxabi CXX C) set(PACKAGE_NAME libcxxabi) - set(PACKAGE_VERSION 11.0.0) + set(PACKAGE_VERSION 12.0.1) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "[email protected]") ++++++ lld-12.0.0.src.tar.xz -> lld-12.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-12.0.0.src/ELF/SyntheticSections.cpp new/lld-12.0.1.src/ELF/SyntheticSections.cpp --- old/lld-12.0.0.src/ELF/SyntheticSections.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/lld-12.0.1.src/ELF/SyntheticSections.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -3110,7 +3110,9 @@ void VersionTableSection::writeTo(uint8_t *buf) { buf += 2; for (const SymbolTableEntry &s : getPartition().dynSymTab->getSymbols()) { - write16(buf, s.sym->versionId); + // Use the original versionId for an unfetched lazy symbol (undefined weak), + // which must be VER_NDX_GLOBAL (an undefined versioned symbol is an error). + write16(buf, s.sym->isLazy() ? VER_NDX_GLOBAL : s.sym->versionId); buf += 2; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-12.0.0.src/test/ELF/version-script-weak.s new/lld-12.0.1.src/test/ELF/version-script-weak.s --- old/lld-12.0.0.src/test/ELF/version-script-weak.s 2021-04-06 18:38:18.000000000 +0200 +++ new/lld-12.0.1.src/test/ELF/version-script-weak.s 2021-06-28 18:23:38.000000000 +0200 @@ -24,6 +24,19 @@ # CHECK-NEXT: Section: Undefined # CHECK-NEXT: } +## The version of an unfetched lazy symbol is VER_NDX_GLOBAL. It is not affected by version scripts. +# RUN: echo "v1 { *; };" > %t2.script +# RUN: ld.lld -shared --version-script %t2.script %t.o --start-lib %t1.o --end-lib -o %t2.so +# RUN: llvm-readelf --dyn-syms %t2.so | FileCheck %s --check-prefix=CHECK2 + +# CHECK2: NOTYPE WEAK DEFAULT UND foo{{$}} + +# RUN: ld.lld -shared --soname=tshared --version-script %t2.script %t1.o -o %tshared.so +# RUN: ld.lld -shared --version-script %t2.script %t.o --start-lib %t1.o --end-lib %tshared.so -o %t3.so +# RUN: llvm-readelf --dyn-syms %t3.so | FileCheck %s --check-prefix=CHECK3 + +# CHECK3: NOTYPE WEAK DEFAULT UND foo@v1 + .text callq foo@PLT .weak foo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-12.0.0.src/test/lit.cfg.py new/lld-12.0.1.src/test/lit.cfg.py --- old/lld-12.0.0.src/test/lit.cfg.py 2021-04-06 18:38:18.000000000 +0200 +++ new/lld-12.0.1.src/test/lit.cfg.py 2021-06-28 18:23:38.000000000 +0200 @@ -101,11 +101,13 @@ tar_executable = lit.util.which('tar', config.environment['PATH']) if tar_executable: + env = os.environ + env['LANG'] = 'C' tar_version = subprocess.Popen( [tar_executable, '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, - env={'LANG': 'C'}) + env=env) sout, _ = tar_version.communicate() if 'GNU tar' in sout.decode(): config.available_features.add('gnutar') ++++++ lldb-12.0.0.src.tar.xz -> lldb-12.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm12/lldb-12.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm12.new.2625/lldb-12.0.1.src.tar.xz differ: char 26, line 1 ++++++ llvm-12.0.0.src.tar.xz -> llvm-12.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm12/llvm-12.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm12.new.2625/llvm-12.0.1.src.tar.xz differ: char 26, line 1 ++++++ llvm-do-not-install-static-libraries.patch ++++++ --- /var/tmp/diff_new_pack.9cum2D/_old 2021-07-13 22:37:12.146241006 +0200 +++ /var/tmp/diff_new_pack.9cum2D/_new 2021-07-13 22:37:12.150240974 +0200 @@ -2,10 +2,10 @@ want after installation. By not copying them in the first place we reduce the disk usage during installation. -Index: clang-12.0.0.src/cmake/modules/AddClang.cmake +Index: clang-12.0.1.src/cmake/modules/AddClang.cmake =================================================================== ---- a/clang-12.0.0.src/cmake/modules/AddClang.cmake -+++ b/clang-12.0.0.src/cmake/modules/AddClang.cmake +--- a/clang-12.0.1.src/cmake/modules/AddClang.cmake ++++ b/clang-12.0.1.src/cmake/modules/AddClang.cmake @@ -106,12 +106,15 @@ macro(add_clang_library name) set_property(GLOBAL PROPERTY CLANG_HAS_EXPORTS True) endif() @@ -68,10 +68,10 @@ endif() if (ARG_MODULE) set_target_properties(${name} PROPERTIES FOLDER "Loadable modules") -Index: lld-12.0.0.src/cmake/modules/AddLLD.cmake +Index: lld-12.0.1.src/cmake/modules/AddLLD.cmake =================================================================== ---- a/lld-12.0.0.src/cmake/modules/AddLLD.cmake -+++ b/lld-12.0.0.src/cmake/modules/AddLLD.cmake +--- a/lld-12.0.1.src/cmake/modules/AddLLD.cmake ++++ b/lld-12.0.1.src/cmake/modules/AddLLD.cmake @@ -17,13 +17,6 @@ macro(add_lld_library name) set_property(GLOBAL PROPERTY LLD_HAS_EXPORTS True) endif() @@ -86,10 +86,10 @@ if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) add_llvm_install_targets(install-${name} DEPENDS ${name} -Index: polly-12.0.0.src/cmake/polly_macros.cmake +Index: polly-12.0.1.src/cmake/polly_macros.cmake =================================================================== ---- a/polly-12.0.0.src/cmake/polly_macros.cmake -+++ b/polly-12.0.0.src/cmake/polly_macros.cmake +--- a/polly-12.0.1.src/cmake/polly_macros.cmake ++++ b/polly-12.0.1.src/cmake/polly_macros.cmake @@ -42,12 +42,14 @@ macro(add_polly_library name) llvm_config(${name} ${LLVM_LINK_COMPONENTS}) endif( LLVM_LINK_COMPONENTS ) @@ -110,10 +110,10 @@ endmacro(add_polly_library) macro(add_polly_loadable_module name) -Index: polly-12.0.0.src/lib/CMakeLists.txt +Index: polly-12.0.1.src/lib/CMakeLists.txt =================================================================== ---- a/polly-12.0.0.src/lib/CMakeLists.txt -+++ b/polly-12.0.0.src/lib/CMakeLists.txt +--- a/polly-12.0.1.src/lib/CMakeLists.txt ++++ b/polly-12.0.1.src/lib/CMakeLists.txt @@ -74,7 +74,7 @@ set_target_properties(PollyCore PROPERTI # It depends on all library it needs, such that with # LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as ++++++ llvm-docs-12.0.0.src.tar.xz -> llvm-docs-12.0.1.src.tar.xz ++++++ ++++ 34201 lines of diff (skipped) ++++++ openmp-12.0.0.src.tar.xz -> openmp-12.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openmp-12.0.0.src/libomptarget/src/interface.cpp new/openmp-12.0.1.src/libomptarget/src/interface.cpp --- old/openmp-12.0.0.src/libomptarget/src/interface.cpp 2021-04-06 18:38:18.000000000 +0200 +++ new/openmp-12.0.1.src/libomptarget/src/interface.cpp 2021-06-28 18:23:38.000000000 +0200 @@ -61,7 +61,7 @@ for (auto &Device : PM->Devices) dumpTargetPointerMappings(loc, Device); else - FAILURE_MESSAGE("Run with LIBOMPTARGET_DEBUG=%d to dump host-target " + FAILURE_MESSAGE("Run with LIBOMPTARGET_INFO=%d to dump host-target " "pointer mappings.\n", OMP_INFOTYPE_DUMP_TABLE); ++++++ polly-12.0.0.src.tar.xz -> polly-12.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm12/polly-12.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm12.new.2625/polly-12.0.1.src.tar.xz differ: char 27, line 1
