Hello community, here is the log from the commit of package llvm6 for openSUSE:Factory checked in at 2018-07-27 10:54:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/llvm6 (Old) and /work/SRC/openSUSE:Factory/.llvm6.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm6" Fri Jul 27 10:54:23 2018 rev:9 rq:625304 version:6.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/llvm6/llvm6.changes 2018-07-07 21:56:57.755426941 +0200 +++ /work/SRC/openSUSE:Factory/.llvm6.new/llvm6.changes 2018-07-27 10:55:07.785518825 +0200 @@ -1,0 +2,10 @@ +Wed Jul 25 07:29:54 UTC 2018 - m...@suse.com + +- Update to llvm 6.0.1 + * This release contains bug-fixes for the LLVM 6.0.0 release. It + is API and ABI compatible with 6.0.0. +- Remove no longer needed llvm6-fix-InstCombine.patch +- Add lldb-fix-build-with-python-3.7.patch + * Fix build with python 3.7 + +------------------------------------------------------------------- Old: ---- cfe-6.0.0.src.tar.xz cfe-docs-6.0.0.src.tar.xz clang-tools-extra-6.0.0.src.tar.xz compiler-rt-6.0.0.src.tar.xz libcxx-6.0.0.src.tar.xz libcxxabi-6.0.0.src.tar.xz lld-6.0.0.src.tar.xz lldb-6.0.0.src.tar.xz llvm-6.0.0.src.tar.xz llvm-docs-6.0.0.src.tar.xz llvm6-fix-InstCombine.patch openmp-6.0.0.src.tar.xz polly-6.0.0.src.tar.xz New: ---- cfe-6.0.1.src.tar.xz cfe-docs-6.0.1.src.tar.xz clang-tools-extra-6.0.1.src.tar.xz compiler-rt-6.0.1.src.tar.xz libcxx-6.0.1.src.tar.xz libcxxabi-6.0.1.src.tar.xz lld-6.0.1.src.tar.xz lldb-6.0.1.src.tar.xz lldb-fix-build-with-python-3.7.patch llvm-6.0.1.src.tar.xz llvm-docs-6.0.1.src.tar.xz openmp-6.0.1.src.tar.xz polly-6.0.1.src.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm6.spec ++++++ --- /var/tmp/diff_new_pack.6AKN45/_old 2018-07-27 10:55:10.877524744 +0200 +++ /var/tmp/diff_new_pack.6AKN45/_new 2018-07-27 10:55:10.881524751 +0200 @@ -16,13 +16,13 @@ # -%define _relver 6.0.0 +%define _relver 6.0.1 %define _minor 6.0 %define _sonum 6 # Integer version used by update-alternatives -%define _uaver 600 +%define _uaver 601 %define _socxx 1 -%define _revsn 326550 +%define _revsn 335528 %ifarch x86_64 %bcond_without libcxx %else @@ -55,7 +55,7 @@ %bcond_without pyclang Name: llvm6 -Version: 6.0.0 +Version: 6.0.1 Release: 0 Summary: Low Level Virtual Machine License: NCSA @@ -98,9 +98,9 @@ Patch16: n_clang_allow_BUILD_SHARED_LIBRARY.patch Patch17: polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch Patch18: llvm-build-tests-with-rtti.patch -Patch19: llvm6-fix-InstCombine.patch Patch20: llvm_build_tablegen_component_as_shared_library.patch Patch21: llvm6-fix-gdb-index-crash.patch +Patch22: lldb-fix-build-with-python-3.7.patch BuildRequires: binutils-devel >= 2.21.90 BuildRequires: binutils-gold BuildRequires: cmake @@ -514,7 +514,6 @@ %patch14 -p1 %patch15 -p1 %patch18 -p1 -%patch19 -p2 %patch20 -p1 %patch21 -p1 @@ -532,6 +531,7 @@ pushd lldb-%{version}.src %patch11 -p1 %patch12 -p1 +%patch22 -p1 # Set LLDB revision sed -i s,LLDB_REVISION,\"%{_llvm_revision}\",g source/lldb.cpp #" popd @@ -739,14 +739,14 @@ # Docs are prebuilt due to sphinx dependency # -# pushd llvm-6.0.0.src/docs +# pushd llvm-6.0.1.src/docs # make -f Makefile.sphinx man html # popd -# pushd cfe-6.0.0.src/docs +# pushd cfe-6.0.1.src/docs # make -f Makefile.sphinx man html # popd -# tar cvJf llvm-docs-6.0.0.src.tar.xz llvm-6.0.0.src/docs/_build/{man,html} -# tar cvJf cfe-docs-6.0.0.src.tar.xz cfe-6.0.0.src/docs/_build/{man,html} +# tar cvJf llvm-docs-6.0.1.src.tar.xz llvm-6.0.1.src/docs/_build/{man,html} +# tar cvJf cfe-docs-6.0.1.src.tar.xz cfe-6.0.1.src/docs/_build/{man,html} # Build man/html pages pushd docs ++++++ cfe-6.0.0.src.tar.xz -> cfe-6.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm6/cfe-6.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm6.new/cfe-6.0.1.src.tar.xz differ: char 25, line 1 ++++++ cfe-docs-6.0.0.src.tar.xz -> cfe-docs-6.0.1.src.tar.xz ++++++ ++++ 156019 lines of diff (skipped) ++++++ clang-tools-extra-6.0.0.src.tar.xz -> clang-tools-extra-6.0.1.src.tar.xz ++++++ ++++++ compiler-rt-6.0.0.src.tar.xz -> compiler-rt-6.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compiler-rt-6.0.0.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cc new/compiler-rt-6.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cc --- old/compiler-rt-6.0.0.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2017-11-21 10:36:07.000000000 +0100 +++ new/compiler-rt-6.0.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cc 2018-06-15 00:33:33.000000000 +0200 @@ -159,7 +159,6 @@ # include <sys/procfs.h> #endif #include <sys/user.h> -#include <sys/ustat.h> #include <linux/cyclades.h> #include <linux/if_eql.h> #include <linux/if_plip.h> @@ -253,7 +252,19 @@ #endif // SANITIZER_LINUX || SANITIZER_FREEBSD #if SANITIZER_LINUX && !SANITIZER_ANDROID - unsigned struct_ustat_sz = sizeof(struct ustat); + // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which + // has been removed from glibc 2.28. +#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \ + || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \ + || defined(__x86_64__) +#define SIZEOF_STRUCT_USTAT 32 +#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \ + || defined(__powerpc__) || defined(__s390__) +#define SIZEOF_STRUCT_USTAT 20 +#else +#error Unknown size of struct ustat +#endif + unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; unsigned struct_rlimit64_sz = sizeof(struct rlimit64); unsigned struct_statvfs64_sz = sizeof(struct statvfs64); #endif // SANITIZER_LINUX && !SANITIZER_ANDROID ++++++ libcxx-6.0.0.src.tar.xz -> libcxx-6.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-6.0.0.src/include/list new/libcxx-6.0.1.src/include/list --- old/libcxx-6.0.0.src/include/list 2017-11-15 06:51:26.000000000 +0100 +++ new/libcxx-6.0.1.src/include/list 2018-06-13 18:57:18.000000000 +0200 @@ -2058,15 +2058,15 @@ #endif if (__f != __l) { + __link_pointer __first = __f.__ptr_; + --__l; + __link_pointer __last = __l.__ptr_; if (this != &__c) { - size_type __s = _VSTD::distance(__f, __l); + size_type __s = _VSTD::distance(__f, __l) + 1; __c.__sz() -= __s; base::__sz() += __s; } - __link_pointer __first = __f.__ptr_; - --__l; - __link_pointer __last = __l.__ptr_; base::__unlink_nodes(__first, __last); __link_nodes(__p.__ptr_, __first, __last); #if _LIBCPP_DEBUG_LEVEL >= 2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-6.0.0.src/src/support/runtime/exception_libcxxabi.ipp new/libcxx-6.0.1.src/src/support/runtime/exception_libcxxabi.ipp --- old/libcxx-6.0.0.src/src/support/runtime/exception_libcxxabi.ipp 2017-02-10 09:57:35.000000000 +0100 +++ new/libcxx-6.0.1.src/src/support/runtime/exception_libcxxabi.ipp 2018-06-04 17:49:27.000000000 +0200 @@ -18,7 +18,7 @@ int uncaught_exceptions() _NOEXCEPT { -# if _LIBCPPABI_VERSION > 1101 +# if _LIBCPPABI_VERSION > 1001 return __cxa_uncaught_exceptions(); # else return __cxa_uncaught_exception() ? 1 : 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-6.0.0.src/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp new/libcxx-6.0.1.src/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp --- old/libcxx-6.0.0.src/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp 2017-05-04 19:08:54.000000000 +0200 +++ new/libcxx-6.0.1.src/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp 2018-06-13 18:57:18.000000000 +0200 @@ -42,6 +42,7 @@ Base::run(); try { FrontOnEmptyContainer(); + if constexpr (CT != CT_ForwardList) { AssignInvalidates(); BackOnEmptyContainer(); @@ -50,6 +51,8 @@ InsertIterIterIter(); EmplaceIterValue(); EraseIterIter(); + } else { + SpliceFirstElemAfter(); } if constexpr (CT == CT_Vector || CT == CT_Deque || CT == CT_List) { PopBack(); @@ -57,12 +60,66 @@ if constexpr (CT == CT_List || CT == CT_Deque) { PopFront(); // FIXME: Run with forward list as well } + if constexpr (CT == CT_List || CT == CT_ForwardList) { + RemoveFirstElem(); + } + if constexpr (CT == CT_List) { + SpliceFirstElem(); + } } catch (...) { assert(false && "uncaught debug exception"); } } private: + static void RemoveFirstElem() { + // See llvm.org/PR35564 + CHECKPOINT("remove(<first-elem>)"); + { + Container C = makeContainer(1); + auto FirstVal = *(C.begin()); + C.remove(FirstVal); + assert(C.empty()); + } + { + Container C = {1, 1, 1, 1}; + auto FirstVal = *(C.begin()); + C.remove(FirstVal); + assert(C.empty()); + } + } + + static void SpliceFirstElem() { + // See llvm.org/PR35564 + CHECKPOINT("splice(<first-elem>)"); + { + Container C = makeContainer(1); + Container C2; + C2.splice(C2.end(), C, C.begin(), ++C.begin()); + } + { + Container C = makeContainer(1); + Container C2; + C2.splice(C2.end(), C, C.begin()); + } + } + + + static void SpliceFirstElemAfter() { + // See llvm.org/PR35564 + CHECKPOINT("splice(<first-elem>)"); + { + Container C = makeContainer(1); + Container C2; + C2.splice_after(C2.begin(), C, C.begin(), ++C.begin()); + } + { + Container C = makeContainer(1); + Container C2; + C2.splice_after(C2.begin(), C, C.begin()); + } + } + static void AssignInvalidates() { CHECKPOINT("assign(Size, Value)"); Container C(allocator_type{}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcxx-6.0.0.src/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp new/libcxx-6.0.1.src/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp --- old/libcxx-6.0.0.src/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp 2017-05-04 19:08:54.000000000 +0200 +++ new/libcxx-6.0.1.src/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp 2018-06-04 17:49:27.000000000 +0200 @@ -15,40 +15,48 @@ // XFAIL: availability=macosx10.9 // XFAIL: availability=macosx10.10 // XFAIL: availability=macosx10.11 +// XFAIL: with_system_cxx_lib=macosx10.12 +// XFAIL: with_system_cxx_lib=macosx10.13 // test uncaught_exceptions #include <exception> #include <cassert> -struct A -{ - ~A() - { - assert(std::uncaught_exceptions() > 0); - } -}; +struct Uncaught { + Uncaught(int depth) : d_(depth) {} + ~Uncaught() { assert(std::uncaught_exceptions() == d_); } + int d_; + }; -struct B -{ - B() - { - // http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#475 - assert(std::uncaught_exceptions() == 0); +struct Outer { + Outer(int depth) : d_(depth) {} + ~Outer() { + try { + assert(std::uncaught_exceptions() == d_); + Uncaught u(d_+1); + throw 2; } + catch (int) {} + } + int d_; }; -int main() -{ - try +int main () { + assert(std::uncaught_exceptions() == 0); { - A a; - assert(std::uncaught_exceptions() == 0); - throw B(); + Outer o(0); } - catch (...) + + assert(std::uncaught_exceptions() == 0); { - assert(std::uncaught_exception() == 0); + try { + Outer o(1); + throw 1; + } + catch (int) { + assert(std::uncaught_exceptions() == 0); + } } assert(std::uncaught_exceptions() == 0); } ++++++ libcxxabi-6.0.0.src.tar.xz -> libcxxabi-6.0.1.src.tar.xz ++++++ ++++++ lld-6.0.0.src.tar.xz -> lld-6.0.1.src.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/COFF/Config.h new/lld-6.0.1.src/COFF/Config.h --- old/lld-6.0.0.src/COFF/Config.h 2017-12-28 08:02:13.000000000 +0100 +++ new/lld-6.0.1.src/COFF/Config.h 2018-05-11 08:52:19.000000000 +0200 @@ -175,6 +175,7 @@ bool AppContainer = false; bool MinGW = false; bool WarnLocallyDefinedImported = true; + bool KillAt = false; }; extern Configuration *Config; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/COFF/Driver.cpp new/lld-6.0.1.src/COFF/Driver.cpp --- old/lld-6.0.0.src/COFF/Driver.cpp 2018-01-16 16:40:23.000000000 +0100 +++ new/lld-6.0.1.src/COFF/Driver.cpp 2018-05-11 08:52:19.000000000 +0200 @@ -970,6 +970,10 @@ if (Args.hasArg(OPT_lldsavetemps)) Config->SaveTemps = true; + // Handle /kill-at + if (Args.hasArg(OPT_kill_at)) + Config->KillAt = true; + // Handle /lldltocache if (auto *Arg = Args.getLastArg(OPT_lldltocache)) Config->LTOCache = Arg->getValue(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/COFF/DriverUtils.cpp new/lld-6.0.1.src/COFF/DriverUtils.cpp --- old/lld-6.0.0.src/COFF/DriverUtils.cpp 2017-12-27 07:08:10.000000000 +0100 +++ new/lld-6.0.1.src/COFF/DriverUtils.cpp 2018-05-11 08:52:19.000000000 +0200 @@ -561,6 +561,26 @@ return Sym.startswith("_") ? Sym.substr(1) : Sym; } +// Convert stdcall/fastcall style symbols into unsuffixed symbols, +// with or without a leading underscore. (MinGW specific.) +static StringRef killAt(StringRef Sym, bool Prefix) { + if (Sym.empty()) + return Sym; + // Strip any trailing stdcall suffix + Sym = Sym.substr(0, Sym.find('@', 1)); + if (!Sym.startswith("@")) { + if (Prefix && !Sym.startswith("_")) + return Saver.save("_" + Sym); + return Sym; + } + // For fastcall, remove the leading @ and replace it with an + // underscore, if prefixes are used. + Sym = Sym.substr(1); + if (Prefix) + Sym = Saver.save("_" + Sym); + return Sym; +} + // Performs error checking on all /export arguments. // It also sets ordinals. void fixupExports() { @@ -593,6 +613,15 @@ } } + if (Config->KillAt && Config->Machine == I386) { + for (Export &E : Config->Exports) { + E.Name = killAt(E.Name, true); + E.ExportName = killAt(E.ExportName, false); + E.ExtName = killAt(E.ExtName, true); + E.SymbolName = killAt(E.SymbolName, true); + } + } + // Uniquefy by name. DenseMap<StringRef, Export *> Map(Config->Exports.size()); std::vector<Export> V; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/COFF/Options.td new/lld-6.0.1.src/COFF/Options.td --- old/lld-6.0.0.src/COFF/Options.td 2017-12-28 08:02:13.000000000 +0100 +++ new/lld-6.0.1.src/COFF/Options.td 2018-05-11 08:52:19.000000000 +0200 @@ -121,6 +121,7 @@ def debug_ghash : F<"debug:ghash">; def debug_dwarf : F<"debug:dwarf">; def export_all_symbols : F<"export-all-symbols">; +def kill_at : F<"kill-at">; def lldmingw : F<"lldmingw">; def msvclto : F<"msvclto">; def output_def : Joined<["/", "-"], "output-def:">; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/ELF/Arch/Mips.cpp new/lld-6.0.1.src/ELF/Arch/Mips.cpp --- old/lld-6.0.0.src/ELF/Arch/Mips.cpp 2017-11-22 13:34:29.000000000 +0100 +++ new/lld-6.0.1.src/ELF/Arch/Mips.cpp 2018-04-11 15:03:33.000000000 +0200 @@ -296,7 +296,8 @@ write32<E>(Buf + 20, 0x0018c082); // srl $24, $24, 2 } - write32<E>(Buf + 24, 0x0320f809); // jalr $25 + uint32_t JalrInst = Config->ZHazardplt ? 0x0320fc09 : 0x0320f809; + write32<E>(Buf + 24, JalrInst); // jalr.hb $25 or jalr $25 write32<E>(Buf + 28, 0x2718fffe); // subu $24, $24, 2 uint64_t GotPlt = InX::GotPlt->getVA(); @@ -330,9 +331,12 @@ return; } + uint32_t JrInst = isMipsR6() ? (Config->ZHazardplt ? 0x03200409 : 0x03200009) + : (Config->ZHazardplt ? 0x03200408 : 0x03200008); + write32<E>(Buf, 0x3c0f0000); // lui $15, %hi(.got.plt entry) write32<E>(Buf + 4, 0x8df90000); // l[wd] $25, %lo(.got.plt entry)($15) - write32<E>(Buf + 8, isMipsR6() ? 0x03200009 : 0x03200008); // jr $25 + write32<E>(Buf + 8, JrInst); // jr $25 / jr.hb $25 write32<E>(Buf + 12, 0x25f80000); // addiu $24, $15, %lo(.got.plt entry) writeRelocation<E>(Buf, GotPltEntryAddr + 0x8000, 16, 16); writeRelocation<E>(Buf + 4, GotPltEntryAddr, 16, 0); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/ELF/Config.h new/lld-6.0.1.src/ELF/Config.h --- old/lld-6.0.0.src/ELF/Config.h 2018-02-02 11:50:39.000000000 +0100 +++ new/lld-6.0.1.src/ELF/Config.h 2018-04-11 15:03:33.000000000 +0200 @@ -151,6 +151,7 @@ bool WarnMissingEntry; bool ZCombreloc; bool ZExecstack; + bool ZHazardplt; bool ZNocopyreloc; bool ZNodelete; bool ZNodlopen; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/ELF/Driver.cpp new/lld-6.0.1.src/ELF/Driver.cpp --- old/lld-6.0.0.src/ELF/Driver.cpp 2018-02-22 10:26:44.000000000 +0100 +++ new/lld-6.0.1.src/ELF/Driver.cpp 2018-04-11 15:03:33.000000000 +0200 @@ -668,6 +668,7 @@ Config->WarnCommon = Args.hasArg(OPT_warn_common); Config->ZCombreloc = !hasZOption(Args, "nocombreloc"); Config->ZExecstack = hasZOption(Args, "execstack"); + Config->ZHazardplt = hasZOption(Args, "hazardplt"); Config->ZNocopyreloc = hasZOption(Args, "nocopyreloc"); Config->ZNodelete = hasZOption(Args, "nodelete"); Config->ZNodlopen = hasZOption(Args, "nodlopen"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/MinGW/Driver.cpp new/lld-6.0.1.src/MinGW/Driver.cpp --- old/lld-6.0.0.src/MinGW/Driver.cpp 2017-12-12 21:34:38.000000000 +0100 +++ new/lld-6.0.1.src/MinGW/Driver.cpp 2018-05-11 08:58:06.000000000 +0200 @@ -154,6 +154,8 @@ Add("-debug:dwarf"); if (Args.hasArg(OPT_large_address_aware)) Add("-largeaddressaware"); + if (Args.hasArg(OPT_kill_at)) + Add("-kill-at"); if (Args.getLastArgValue(OPT_m) != "thumb2pe" && Args.getLastArgValue(OPT_m) != "arm64pe" && !Args.hasArg(OPT_dynamicbase)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/MinGW/Options.td new/lld-6.0.1.src/MinGW/Options.td --- old/lld-6.0.0.src/MinGW/Options.td 2017-12-15 21:53:10.000000000 +0100 +++ new/lld-6.0.1.src/MinGW/Options.td 2018-05-11 08:58:06.000000000 +0200 @@ -14,6 +14,7 @@ def gc_sections: F<"gc-sections">, HelpText<"Remove unused sections">; def icf: J<"icf=">, HelpText<"Identical code folding">; def image_base: S<"image-base">, HelpText<"Base address of the program">; +def kill_at: F<"kill-at">, HelpText<"Remove @n from exported symbols">; def l: JoinedOrSeparate<["-"], "l">, MetaVarName<"<libName>">, HelpText<"Root name of library to use">; def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">; @@ -51,6 +52,7 @@ def disable_auto_image_base: F<"disable-auto-image-base">; def enable_auto_image_base: F<"enable-auto-image-base">; def enable_auto_import: F<"enable-auto-import">; +def end_group: J<"end-group">; def full_shutdown: Flag<["--"], "full-shutdown">; def high_entropy_va: F<"high-entropy-va">, HelpText<"Enable 64-bit ASLR">; def major_image_version: S<"major-image-version">; @@ -59,6 +61,7 @@ def nxcompat: F<"nxcompat">, HelpText<"Enable data execution prevention">; def pic_executable: F<"pic-executable">; def sysroot: J<"sysroot">, HelpText<"Sysroot">; +def start_group: J<"start-group">; def tsaware: F<"tsaware">, HelpText<"Create Terminal Server aware executable">; def v: Flag<["-"], "v">, HelpText<"Display the version number">; def version: F<"version">, HelpText<"Display the version number and exit">; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/test/COFF/def-export-stdcall.s new/lld-6.0.1.src/test/COFF/def-export-stdcall.s --- old/lld-6.0.0.src/test/COFF/def-export-stdcall.s 2017-10-23 11:08:24.000000000 +0200 +++ new/lld-6.0.1.src/test/COFF/def-export-stdcall.s 2018-05-11 08:52:19.000000000 +0200 @@ -46,7 +46,8 @@ # DECORATED-EXPORTS: Name: vectorcall@@8 -# RUN: echo -e "LIBRARY foo\nEXPORTS\n stdcall@8\n @fastcall@8" > %t.def +# GNU tools don't support vectorcall at the moment, but test it for completeness. +# RUN: echo -e "LIBRARY foo\nEXPORTS\n stdcall@8\n @fastcall@8\n vectorcall@@8" > %t.def # RUN: lld-link -lldmingw -entry:dllmain -dll -def:%t.def %t.obj -out:%t.dll -implib:%t.lib # RUN: llvm-readobj %t.lib | FileCheck -check-prefix DECORATED-MINGW-IMPLIB %s # RUN: llvm-readobj -coff-exports %t.dll | FileCheck -check-prefix DECORATED-MINGW-EXPORTS %s @@ -57,9 +58,39 @@ # DECORATED-MINGW-IMPLIB: Name type: noprefix # DECORATED-MINGW-IMPLIB-NEXT: __imp__stdcall@8 # DECORATED-MINGW-IMPLIB-NEXT: _stdcall@8 +# GNU tools don't support vectorcall, but this test is just to track that +# lld's behaviour remains consistent over time. +# DECORATED-MINGW-IMPLIB: Name type: name +# DECORATED-MINGW-IMPLIB-NEXT: __imp_vectorcall@@8 +# DECORATED-MINGW-IMPLIB-NEXT: vectorcall@@8 # DECORATED-MINGW-EXPORTS: Name: @fastcall@8 # DECORATED-MINGW-EXPORTS: Name: stdcall@8 +# DECORATED-MINGW-EXPORTS: Name: vectorcall@@8 + +# RUN: lld-link -lldmingw -kill-at -entry:dllmain -dll -def:%t.def %t.obj -out:%t.dll -implib:%t.lib +# RUN: llvm-readobj %t.lib | FileCheck -check-prefix MINGW-KILL-AT-IMPLIB %s +# RUN: llvm-readobj -coff-exports %t.dll | FileCheck -check-prefix MINGW-KILL-AT-EXPORTS %s + +# RUN: lld-link -lldmingw -kill-at -entry:dllmain -dll %t.obj -out:%t.dll -implib:%t.lib +# RUN: llvm-readobj %t.lib | FileCheck -check-prefix MINGW-KILL-AT-IMPLIB %s +# RUN: llvm-readobj -coff-exports %t.dll | FileCheck -check-prefix MINGW-KILL-AT-EXPORTS %s + +# MINGW-KILL-AT-IMPLIB: Name type: noprefix +# MINGW-KILL-AT-IMPLIB: __imp__fastcall +# MINGW-KILL-AT-IMPLIB-NEXT: _fastcall +# MINGW-KILL-AT-IMPLIB: Name type: noprefix +# MINGW-KILL-AT-IMPLIB-NEXT: __imp__stdcall +# MINGW-KILL-AT-IMPLIB-NEXT: _stdcall +# GNU tools don't support vectorcall, but this test is just to track that +# lld's behaviour remains consistent over time. +# MINGW-KILL-AT-IMPLIB: Name type: noprefix +# MINGW-KILL-AT-IMPLIB-NEXT: __imp__vectorcall +# MINGW-KILL-AT-IMPLIB-NEXT: _vectorcall + +# MINGW-KILL-AT-EXPORTS: Name: fastcall +# MINGW-KILL-AT-EXPORTS: Name: stdcall +# MINGW-KILL-AT-EXPORTS: Name: vectorcall .def _stdcall@8; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/test/ELF/mips-26-n32-n64.s new/lld-6.0.1.src/test/ELF/mips-26-n32-n64.s --- old/lld-6.0.0.src/test/ELF/mips-26-n32-n64.s 2017-11-22 13:34:29.000000000 +0100 +++ new/lld-6.0.1.src/test/ELF/mips-26-n32-n64.s 2018-04-11 15:03:33.000000000 +0200 @@ -5,7 +5,11 @@ # RUN: ld.lld %t-so.o -shared -o %t.so # RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.o # RUN: ld.lld %t.o %t.so -o %t.exe -# RUN: llvm-objdump -d %t.exe | FileCheck %s +# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=CHECK,DEFAULT +# RUN: ld.lld %t-so.o -shared -o %t.so -z hazardplt +# RUN: ld.lld %t.o %t.so -o %t.exe -z hazardplt +# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=CHECK,HAZARDPLT + # REQUIRES: mips @@ -21,11 +25,13 @@ # CHECK-NEXT: 2001c: 03 0e c0 23 subu $24, $24, $14 # CHECK-NEXT: 20020: 03 e0 78 25 move $15, $ra # CHECK-NEXT: 20024: 00 18 c0 c2 srl $24, $24, 3 -# CHECK-NEXT: 20028: 03 20 f8 09 jalr $25 +# DEFAULT: 20028: 03 20 f8 09 jalr $25 +# HAZARDPLT: 20028: 03 20 fc 09 jalr.hb $25 # CHECK-NEXT: 2002c: 27 18 ff fe addiu $24, $24, -2 # CHECK-NEXT: 20030: 3c 0f 00 03 lui $15, 3 # CHECK-NEXT: 20034: 8d f9 00 18 lw $25, 24($15) -# CHECK-NEXT: 20038: 03 20 00 08 jr $25 +# DEFAULT: 20038: 03 20 00 08 jr $25 +# HAZARDPLT: 20038: 03 20 04 08 jr.hb $25 # CHECK-NEXT: 2003c: 25 f8 00 18 addiu $24, $15, 24 .text diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/test/ELF/mips-plt-r6.s new/lld-6.0.1.src/test/ELF/mips-plt-r6.s --- old/lld-6.0.0.src/test/ELF/mips-plt-r6.s 2017-06-24 00:30:28.000000000 +0200 +++ new/lld-6.0.1.src/test/ELF/mips-plt-r6.s 2018-04-11 15:03:33.000000000 +0200 @@ -6,7 +6,10 @@ # RUN: -mcpu=mips32r6 %S/Inputs/mips-dynamic.s -o %t2.o # RUN: ld.lld %t2.o -shared -o %t.so # RUN: ld.lld %t1.o %t.so -o %t.exe -# RUN: llvm-objdump -d %t.exe | FileCheck %s +# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=DEFAULT,CHECK +# RUN: ld.lld %t2.o -shared -o %t.so -z hazardplt +# RUN: ld.lld %t1.o %t.so -o %t.exe -z hazardplt +# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=HAZARDPLT,CHECK # REQUIRES: mips @@ -24,12 +27,14 @@ # CHECK-NEXT: 2001c: 03 1c c0 23 subu $24, $24, $gp # CHECK-NEXT: 20020: 03 e0 78 25 move $15, $ra # CHECK-NEXT: 20024: 00 18 c0 82 srl $24, $24, 2 -# CHECK-NEXT: 20028: 03 20 f8 09 jalr $25 +# DEFAULT: 20028: 03 20 f8 09 jalr $25 +# HAZARDPLT: 20028: 03 20 fc 09 jalr.hb $25 # CHECK-NEXT: 2002c: 27 18 ff fe addiu $24, $24, -2 # CHECK-NEXT: 20030: 3c 0f 00 03 aui $15, $zero, 3 # CHECK-NEXT: 20034: 8d f9 00 0c lw $25, 12($15) -# CHECK-NEXT: 20038: 03 20 00 09 jr $25 +# DEFAULT: 20038: 03 20 00 09 jr $25 +# HAZARDPLT: 20038: 03 20 04 09 jr.hb $25 # CHECK-NEXT: 2003c: 25 f8 00 0c addiu $24, $15, 12 .text diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lld-6.0.0.src/test/MinGW/driver.test new/lld-6.0.1.src/test/MinGW/driver.test --- old/lld-6.0.0.src/test/MinGW/driver.test 2017-12-12 20:39:18.000000000 +0100 +++ new/lld-6.0.1.src/test/MinGW/driver.test 2018-05-11 08:58:06.000000000 +0200 @@ -124,3 +124,7 @@ RUN: ld.lld -### -m i386pep foo.o --icf=all | FileCheck -check-prefix ICF %s RUN: ld.lld -### -m i386pep foo.o -icf=all | FileCheck -check-prefix ICF %s ICF: -opt:icf + +RUN: ld.lld -### foo.o -m i386pe -shared --kill-at | FileCheck -check-prefix=KILL-AT %s +RUN: ld.lld -### foo.o -m i386pe -shared -kill-at | FileCheck -check-prefix=KILL-AT %s +KILL-AT: -kill-at ++++++ lldb-6.0.0.src.tar.xz -> lldb-6.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm6/lldb-6.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm6.new/lldb-6.0.1.src.tar.xz differ: char 26, line 1 ++++++ lldb-fix-build-with-python-3.7.patch ++++++ >From acbe5dc5cf0cf6852f02794987178595051a3a4e Mon Sep 17 00:00:00 2001 From: Michal Srb <m...@suse.com> Date: Wed, 25 Jul 2018 10:08:58 +0200 Subject: [PATCH] Fix build with python 3.7. The PyUnicode_AsUTF8AndSize now returns const char*, so we can not cast it to char*. However, the PyString_AsStringAndSize from python 2 still needs char**. --- source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp b/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp index 6a9d57d5a..3382813a5 100644 --- a/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp +++ b/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp @@ -399,11 +399,11 @@ llvm::StringRef PythonString::GetString() const { return llvm::StringRef(); Py_ssize_t size; - char *c; #if PY_MAJOR_VERSION >= 3 - c = PyUnicode_AsUTF8AndSize(m_py_obj, &size); + const char *c = PyUnicode_AsUTF8AndSize(m_py_obj, &size); #else + char *c; PyString_AsStringAndSize(m_py_obj, &c, &size); #endif return llvm::StringRef(c, size); -- 2.16.4 ++++++ llvm-6.0.0.src.tar.xz -> llvm-6.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm6/llvm-6.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm6.new/llvm-6.0.1.src.tar.xz differ: char 25, line 1 ++++++ llvm-do-not-install-static-libraries.patch ++++++ --- /var/tmp/diff_new_pack.6AKN45/_old 2018-07-27 10:55:14.521531719 +0200 +++ /var/tmp/diff_new_pack.6AKN45/_new 2018-07-27 10:55:14.525531727 +0200 @@ -2,10 +2,10 @@ want after installation. By not copying them in the first place we reduce the disk usage during installation. -Index: llvm-6.0.0.src/cmake/modules/AddLLVM.cmake +Index: llvm-6.0.1.src/cmake/modules/AddLLVM.cmake =================================================================== ---- llvm-6.0.0.src.orig/cmake/modules/AddLLVM.cmake -+++ llvm-6.0.0.src/cmake/modules/AddLLVM.cmake +--- llvm-6.0.1.src.orig/cmake/modules/AddLLVM.cmake ++++ llvm-6.0.1.src/cmake/modules/AddLLVM.cmake @@ -639,10 +639,19 @@ macro(add_llvm_library name) set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True) endif() @@ -30,10 +30,10 @@ if (NOT CMAKE_CONFIGURATION_TYPES) add_llvm_install_targets(install-${name} -Index: llvm-6.0.0.src/lld-6.0.0.src/cmake/modules/AddLLD.cmake +Index: llvm-6.0.1.src/lld-6.0.1.src/cmake/modules/AddLLD.cmake =================================================================== ---- llvm-6.0.0.src.orig/lld-6.0.0.src/cmake/modules/AddLLD.cmake -+++ llvm-6.0.0.src/lld-6.0.0.src/cmake/modules/AddLLD.cmake +--- llvm-6.0.1.src.orig/lld-6.0.1.src/cmake/modules/AddLLD.cmake ++++ llvm-6.0.1.src/lld-6.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() @@ -48,10 +48,10 @@ if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES) add_llvm_install_targets(install-${name} DEPENDS ${name} -Index: llvm-6.0.0.src/lldb-6.0.0.src/cmake/modules/AddLLDB.cmake +Index: llvm-6.0.1.src/lldb-6.0.1.src/cmake/modules/AddLLDB.cmake =================================================================== ---- llvm-6.0.0.src.orig/lldb-6.0.0.src/cmake/modules/AddLLDB.cmake -+++ llvm-6.0.0.src/lldb-6.0.0.src/cmake/modules/AddLLDB.cmake +--- llvm-6.0.1.src.orig/lldb-6.0.1.src/cmake/modules/AddLLDB.cmake ++++ llvm-6.0.1.src/lldb-6.0.1.src/cmake/modules/AddLLDB.cmake @@ -60,10 +60,12 @@ function(add_lldb_library name) LIBRARY DESTINATION ${out_dir} ARCHIVE DESTINATION ${out_dir}) @@ -69,10 +69,10 @@ endif() if (NOT CMAKE_CONFIGURATION_TYPES) add_llvm_install_targets(install-${name} -Index: llvm-6.0.0.src/polly-6.0.0.src/cmake/polly_macros.cmake +Index: llvm-6.0.1.src/polly-6.0.1.src/cmake/polly_macros.cmake =================================================================== ---- llvm-6.0.0.src.orig/polly-6.0.0.src/cmake/polly_macros.cmake -+++ llvm-6.0.0.src/polly-6.0.0.src/cmake/polly_macros.cmake +--- llvm-6.0.1.src.orig/polly-6.0.1.src/cmake/polly_macros.cmake ++++ llvm-6.0.1.src/polly-6.0.1.src/cmake/polly_macros.cmake @@ -42,12 +42,22 @@ macro(add_polly_library name) llvm_config(${name} ${LLVM_LINK_COMPONENTS}) endif( LLVM_LINK_COMPONENTS ) @@ -101,10 +101,10 @@ endmacro(add_polly_library) macro(add_polly_loadable_module name) -Index: llvm-6.0.0.src/polly-6.0.0.src/lib/CMakeLists.txt +Index: llvm-6.0.1.src/polly-6.0.1.src/lib/CMakeLists.txt =================================================================== ---- llvm-6.0.0.src.orig/polly-6.0.0.src/lib/CMakeLists.txt -+++ llvm-6.0.0.src/polly-6.0.0.src/lib/CMakeLists.txt +--- llvm-6.0.1.src.orig/polly-6.0.1.src/lib/CMakeLists.txt ++++ llvm-6.0.1.src/polly-6.0.1.src/lib/CMakeLists.txt @@ -145,7 +145,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 ++++++ llvm-docs-6.0.0.src.tar.xz -> llvm-docs-6.0.1.src.tar.xz ++++++ ++++ 263588 lines of diff (skipped) ++++++ openmp-6.0.0.src.tar.xz -> openmp-6.0.1.src.tar.xz ++++++ ++++++ polly-6.0.0.src.tar.xz -> polly-6.0.1.src.tar.xz ++++++ /work/SRC/openSUSE:Factory/llvm6/polly-6.0.0.src.tar.xz /work/SRC/openSUSE:Factory/.llvm6.new/polly-6.0.1.src.tar.xz differ: char 26, line 1