Hello community, here is the log from the commit of package llvm7 for openSUSE:Leap:15.2 checked in at 2020-05-29 18:49:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/llvm7 (Old) and /work/SRC/openSUSE:Leap:15.2/.llvm7.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "llvm7" Fri May 29 18:49:14 2020 rev:7 rq:777943 version:7.0.1 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/llvm7/llvm7.changes 2020-01-15 15:27:21.762641641 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.llvm7.new.3606/llvm7.changes 2020-05-29 18:49:17.904223551 +0200 @@ -2 +2,17 @@ -Fri Oct 25 00:18:07 UTC 2019 - Michael Gorse <mgo...@suse.com> +Fri Oct 18 18:40:39 UTC 2019 - Stefan Brüns <stefan.bru...@rwth-aachen.de> + +- (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 lldb7 subpackage, and add it to + the bindings/pretty-printer subpackage (python3-lldb7). + +------------------------------------------------------------------- +Sat Oct 12 20:41:36 UTC 2019 - Aaron Puchert <aaronpuch...@alice-dsl.net> + +- Move diagtool from llvm to clang subpackage. +- Make sure clang is installed after llvm to prevent breaking the + clang link group due to this change. + +------------------------------------------------------------------- +Wed Sep 4 15:02:41 UTC 2019 - Aaron Puchert <aaronpuch...@alice-dsl.net> @@ -7,0 +24,101 @@ +- Remove unneccesary dependencies: + * groff, bison and flex don't seem to be used. + * jsoncpp is no longer used since r338461. + * 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. +- Remove some duplicate BuildRequires. +- Move libxml to the main package, since Clang also needs it. +- Remove unused (since r268685) CMake flags LLVM_ENABLE_TIMESTAMPS. +- Package gold linker plugin again. +- Don't build libc++ and python3-clang anymore, because they come + from llvm8 now (boo#1145735). +- Don't recommend scan-build and scan-view in clang. (boo#1145444) +- Add versions to Provides/Conflicts except for files. +- Fix installation of opt-viewer files when python3-clang is no + longer built. + +------------------------------------------------------------------- +Tue Sep 3 12:24:13 UTC 2019 - Guillaume GARDET <guillaume.gar...@opensuse.org> + +- Fix aarch64 build broken by last commit + +------------------------------------------------------------------- +Mon Aug 12 18:28:28 UTC 2019 - Petr Tesařík <ptesa...@suse.com> + +- Drop aarch64-disable-memorytest.patch: no longer needed. + +------------------------------------------------------------------- +Sat Aug 10 06:06:57 UTC 2019 - Petr Tesařík <ptesa...@suse.com> + +- Allow use of Gold linker to be conditional. + +------------------------------------------------------------------- +Fri Aug 9 20:18:20 UTC 2019 - Petr Tesařík <ptesa...@suse.com> + +- llvm-skip-broken-float-test.patch + * Skip a test that is broken with 387 FPU registers. + * Avoids check failure on i586 (bsc#1145085). + +------------------------------------------------------------------- +Fri Aug 9 14:34:09 UTC 2019 - Petr Tesařík <ptesa...@suse.com> + +- openmp-link-with-atomic-if-needed.patch + * Link libomp with atomic if needed (bsc#1145085). + * Fixes build using gcc-4.8 (e.g. SLE-12). + +------------------------------------------------------------------- +Sat Jun 15 20:11:03 UTC 2019 - Aaron Puchert <aaronpuch...@alice-dsl.net> + +- 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. +- Don't run LLVM tests on ppc, where they often get stuck. +- Enable tests for libcxx, where possible. +- Reduce memory requirements for compile jobs depending on arch. + +------------------------------------------------------------------- +Wed Apr 24 17:20:07 UTC 2019 - Martin Liška <mli...@suse.cz> + +- Disable LTO (boo#1133254). + +------------------------------------------------------------------- +Thu Mar 28 15:15:46 UTC 2019 - Bernhard Wiedemann <bwiedem...@suse.com> + +- Add clang-deterministic-selector-order.patch to make build of + gnustep-libobjc2 package reproducible (boo#1067478) + +------------------------------------------------------------------- +Sat Mar 23 23:29:21 UTC 2019 - aaronpuch...@alice-dsl.net + +- Fix packaging on ppc: the sanitizers aren't available there, so + the directories /usr/lib/clang/*/{lib,share} are missing. +- Package LLVMgold even when we don't use gold for linking. + It's promised in /usr/lib/cmake/llvm/LLVMExports.cmake. +- Unignore test failures on PowerPC64 architectures. The failures + in ppc are unrelated to AMDGPU, so we remove that remark. +- Fix dependencies: the gold plugin shouldn't depend on llvm-devel. + libc++abi-devel should depend on libc++abi. +- Fix typo. + +------------------------------------------------------------------- +Tue Mar 19 09:16:11 UTC 2019 - Adrian Schröter <adr...@suse.de> + +- enable C++ on ARM + Needed for tensorflow @@ -10 +127 @@ -Mon Jul 1 21:44:21 UTC 2019 - Aaron Puchert <aaronpuch...@alice-dsl.net> +Sun Mar 10 20:24:03 UTC 2019 - aaronpuch...@alice-dsl.net @@ -11,0 +129,4 @@ +- Remove -fno-strict-aliasing, which upstream doesn't use any more + since r245304 in 2015. (http://reviews.llvm.org/D12036) + It's probably also not needed for modern versions of GCC. + It was enabled in r105644 because of some bugs there. @@ -13 +134,5 @@ - /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1138457) + /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1120098) +- Package clang builtin headers with libclang. The library is + basically unusable without the builtin headers. Currently + consumers of libclang have to require clang as well, although + only the headers are needed. Old: ---- aarch64-disable-memorytest.patch New: ---- clang-deterministic-selector-order.patch llvm-skip-broken-float-test.patch openmp-link-with-atomic-if-needed.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ llvm7.spec ++++++ ++++ 884 lines (skipped) ++++ between /work/SRC/openSUSE:Leap:15.2/llvm7/llvm7.spec ++++ and /work/SRC/openSUSE:Leap:15.2/.llvm7.new.3606/llvm7.spec ++++++ clang-deterministic-selector-order.patch ++++++ commit 6c4fb3c5356d1a4fb031292c3a56458dd6e041b2 Author: David Chisnall <csda...@swan.ac.uk> Date: Tue Aug 14 10:05:25 2018 +0000 [gnu-objc] Make selector order deterministic. Summary: This probably fixes PR35277, though there may be other sources of nondeterminism (this was the only case of iterating over a DenseMap). It's difficult to provide a test case for this, because it shows up only on systems with ASLR enabled. Reviewers: rjmccall Reviewed By: rjmccall Subscribers: bmwiedemann, mgrang, cfe-commits Differential Revision: https://reviews.llvm.org/D50559 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@339668 91177308-0d34-0410-b5e6-96231b3b80d8 diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp index 622c8bfb50..b509187b4c 100644 --- a/lib/CodeGen/CGObjCGNU.cpp +++ b/lib/CodeGen/CGObjCGNU.cpp @@ -3541,12 +3541,16 @@ llvm::Function *CGObjCGNU::ModuleInitFunction() { ConstantInitBuilder builder(CGM); auto selectors = builder.beginArray(selStructTy); auto &table = SelectorTable; // MSVC workaround - for (auto &entry : table) { + std::vector<Selector> allSelectors; + for (auto &entry : table) + allSelectors.push_back(entry.first); + llvm::sort(allSelectors.begin(), allSelectors.end()); - std::string selNameStr = entry.first.getAsString(); + for (auto &untypedSel : allSelectors) { + std::string selNameStr = untypedSel.getAsString(); llvm::Constant *selName = ExportUniqueString(selNameStr, ".objc_sel_name"); - for (TypedSelector &sel : entry.second) { + for (TypedSelector &sel : table[untypedSel]) { llvm::Constant *selectorTypeEncoding = NULLPtr; if (!sel.first.empty()) selectorTypeEncoding = diff --git a/test/CodeGenObjC/gnu-deterministic-selectors.m b/test/CodeGenObjC/gnu-deterministic-selectors.m new file mode 100644 index 0000000000..5f8d2e5378 --- /dev/null +++ b/test/CodeGenObjC/gnu-deterministic-selectors.m @@ -0,0 +1,16 @@ +// RUN: %clang_cc1 -triple x86_64-unknown-freebsd -fobjc-runtime=gnustep-1.5 %s -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-unknown-freebsd -fobjc-runtime=gcc %s -emit-llvm -o - | FileCheck %s + +// Check that these selectors are emitted in alphabetical order. +// The order doesn't actually matter, only that it doesn't vary across runs. +// Clang sorts them when targeting a GCC-like ABI to guarantee determinism. +// CHECK: @.objc_selector_list = internal global [6 x { i8*, i8* }] [{ i8*, i8* } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.objc_sel_namea, i64 0, i64 0), i8* null }, { i8*, i8* } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.objc_sel_nameg, i64 0, i64 0), i8* null }, { i8*, i8* } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.objc_sel_namej, i64 0, i64 0), i8* null }, { i8*, i8* } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.objc_sel_namel, i64 0, i64 0), i8* null }, { i8*, i8* } { i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.objc_sel_namez, i64 0, i64 0), i8* null }, { i8*, i8* } zeroinitializer], align 8 + + +void f() { + SEL a = @selector(z); + SEL b = @selector(a); + SEL c = @selector(g); + SEL d = @selector(l); + SEL e = @selector(j); +} ++++++ llvm-skip-broken-float-test.patch ++++++ From: Petr Tesarik <ptesa...@suse.com> Subject: Skip broken floating-point tests on i586 References: bsc#1145085 Patch-mainline: not yet, needs further research The test suite fails like this on i586: [ 1254s] FAIL: LLVM-Unit :: Support/./SupportTests/JSONTest.Integers (2436 of 27030) [ 1254s] ******************** TEST 'LLVM-Unit :: Support/./SupportTests/JSONTest.Integers' FAILED ******************** [ 1254s] Note: Google Test filter = JSONTest.Integers [ 1254s] [==========] Running 1 test from 1 test case. [ 1254s] [----------] Global test environment set-up. [ 1254s] [----------] 1 test from JSONTest [ 1254s] [ RUN ] JSONTest.Integers [ 1254s] ../unittests/Support/JSONTest.cpp:319: Failure [ 1254s] Expected: Doc->getAsNumber() [ 1254s] Which is: 12-byte object <00-00 00-00 00-00 D0-43 01-38 D1-08> [ 1254s] To be equal to: T.AsNumber [ 1254s] Which is: 12-byte object <00-00 00-00 00-00 D0-43 01-B0 92-F2> [ 1254s] Integer, not exact double. Stored as int64, convertible. [ 1254s] ../unittests/Support/JSONTest.cpp:319: Failure [ 1254s] Expected: Doc->getAsNumber() [ 1254s] Which is: 12-byte object <00-00 00-00 00-00 D0-C3 01-60 D1-08> [ 1254s] To be equal to: T.AsNumber [ 1254s] Which is: 12-byte object <00-00 00-00 00-00 D0-C3 01-00 00-00> [ 1254s] Negative integer, not exact double. Stored as int64, convertible. [ 1254s] [ FAILED ] JSONTest.Integers (0 ms) [ 1254s] [----------] 1 test from JSONTest (0 ms total) [ 1254s] [ 1254s] [----------] Global test environment tear-down [ 1254s] [==========] 1 test from 1 test case ran. (1 ms total) [ 1254s] [ PASSED ] 0 tests. [ 1254s] [ FAILED ] 1 test, listed below: [ 1254s] [ FAILED ] JSONTest.Integers Essentially, there is a check that an int64_t converted to a double matches a pre-calculated value exactly. This does not work for a large 64-bit integer which cannot be interpreted exactly as a 64-bit double. That's because the integer value is stored in a hardware floating-point register (using the FILD instruction). This register has 80 bits, so it can represent the integer value exactly. This register is then compared with the 64-bit value (loaded into another 80-bit floating-point register from memory using FLD instruction). Of course, the two do not match. It is not an issue on x86-64, because 64-bit XMM registers are used in that case, so there is no extra precision. I believe this unit test is broken, at least on i586. Signed-off-by: Petr Tesarik <ptesa...@suse.com> --- unittests/Support/JSONTest.cpp | 2 ++ 1 file changed, 2 insertions(+) --- a/unittests/Support/JSONTest.cpp +++ b/unittests/Support/JSONTest.cpp @@ -279,6 +279,7 @@ TEST(JSONTest, Integers) { 1.5, }, +#ifndef __i386__ { "Integer, not exact double. Stored as int64, convertible.", int64_t{0x4000000000000001}, @@ -294,6 +295,7 @@ TEST(JSONTest, Integers) { int64_t{-0x4000000000000001}, double{-0x4000000000000000}, }, +#endif { "Dynamically exact integer. Stored as double, convertible.", ++++++ openmp-link-with-atomic-if-needed.patch ++++++ From: Petr Tesarik <ptesa...@suse.com> Subject: Link libomp with atomic if needed References: bsc#1145085 Patch-mainline: never, fix not needed with more recent gcc libatomic is needed for 64-bit atomics on i586. The check is already performed by LLVM7, but the result is not used by openmp. Signed-off-by: Petr Tesarik <ptesa...@suse.com> --- runtime/src/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- a/runtime/src/CMakeLists.txt +++ b/runtime/src/CMakeLists.txt @@ -174,7 +174,13 @@ endif() # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS) -target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS}) + +set(LIBOMP_SYSTEM_LIBS) +if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) + list(APPEND LIBOMP_SYSTEM_LIBS atomic) +endif() + +target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_SYSTEM_LIBS} ${CMAKE_DL_LIBS}) # Create *.inc before compiling any sources # objects depend on : .inc files