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

Reply via email to