Hello community,

here is the log from the commit of package valgrind for openSUSE:Factory 
checked in at 2018-11-28 11:11:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/valgrind (Old)
 and      /work/SRC/openSUSE:Factory/.valgrind.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "valgrind"

Wed Nov 28 11:11:53 2018 rev:111 rq:652030 version:3.14.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/valgrind/valgrind.changes        2018-10-01 
09:07:45.211772453 +0200
+++ /work/SRC/openSUSE:Factory/.valgrind.new.19453/valgrind.changes     
2018-11-28 11:12:42.666956612 +0100
@@ -1,0 +2,53 @@
+Sun Nov 25 21:06:20 UTC 2018 - [email protected]
+
+- update valgrind.xen.patch to branch bug390553-20181125-ddfc274b2
+
+-------------------------------------------------------------------
+Thu Nov 22 09:21:45 UTC 2018 - Dirk Mueller <[email protected]>
+
+- build against Toolchain module for SLE12
+- add 0001-Bug-397187-s390x-Add-vector-register-support-for-vgd.patch
+  0001-Bug-400490-s390x-Fix-register-allocation-for-VRs-vs-.patch,
+  0001-Bug-400491-s390x-Sign-extend-immediate-operand-of-LO.patch,
+  0001-s390x-more-fixes.patch,
+  Implement-emulated-system-registers.-Fixes-392146.patch (FATE#326355)
+- enable check (poo#36751)
+
+-------------------------------------------------------------------
+Wed Nov 21 11:51:45 UTC 2018 - Dirk Mueller <[email protected]>
+
+- update to 3.14.0 (bsc#1114575, FATE#326355):
+  see http://www.valgrind.org/docs/manual/dist.news.html
+  * The new option --keep-debuginfo=no|yes (default no) can be used to retain
+    debug info for unloaded code.  This allows saved stack traces (e.g. for
+    memory leaks) to include file/line info for code that has been dlclose'd 
(or
+    similar).  See the user manual for more information and known limitations.
+  * Ability to specify suppressions based on source file name and line number.
+  * Majorly overhauled register allocator.  No end-user changes, but the JIT
+    generates code a bit more quickly now.
+  * Preliminary support for macOS 10.13 has been added.
+  * mips: support for MIPS32/MIPS64 Revision 6 has been added.
+  * mips: support for MIPS SIMD architecture (MSA) has been added.
+  * mips: support for MIPS N32 ABI has been added.
+  * s390: partial support for vector instructions (integer and string) has been
+    added.
+  * Helgrind: Addition of a flag
+    --delta-stacktrace=no|yes [yes on linux amd64/x86]
+    which specifies how full history stack traces should be computed.
+    Setting this to =yes can speed up Helgrind by 25% when using
+    --history-level=full.
+  * Memcheck: reduced false positive rate for optimised code created by Clang 6
+    / LLVM 6 on x86, amd64 and arm64.  In particular, Memcheck analyses code
+    blocks more carefully to determine where it can avoid expensive definedness
+    checks without loss of precision.  This is controlled by the flag
+    --expensive-definedness-checks=no|auto|yes [auto].
+  * Valgrind is now buildable with link-time optimisation (LTO).  A new
+    configure option --enable-lto=yes allows building Valgrind with LTO.  If 
the
+    toolchain supports it, this produces a smaller/faster Valgrind (up to 10%).
+    Note that if you are doing Valgrind development, --enable-lto=yes massively
+    slows down the build process.
+- remove epoll-wait-fix.patch,
+  Fix-access-to-time-base-register-to-return-64-bits.patch,
+  0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch (upstream),
+
+-------------------------------------------------------------------

Old:
----
  0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch
  Fix-access-to-time-base-register-to-return-64-bits.patch
  epoll-wait-fix.patch
  valgrind-3.13.0.tar.bz2

New:
----
  0001-Bug-397187-s390x-Add-vector-register-support-for-vgd.patch
  0001-Bug-400490-s390x-Fix-register-allocation-for-VRs-vs-.patch
  0001-Bug-400491-s390x-Sign-extend-immediate-operand-of-LO.patch
  0001-s390x-more-fixes.patch
  valgrind-3.14.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ valgrind.spec ++++++
--- /var/tmp/diff_new_pack.Ms6TLR/_old  2018-11-28 11:12:43.422955551 +0100
+++ /var/tmp/diff_new_pack.Ms6TLR/_new  2018-11-28 11:12:43.422955551 +0100
@@ -22,31 +22,35 @@
 %define building_docs 1
 
 Name:           valgrind
-Version:        3.13.0
+Version:        3.14.0
 Release:        0
 Summary:        Memory Management Debugger
 License:        GPL-2.0-or-later
 Group:          Development/Tools/Debuggers
 Url:            http://valgrind.org/
 Source0:        ftp://sourceware.org/pub/valgrind/valgrind-%{version}.tar.bz2
-# svn  di svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_5_0 
svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_5_BRANCH > 3_5_BRANCH.diff
-# svn  di svn://svn.valgrind.org/vex/tags/VEX_3_5_0 
svn://svn.valgrind.org/vex/branches/VEX_3_5_BRANCH > VEX_3_5_BRANCH.diff
+# https://bugs.kde.org/show_bug.cgi?id=390553
+# 
https://github.com/olafhering/valgrind/compare/olh-base-master...olh-fixes-master
 Patch0:         valgrind.xen.patch
 Patch1:         jit-register-unregister.diff
 Patch2:         armv6-support.diff
-Patch3:         epoll-wait-fix.patch
 Patch4:         Implement-emulated-system-registers.-Fixes-392146.patch
-# PATCH-FIX-UPSTREAM [backport] - 
https://sourceware.org/git/?p=valgrind.git;a=commit;h=64aa729bfae71561505a40c12755bd6b55bb3061
-Patch5:         0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch
-# PATCH-FIX-UPSTREAM - 
https://sourceware.org/git/?p=valgrind.git;a=commit;h=6a55b1e82ccda3f0d663d2cc89eb543ae2d096bf
-Patch6:         Fix-access-to-time-base-register-to-return-64-bits.patch
+Patch5:         0001-Bug-400490-s390x-Fix-register-allocation-for-VRs-vs-.patch
+Patch6:         0001-Bug-400491-s390x-Sign-extend-immediate-operand-of-LO.patch
+Patch7:         0001-Bug-397187-s390x-Add-vector-register-support-for-vgd.patch
+Patch8:         0001-s390x-more-fixes.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  docbook_4
+%if 0%{?suse_version} < 1320
+BuildRequires:  gcc8-c++
+%else
 BuildRequires:  gcc-c++
+%endif
 BuildRequires:  glibc-devel-32bit
 BuildRequires:  libxslt
 BuildRequires:  pkgconfig
+BuildRequires:  procps
 Requires:       glibc >= %{glibc_main_version}.%{glibc_major_version}
 Requires:       glibc < 
%{glibc_main_version}.%{lua:print(rpm.expand("%{glibc_major_version}")+1)}
 Provides:       callgrind = %{version}
@@ -110,12 +114,18 @@
 # needs porting to 3.11
 ##%patch1
 %patch2
-%patch3
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
+%patch8 -p1
 
 %build
+%if 0%{?suse_version} < 1320
+export CC="%{_bindir}/gcc-8"
+export CXX="%{_bindir}/g++-8"
+%endif
+
 export FLAGS="%{optflags}"
 %ifarch %arm
 # Valgrind doesn't support compiling for Thumb yet. Remove when it gets
@@ -135,6 +145,7 @@
 
 export GDB=%{_bindir}/gdb
 %configure \
+    --enable-lto=yes \
 %ifarch aarch64
            --enable-only64bit
 %endif
@@ -157,6 +168,15 @@
 mkdir -p %{buildroot}%{_docdir}/%{name}
 cp -a README* NEWS AUTHORS %{buildroot}/%{_defaultdocdir}/%{name}
 
+%check
+# OBS doesn't have a z13
+%ifnarch s390x
+# has too many spurious failures
+# make %{?_smp_mflags} regtest
+#patent pending self test
+VALGRIND_LIB=$PWD/.in_place VALGRIND_LIB_INNER=$PWD/.in_place 
./coregrind/valgrind  /usr/bin/perl -wc tests/vg_regtest
+%endif
+
 %files
 %license COPYING COPYING.DOCS 
 %{_bindir}/*
@@ -257,12 +277,16 @@
 %{_libdir}/valgrind/s390-acr.xml
 %{_libdir}/valgrind/s390-fpr-valgrind-s*.xml
 %{_libdir}/valgrind/s390-fpr.xml
+%{_libdir}/valgrind/s390-vx-valgrind-s*.xml
+%{_libdir}/valgrind/s390-vx.xml
 %{_libdir}/valgrind/s390x-core64-valgrind-s*.xml
 %{_libdir}/valgrind/s390x-core64.xml
 %{_libdir}/valgrind/s390x-generic-valgrind.xml
 %{_libdir}/valgrind/s390x-generic.xml
 %{_libdir}/valgrind/s390x-linux64-valgrind-s*.xml
 %{_libdir}/valgrind/s390x-linux64.xml
+%{_libdir}/valgrind/s390x-vx-linux-valgrind.xml
+%{_libdir}/valgrind/s390x-vx-linux.xml
 
 %files devel
 %{_libdir}/valgrind/lib*.a

++++++ 0001-Bug-397187-s390x-Add-vector-register-support-for-vgd.patch ++++++
>From 50bd2282bce101012a5668b670cb185375600d2d Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Thu, 18 Oct 2018 17:51:57 +0200
Subject: [PATCH] Bug 397187 s390x: Add vector register support for vgdb

On s390x machines with a vector facility, Valgrind's gdbserver didn't
represent the vector registers.  This is fixed.
---
 NEWS                                          |  1 +
 coregrind/Makefile.am                         |  5 +
 coregrind/m_gdbserver/s390-vx-valgrind-s1.xml | 43 ++++++++
 coregrind/m_gdbserver/s390-vx-valgrind-s2.xml | 43 ++++++++
 coregrind/m_gdbserver/s390-vx.xml             | 59 +++++++++++
 .../m_gdbserver/s390x-vx-linux-valgrind.xml   | 28 ++++++
 coregrind/m_gdbserver/s390x-vx-linux.xml      | 18 ++++
 coregrind/m_gdbserver/valgrind-low-s390x.c    | 97 +++++++++++++++++--
 8 files changed, 288 insertions(+), 6 deletions(-)
 create mode 100644 coregrind/m_gdbserver/s390-vx-valgrind-s1.xml
 create mode 100644 coregrind/m_gdbserver/s390-vx-valgrind-s2.xml
 create mode 100644 coregrind/m_gdbserver/s390-vx.xml
 create mode 100644 coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml
 create mode 100644 coregrind/m_gdbserver/s390x-vx-linux.xml

Index: valgrind-3.14.0/coregrind/Makefile.am
===================================================================
--- valgrind-3.14.0.orig/coregrind/Makefile.am
+++ valgrind-3.14.0/coregrind/Makefile.am
@@ -681,6 +681,11 @@ GDBSERVER_XML_FILES = \
        m_gdbserver/s390x-linux64-valgrind-s1.xml \
        m_gdbserver/s390x-linux64-valgrind-s2.xml \
        m_gdbserver/s390x-linux64.xml \
+       m_gdbserver/s390-vx-valgrind-s1.xml \
+       m_gdbserver/s390-vx-valgrind-s2.xml \
+       m_gdbserver/s390-vx.xml \
+       m_gdbserver/s390x-vx-linux-valgrind.xml \
+       m_gdbserver/s390x-vx-linux.xml \
        m_gdbserver/mips-cp0-valgrind-s1.xml \
        m_gdbserver/mips-cp0-valgrind-s2.xml \
        m_gdbserver/mips-cp0.xml \
Index: valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml
===================================================================
--- /dev/null
+++ valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s1.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.s390.vx-valgrind-s1">
+  <reg name="v0ls1" bitsize="64" type="uint64"/>
+  <reg name="v1ls1" bitsize="64" type="uint64"/>
+  <reg name="v2ls1" bitsize="64" type="uint64"/>
+  <reg name="v3ls1" bitsize="64" type="uint64"/>
+  <reg name="v4ls1" bitsize="64" type="uint64"/>
+  <reg name="v5ls1" bitsize="64" type="uint64"/>
+  <reg name="v6ls1" bitsize="64" type="uint64"/>
+  <reg name="v7ls1" bitsize="64" type="uint64"/>
+  <reg name="v8ls1" bitsize="64" type="uint64"/>
+  <reg name="v9ls1" bitsize="64" type="uint64"/>
+  <reg name="v10ls1" bitsize="64" type="uint64"/>
+  <reg name="v11ls1" bitsize="64" type="uint64"/>
+  <reg name="v12ls1" bitsize="64" type="uint64"/>
+  <reg name="v13ls1" bitsize="64" type="uint64"/>
+  <reg name="v14ls1" bitsize="64" type="uint64"/>
+  <reg name="v15ls1" bitsize="64" type="uint64"/>
+
+  <reg name="v16s1" bitsize="128" type="uint128"/>
+  <reg name="v17s1" bitsize="128" type="uint128"/>
+  <reg name="v18s1" bitsize="128" type="uint128"/>
+  <reg name="v19s1" bitsize="128" type="uint128"/>
+  <reg name="v20s1" bitsize="128" type="uint128"/>
+  <reg name="v21s1" bitsize="128" type="uint128"/>
+  <reg name="v22s1" bitsize="128" type="uint128"/>
+  <reg name="v23s1" bitsize="128" type="uint128"/>
+  <reg name="v24s1" bitsize="128" type="uint128"/>
+  <reg name="v25s1" bitsize="128" type="uint128"/>
+  <reg name="v26s1" bitsize="128" type="uint128"/>
+  <reg name="v27s1" bitsize="128" type="uint128"/>
+  <reg name="v28s1" bitsize="128" type="uint128"/>
+  <reg name="v29s1" bitsize="128" type="uint128"/>
+  <reg name="v30s1" bitsize="128" type="uint128"/>
+  <reg name="v31s1" bitsize="128" type="uint128"/>
+</feature>
Index: valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml
===================================================================
--- /dev/null
+++ valgrind-3.14.0/coregrind/m_gdbserver/s390-vx-valgrind-s2.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.s390.vx-valgrind-s2">
+  <reg name="v0ls2" bitsize="64" type="uint64"/>
+  <reg name="v1ls2" bitsize="64" type="uint64"/>
+  <reg name="v2ls2" bitsize="64" type="uint64"/>
+  <reg name="v3ls2" bitsize="64" type="uint64"/>
+  <reg name="v4ls2" bitsize="64" type="uint64"/>
+  <reg name="v5ls2" bitsize="64" type="uint64"/>
+  <reg name="v6ls2" bitsize="64" type="uint64"/>
+  <reg name="v7ls2" bitsize="64" type="uint64"/>
+  <reg name="v8ls2" bitsize="64" type="uint64"/>
+  <reg name="v9ls2" bitsize="64" type="uint64"/>
+  <reg name="v10ls2" bitsize="64" type="uint64"/>
+  <reg name="v11ls2" bitsize="64" type="uint64"/>
+  <reg name="v12ls2" bitsize="64" type="uint64"/>
+  <reg name="v13ls2" bitsize="64" type="uint64"/>
+  <reg name="v14ls2" bitsize="64" type="uint64"/>
+  <reg name="v15ls2" bitsize="64" type="uint64"/>
+
+  <reg name="v16s2" bitsize="128" type="uint128"/>
+  <reg name="v17s2" bitsize="128" type="uint128"/>
+  <reg name="v18s2" bitsize="128" type="uint128"/>
+  <reg name="v19s2" bitsize="128" type="uint128"/>
+  <reg name="v20s2" bitsize="128" type="uint128"/>
+  <reg name="v21s2" bitsize="128" type="uint128"/>
+  <reg name="v22s2" bitsize="128" type="uint128"/>
+  <reg name="v23s2" bitsize="128" type="uint128"/>
+  <reg name="v24s2" bitsize="128" type="uint128"/>
+  <reg name="v25s2" bitsize="128" type="uint128"/>
+  <reg name="v26s2" bitsize="128" type="uint128"/>
+  <reg name="v27s2" bitsize="128" type="uint128"/>
+  <reg name="v28s2" bitsize="128" type="uint128"/>
+  <reg name="v29s2" bitsize="128" type="uint128"/>
+  <reg name="v30s2" bitsize="128" type="uint128"/>
+  <reg name="v31s2" bitsize="128" type="uint128"/>
+</feature>
Index: valgrind-3.14.0/coregrind/m_gdbserver/s390-vx.xml
===================================================================
--- /dev/null
+++ valgrind-3.14.0/coregrind/m_gdbserver/s390-vx.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2015-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.s390.vx">
+  <vector id="v4f" type="ieee_single" count="4"/>
+  <vector id="v2d" type="ieee_double" count="2"/>
+  <vector id="v16i8" type="int8" count="16"/>
+  <vector id="v8i16" type="int16" count="8"/>
+  <vector id="v4i32" type="int32" count="4"/>
+  <vector id="v2i64" type="int64" count="2"/>
+  <union id="vec128">
+    <field name="v4_float" type="v4f"/>
+    <field name="v2_double" type="v2d"/>
+    <field name="v16_int8" type="v16i8"/>
+    <field name="v8_int16" type="v8i16"/>
+    <field name="v4_int32" type="v4i32"/>
+    <field name="v2_int64" type="v2i64"/>
+    <field name="uint128" type="uint128"/>
+  </union>
+
+  <reg name="v0l" bitsize="64" type="uint64"/>
+  <reg name="v1l" bitsize="64" type="uint64"/>
+  <reg name="v2l" bitsize="64" type="uint64"/>
+  <reg name="v3l" bitsize="64" type="uint64"/>
+  <reg name="v4l" bitsize="64" type="uint64"/>
+  <reg name="v5l" bitsize="64" type="uint64"/>
+  <reg name="v6l" bitsize="64" type="uint64"/>
+  <reg name="v7l" bitsize="64" type="uint64"/>
+  <reg name="v8l" bitsize="64" type="uint64"/>
+  <reg name="v9l" bitsize="64" type="uint64"/>
+  <reg name="v10l" bitsize="64" type="uint64"/>
+  <reg name="v11l" bitsize="64" type="uint64"/>
+  <reg name="v12l" bitsize="64" type="uint64"/>
+  <reg name="v13l" bitsize="64" type="uint64"/>
+  <reg name="v14l" bitsize="64" type="uint64"/>
+  <reg name="v15l" bitsize="64" type="uint64"/>
+
+  <reg name="v16" bitsize="128" type="vec128"/>
+  <reg name="v17" bitsize="128" type="vec128"/>
+  <reg name="v18" bitsize="128" type="vec128"/>
+  <reg name="v19" bitsize="128" type="vec128"/>
+  <reg name="v20" bitsize="128" type="vec128"/>
+  <reg name="v21" bitsize="128" type="vec128"/>
+  <reg name="v22" bitsize="128" type="vec128"/>
+  <reg name="v23" bitsize="128" type="vec128"/>
+  <reg name="v24" bitsize="128" type="vec128"/>
+  <reg name="v25" bitsize="128" type="vec128"/>
+  <reg name="v26" bitsize="128" type="vec128"/>
+  <reg name="v27" bitsize="128" type="vec128"/>
+  <reg name="v28" bitsize="128" type="vec128"/>
+  <reg name="v29" bitsize="128" type="vec128"/>
+  <reg name="v30" bitsize="128" type="vec128"/>
+  <reg name="v31" bitsize="128" type="vec128"/>
+</feature>
Index: valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml
===================================================================
--- /dev/null
+++ valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux-valgrind.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!-- S/390 64-bit user-level code.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+  <architecture>s390:64-bit</architecture>
+  <xi:include href="s390x-core64.xml"/>
+  <xi:include href="s390-acr.xml"/>
+  <xi:include href="s390-fpr.xml"/>
+  <xi:include href="s390x-linux64.xml"/>
+  <xi:include href="s390-vx.xml"/>
+  <xi:include href="s390x-core64-valgrind-s1.xml"/>
+  <xi:include href="s390-acr-valgrind-s1.xml"/>
+  <xi:include href="s390-fpr-valgrind-s1.xml"/>
+  <xi:include href="s390x-linux64-valgrind-s1.xml"/>
+  <xi:include href="s390-vx-valgrind-s1.xml"/>
+  <xi:include href="s390x-core64-valgrind-s2.xml"/>
+  <xi:include href="s390-acr-valgrind-s2.xml"/>
+  <xi:include href="s390-fpr-valgrind-s2.xml"/>
+  <xi:include href="s390x-linux64-valgrind-s2.xml"/>
+  <xi:include href="s390-vx-valgrind-s2.xml"/>
+</target>
Index: valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux.xml
===================================================================
--- /dev/null
+++ valgrind-3.14.0/coregrind/m_gdbserver/s390x-vx-linux.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2018 Free Software Foundation, Inc.
+
+     Copying and distribution of this file, with or without modification,
+     are permitted in any medium without royalty provided the copyright
+     notice and this notice are preserved.  -->
+
+<!-- S/390 64-bit user-level code.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+  <architecture>s390:64-bit</architecture>
+  <xi:include href="s390x-core64.xml"/>
+  <xi:include href="s390-acr.xml"/>
+  <xi:include href="s390-fpr.xml"/>
+  <xi:include href="s390x-linux64.xml"/>
+  <xi:include href="s390-vx.xml"/>
+</target>
Index: valgrind-3.14.0/coregrind/m_gdbserver/valgrind-low-s390x.c
===================================================================
--- valgrind-3.14.0.orig/coregrind/m_gdbserver/valgrind-low-s390x.c
+++ valgrind-3.14.0/coregrind/m_gdbserver/valgrind-low-s390x.c
@@ -88,9 +88,42 @@ static struct reg regs[] = {
   { "f14", 2592, 64 },
   { "f15", 2656, 64 },
   { "orig_r2", 2720, 64 },
+  { "v0l", 2784, 64 },
+  { "v1l", 2848, 64 },
+  { "v2l", 2912, 64 },
+  { "v3l", 2976, 64 },
+  { "v4l", 3040, 64 },
+  { "v5l", 3104, 64 },
+  { "v6l", 3168, 64 },
+  { "v7l", 3232, 64 },
+  { "v8l", 3296, 64 },
+  { "v9l", 3360, 64 },
+  { "v10l", 3424, 64 },
+  { "v11l", 3488, 64 },
+  { "v12l", 3552, 64 },
+  { "v13l", 3616, 64 },
+  { "v14l", 3680, 64 },
+  { "v15l", 3744, 64 },
+  { "v16", 3808, 128 },
+  { "v17", 3936, 128 },
+  { "v18", 4064, 128 },
+  { "v19", 4192, 128 },
+  { "v20", 4320, 128 },
+  { "v21", 4448, 128 },
+  { "v22", 4576, 128 },
+  { "v23", 4704, 128 },
+  { "v24", 4832, 128 },
+  { "v25", 4960, 128 },
+  { "v26", 5088, 128 },
+  { "v27", 5216, 128 },
+  { "v28", 5344, 128 },
+  { "v29", 5472, 128 },
+  { "v30", 5600, 128 },
+  { "v31", 5728, 128 },
 };
 static const char *expedite_regs[] = { "r14", "r15", "pswa", 0 };
-#define num_regs (sizeof (regs) / sizeof (regs[0]))
+#define num_regs_all (sizeof (regs) / sizeof (regs[0]))
+static int num_regs;
 
 static
 CORE_ADDR get_pc (void)
@@ -165,7 +198,7 @@ void transfer_register (ThreadId tid, in
    case 32: VG_(transfer) (&s390x->guest_a14, buf, dir, size, mod); break;
    case 33: VG_(transfer) (&s390x->guest_a15, buf, dir, size, mod); break;
    case 34: VG_(transfer) (&s390x->guest_fpc, buf, dir, size, mod); break;
-   case 35: VG_(transfer) (&s390x->guest_v0,  buf, dir, size, mod); break;
+   case 35: VG_(transfer) (&s390x->guest_v0.w64[0],  buf, dir, size, mod); 
break;
    case 36: VG_(transfer) (&s390x->guest_v1.w64[0],  buf, dir, size, mod); 
break;
    case 37: VG_(transfer) (&s390x->guest_v2.w64[0],  buf, dir, size, mod); 
break;
    case 38: VG_(transfer) (&s390x->guest_v3.w64[0],  buf, dir, size, mod); 
break;
@@ -182,18 +215,65 @@ void transfer_register (ThreadId tid, in
    case 49: VG_(transfer) (&s390x->guest_v14.w64[0], buf, dir, size, mod); 
break;
    case 50: VG_(transfer) (&s390x->guest_v15.w64[0], buf, dir, size, mod); 
break;
    case 51:  *mod = False; break; //GDBTD??? { "orig_r2", 0, 64 },
+   case 52: VG_(transfer) (&s390x->guest_v0.w64[1],  buf, dir, size, mod); 
break;
+   case 53: VG_(transfer) (&s390x->guest_v1.w64[1],  buf, dir, size, mod); 
break;
+   case 54: VG_(transfer) (&s390x->guest_v2.w64[1],  buf, dir, size, mod); 
break;
+   case 55: VG_(transfer) (&s390x->guest_v3.w64[1],  buf, dir, size, mod); 
break;
+   case 56: VG_(transfer) (&s390x->guest_v4.w64[1],  buf, dir, size, mod); 
break;
+   case 57: VG_(transfer) (&s390x->guest_v5.w64[1],  buf, dir, size, mod); 
break;
+   case 58: VG_(transfer) (&s390x->guest_v6.w64[1],  buf, dir, size, mod); 
break;
+   case 59: VG_(transfer) (&s390x->guest_v7.w64[1],  buf, dir, size, mod); 
break;
+   case 60: VG_(transfer) (&s390x->guest_v8.w64[1],  buf, dir, size, mod); 
break;
+   case 61: VG_(transfer) (&s390x->guest_v9.w64[1],  buf, dir, size, mod); 
break;
+   case 62: VG_(transfer) (&s390x->guest_v10.w64[1], buf, dir, size, mod); 
break;
+   case 63: VG_(transfer) (&s390x->guest_v11.w64[1], buf, dir, size, mod); 
break;
+   case 64: VG_(transfer) (&s390x->guest_v12.w64[1], buf, dir, size, mod); 
break;
+   case 65: VG_(transfer) (&s390x->guest_v13.w64[1], buf, dir, size, mod); 
break;
+   case 66: VG_(transfer) (&s390x->guest_v14.w64[1], buf, dir, size, mod); 
break;
+   case 67: VG_(transfer) (&s390x->guest_v15.w64[1], buf, dir, size, mod); 
break;
+   case 68: VG_(transfer) (&s390x->guest_v16, buf, dir, size, mod); break;
+   case 69: VG_(transfer) (&s390x->guest_v17, buf, dir, size, mod); break;
+   case 70: VG_(transfer) (&s390x->guest_v18, buf, dir, size, mod); break;
+   case 71: VG_(transfer) (&s390x->guest_v19, buf, dir, size, mod); break;
+   case 72: VG_(transfer) (&s390x->guest_v20, buf, dir, size, mod); break;
+   case 73: VG_(transfer) (&s390x->guest_v21, buf, dir, size, mod); break;
+   case 74: VG_(transfer) (&s390x->guest_v22, buf, dir, size, mod); break;
+   case 75: VG_(transfer) (&s390x->guest_v23, buf, dir, size, mod); break;
+   case 76: VG_(transfer) (&s390x->guest_v24, buf, dir, size, mod); break;
+   case 77: VG_(transfer) (&s390x->guest_v25, buf, dir, size, mod); break;
+   case 78: VG_(transfer) (&s390x->guest_v26, buf, dir, size, mod); break;
+   case 79: VG_(transfer) (&s390x->guest_v27, buf, dir, size, mod); break;
+   case 80: VG_(transfer) (&s390x->guest_v28, buf, dir, size, mod); break;
+   case 81: VG_(transfer) (&s390x->guest_v29, buf, dir, size, mod); break;
+   case 82: VG_(transfer) (&s390x->guest_v30, buf, dir, size, mod); break;
+   case 83: VG_(transfer) (&s390x->guest_v31, buf, dir, size, mod); break;
    default: vg_assert(0);
    }
 }
 
 static
+Bool have_vx (void)
+{
+   VexArch va;
+   VexArchInfo vai;
+   VG_(machine_get_VexArchInfo) (&va, &vai);
+   return (vai.hwcaps & VEX_HWCAPS_S390X_VX) != 0;
+}
+
+static
 const char* target_xml (Bool shadow_mode)
 {
    if (shadow_mode) {
-      return "s390x-generic-valgrind.xml";
+      if (have_vx())
+         return "s390x-vx-linux-valgrind.xml";
+      else
+         return "s390x-generic-valgrind.xml";
    } else {
-      return "s390x-generic.xml";
-   }  
+      if (have_vx())
+         return "s390x-vx-linux.xml";
+      else
+         return "s390x-generic.xml";
+   }
 }
 
 static CORE_ADDR** target_get_dtv (ThreadState *tst)
@@ -206,7 +286,7 @@ static CORE_ADDR** target_get_dtv (Threa
 }
 
 static struct valgrind_target_ops low_target = {
-   num_regs,
+   -1, // Override at init time.
    regs,
    17, //sp = r15, which is register offset 17 in regs
    transfer_register,
@@ -220,6 +300,11 @@ static struct valgrind_target_ops low_ta
 void s390x_init_architecture (struct valgrind_target_ops *target)
 {
    *target = low_target;
+   if (have_vx())
+      num_regs = num_regs_all;
+   else
+      num_regs = num_regs_all - 32; // Remove all VX registers.
+   target->num_regs = num_regs;
    set_register_cache (regs, num_regs);
    gdbserver_expedite_regs = expedite_regs;
 }
++++++ 0001-Bug-400490-s390x-Fix-register-allocation-for-VRs-vs-.patch ++++++
>From 71002d8a5111d02ce8049c55017a8d948c820e35 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Thu, 25 Oct 2018 13:47:12 +0200
Subject: [PATCH] Bug 400490 s390x: Fix register allocation for VRs vs FPRs

On s390x, if vector registers are available, they are fed to the register
allocator as if they were separate from the floating-point registers.  But
in fact the FPRs are embedded in the VRs.  So for instance, if both f3 and
v3 are allocated and used at the same time, corruption will result.

This is fixed by offering only the non-overlapping VRs, v16 to v31, to the
register allocator instead.
---
 NEWS                      |  1 +
 VEX/priv/host_s390_defs.c | 17 +++++++----------
 2 files changed, 8 insertions(+), 10 deletions(-)

Index: valgrind-3.14.0/VEX/priv/host_s390_defs.c
===================================================================
--- valgrind-3.14.0.orig/VEX/priv/host_s390_defs.c
+++ valgrind-3.14.0/VEX/priv/host_s390_defs.c
@@ -59,7 +59,6 @@ static UInt s390_tchain_load64_len(void)
 
 /* A mapping from register number to register index */
 static Int gpr_index[16];  // GPR regno -> register index
-static Int fpr_index[16];  // FPR regno -> register index
 static Int vr_index[32];   // VR regno -> register index
 
 HReg
@@ -73,7 +72,7 @@ s390_hreg_gpr(UInt regno)
 HReg
 s390_hreg_fpr(UInt regno)
 {
-   Int ix = fpr_index[regno];
+   Int ix = vr_index[regno];
    vassert(ix >= 0);
    return mkHReg(/*virtual*/False, HRcFlt64, regno, ix);
 }
@@ -463,11 +462,9 @@ getRRegUniverse_S390(void)
 
    RRegUniverse__init(ru);
 
-   /* Assign invalid values to the gpr/fpr/vr_index */
+   /* Assign invalid values to the gpr/vr_index */
    for (UInt i = 0; i < sizeof gpr_index / sizeof gpr_index[0]; ++i)
       gpr_index[i] = -1;
-   for (UInt i = 0; i < sizeof fpr_index / sizeof fpr_index[0]; ++i)
-      fpr_index[i] = -1;
    for (UInt i = 0; i < sizeof vr_index / sizeof vr_index[0]; ++i)
       vr_index[i] = -1;
 
@@ -494,17 +491,17 @@ getRRegUniverse_S390(void)
 
    ru->allocable_start[HRcFlt64] = ru->size;
    for (UInt regno = 8; regno <= 15; ++regno) {
-      fpr_index[regno] = ru->size;
+      vr_index[regno] = ru->size;
       ru->regs[ru->size++] = s390_hreg_fpr(regno);
    }
    for (UInt regno = 0; regno <= 7; ++regno) {
-      fpr_index[regno] = ru->size;
+      vr_index[regno] = ru->size;
       ru->regs[ru->size++] = s390_hreg_fpr(regno);
    }
    ru->allocable_end[HRcFlt64] = ru->size - 1;
 
    ru->allocable_start[HRcVec128] = ru->size;
-   for (UInt regno = 0; regno <= 31; ++regno) {
+   for (UInt regno = 16; regno <= 31; ++regno) {
       vr_index[regno] = ru->size;
       ru->regs[ru->size++] = s390_hreg_vr(regno);
    }
@@ -527,12 +524,12 @@ getRRegUniverse_S390(void)
    /* Sanity checking */
    for (UInt i = 0; i < sizeof gpr_index / sizeof gpr_index[0]; ++i)
       vassert(gpr_index[i] >= 0);
-   for (UInt i = 0; i < sizeof fpr_index / sizeof fpr_index[0]; ++i)
-      vassert(fpr_index[i] >= 0);
    for (UInt i = 0; i < sizeof vr_index / sizeof vr_index[0]; ++i)
       vassert(vr_index[i] >= 0);
                  
    initialised = True;
+
+   RRegUniverse__check_is_sane(ru);
    return ru;
 }
 
++++++ 0001-Bug-400491-s390x-Sign-extend-immediate-operand-of-LO.patch ++++++
>From 9545e9f96beda6e9f2205bdb3c3e96edaf8d9e2b Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Tue, 30 Oct 2018 17:06:38 +0100
Subject: [PATCH] Bug 400491 s390x: Sign-extend immediate operand of LOCHI and
 friends

The VEX implementation of each of the z/Architecture instructions LOCHI,
LOCHHI, and LOCGHI treats the immediate 16-bit operand as an unsigned
integer instead of a signed integer.  This is fixed.
---
 NEWS                       | 1 +
 VEX/priv/guest_s390_toIR.c | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

Index: valgrind-3.14.0/VEX/priv/guest_s390_toIR.c
===================================================================
--- valgrind-3.14.0.orig/VEX/priv/guest_s390_toIR.c
+++ valgrind-3.14.0/VEX/priv/guest_s390_toIR.c
@@ -16307,7 +16307,7 @@ static const HChar *
 s390_irgen_LOCHHI(UChar r1, UChar m3, UShort i2, UChar unused)
 {
    next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
-   put_gpr_w0(r1, mkU32(i2));
+   put_gpr_w0(r1, mkU32((UInt)(Int)(Short)i2));
 
    return "lochhi";
 }
@@ -16316,7 +16316,7 @@ static const HChar *
 s390_irgen_LOCHI(UChar r1, UChar m3, UShort i2, UChar unused)
 {
    next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
-   put_gpr_w1(r1, mkU32(i2));
+   put_gpr_w1(r1, mkU32((UInt)(Int)(Short)i2));
 
    return "lochi";
 }
@@ -16325,7 +16325,7 @@ static const HChar *
 s390_irgen_LOCGHI(UChar r1, UChar m3, UShort i2, UChar unused)
 {
    next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
-   put_gpr_dw0(r1, mkU64(i2));
+   put_gpr_dw0(r1, mkU64((UInt)(Int)(Short)i2));
 
    return "locghi";
 }
++++++ 0001-s390x-more-fixes.patch ++++++
>From d10cd86ee32bf76495f79c02df62fc242adbcbe3 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <[email protected]>
Date: Thu, 26 Jul 2018 16:35:24 +0200
Subject: [PATCH] s390x: More fixes for z13 support

This patch addresses the following:

* Fix the implementation of LOCGHI.  Previously Valgrind performed 32-bit
  sign extension instead of 64-bit sign extension on the immediate value.

* Advertise VXRS in HWCAP.  If no VXRS are advertised, but the program
  uses vector registers, this could cause problems with a glibc built with
  "-march=z13".
---
 VEX/priv/guest_s390_toIR.c          | 2 +-
 coregrind/m_initimg/initimg-linux.c | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/VEX/priv/guest_s390_toIR.c b/VEX/priv/guest_s390_toIR.c
index 9c4d79b87..50a5a4177 100644
--- a/VEX/priv/guest_s390_toIR.c
+++ b/VEX/priv/guest_s390_toIR.c
@@ -16325,7 +16325,7 @@ static const HChar *
 s390_irgen_LOCGHI(UChar r1, UChar m3, UShort i2, UChar unused)
 {
    next_insn_if(binop(Iop_CmpEQ32, s390_call_calculate_cond(m3), mkU32(0)));
-   put_gpr_dw0(r1, mkU64((UInt)(Int)(Short)i2));
+   put_gpr_dw0(r1, mkU64((ULong)(Long)(Short)i2));
 
    return "locghi";
 }
diff --git a/coregrind/m_initimg/initimg-linux.c 
b/coregrind/m_initimg/initimg-linux.c
index 61cc458bc..8a7f0d024 100644
--- a/coregrind/m_initimg/initimg-linux.c
+++ b/coregrind/m_initimg/initimg-linux.c
@@ -699,9 +699,9 @@ Addr setup_client_stack( void*  init_sp,
             }
 #           elif defined(VGP_s390x_linux)
             {
-               /* Advertise hardware features "below" TE only.  TE and VXRS
-                  (and anything above) are not supported by Valgrind. */
-               auxv->u.a_val &= VKI_HWCAP_S390_TE - 1;
+               /* Advertise hardware features "below" TE and VXRS.  TE itself
+                  and anything above VXRS is not supported by Valgrind. */
+               auxv->u.a_val &= (VKI_HWCAP_S390_TE - 1) | VKI_HWCAP_S390_VXRS;
             }
 #           elif defined(VGP_arm64_linux)
             {
-- 
2.17.0

++++++ Implement-emulated-system-registers.-Fixes-392146.patch ++++++
--- /var/tmp/diff_new_pack.Ms6TLR/_old  2018-11-28 11:12:43.466955489 +0100
+++ /var/tmp/diff_new_pack.Ms6TLR/_new  2018-11-28 11:12:43.470955483 +0100
@@ -10,11 +10,11 @@
  VEX/priv/guest_arm64_toIR.c    | 222 +++++++++++++++++++++++++++++++++
  3 files changed, 331 insertions(+)
 
-diff --git a/VEX/priv/guest_arm64_defs.h b/VEX/priv/guest_arm64_defs.h
-index b28f326c2..ae01e6f3b 100644
---- a/VEX/priv/guest_arm64_defs.h
-+++ b/VEX/priv/guest_arm64_defs.h
-@@ -126,6 +126,15 @@ extern ULong arm64g_dirtyhelper_MRS_CNTVCT_EL0 ( void );
+Index: valgrind-3.14.0/VEX/priv/guest_arm64_defs.h
+===================================================================
+--- valgrind-3.14.0.orig/VEX/priv/guest_arm64_defs.h
++++ valgrind-3.14.0/VEX/priv/guest_arm64_defs.h
+@@ -126,6 +126,15 @@ extern ULong arm64g_dirtyhelper_MRS_CNTV
  
  extern ULong arm64g_dirtyhelper_MRS_CNTFRQ_EL0 ( void );
  
@@ -30,11 +30,11 @@
  extern void  arm64g_dirtyhelper_PMULLQ ( /*OUT*/V128* res,
                                           ULong arg1, ULong arg2 );
  
-diff --git a/VEX/priv/guest_arm64_helpers.c b/VEX/priv/guest_arm64_helpers.c
-index 10065d547..c579c9e1b 100644
---- a/VEX/priv/guest_arm64_helpers.c
-+++ b/VEX/priv/guest_arm64_helpers.c
-@@ -788,6 +788,106 @@ ULong arm64g_dirtyhelper_MRS_CNTFRQ_EL0 ( void )
+Index: valgrind-3.14.0/VEX/priv/guest_arm64_helpers.c
+===================================================================
+--- valgrind-3.14.0.orig/VEX/priv/guest_arm64_helpers.c
++++ valgrind-3.14.0/VEX/priv/guest_arm64_helpers.c
+@@ -788,6 +788,106 @@ ULong arm64g_dirtyhelper_MRS_CNTFRQ_EL0
  #  endif
  }
  
@@ -141,11 +141,11 @@
  
  void arm64g_dirtyhelper_PMULLQ ( /*OUT*/V128* res, ULong arg1, ULong arg2 )
  {
-diff --git a/VEX/priv/guest_arm64_toIR.c b/VEX/priv/guest_arm64_toIR.c
-index e5af388e1..ed6c1ffa5 100644
---- a/VEX/priv/guest_arm64_toIR.c
-+++ b/VEX/priv/guest_arm64_toIR.c
-@@ -6872,6 +6872,228 @@ Bool dis_ARM64_branch_etc(/*MB_OUT*/DisResult* dres, 
UInt insn,
+Index: valgrind-3.14.0/VEX/priv/guest_arm64_toIR.c
+===================================================================
+--- valgrind-3.14.0.orig/VEX/priv/guest_arm64_toIR.c
++++ valgrind-3.14.0/VEX/priv/guest_arm64_toIR.c
+@@ -6891,6 +6891,228 @@ Bool dis_ARM64_branch_etc(/*MB_OUT*/DisR
     }
  
     /* ------------------ M{SR,RS} ------------------ */
@@ -374,6 +374,3 @@
     /* ---- Cases for TPIDR_EL0 ----
        0xD51BD0 010 Rt   MSR tpidr_el0, rT
        0xD53BD0 010 Rt   MRS rT, tpidr_el0
--- 
-2.17.0
-

++++++ armv6-support.diff ++++++
--- /var/tmp/diff_new_pack.Ms6TLR/_old  2018-11-28 11:12:43.478955472 +0100
+++ /var/tmp/diff_new_pack.Ms6TLR/_new  2018-11-28 11:12:43.478955472 +0100
@@ -2,7 +2,7 @@
 ===================================================================
 --- configure.ac.orig
 +++ configure.ac
-@@ -234,7 +234,7 @@ case "${host_cpu}" in
+@@ -252,7 +252,7 @@ case "${host_cpu}" in
          ARCH_MAX="s390x"
          ;;
  

++++++ valgrind-3.13.0.tar.bz2 -> valgrind-3.14.0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/valgrind/valgrind-3.13.0.tar.bz2 
/work/SRC/openSUSE:Factory/.valgrind.new.19453/valgrind-3.14.0.tar.bz2 differ: 
char 11, line 1

++++++ valgrind.xen.patch ++++++
++++ 2647 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/valgrind/valgrind.xen.patch
++++ and /work/SRC/openSUSE:Factory/.valgrind.new.19453/valgrind.xen.patch


Reply via email to