Hello community,

here is the log from the commit of package valgrind for openSUSE:Factory 
checked in at 2018-09-03 10:33:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/valgrind (Old)
 and      /work/SRC/openSUSE:Factory/.valgrind.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "valgrind"

Mon Sep  3 10:33:30 2018 rev:109 rq:632193 version:3.13.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/valgrind/valgrind.changes        2018-06-27 
10:15:19.309351836 +0200
+++ /work/SRC/openSUSE:Factory/.valgrind.new/valgrind.changes   2018-09-03 
10:33:31.916426530 +0200
@@ -1,0 +2,13 @@
+Tue Aug 28 19:39:14 UTC 2018 - [email protected]
+
+- Filter out -m64 from optflags, breaks build of 32 bit parts
+- Cleanup, remove suse_version < 1100 conditionals
+- Use %license for COPYING, COPYING.DOCS
+
+-------------------------------------------------------------------
+Mon Aug 27 22:22:17 UTC 2018 - [email protected]
+
+- Fix missing debuginfo with current binutils, boo#1103239
+  0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch

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

Other differences:
------------------
++++++ valgrind.spec ++++++
--- /var/tmp/diff_new_pack.2nzRKG/_old  2018-09-03 10:33:32.824428867 +0200
+++ /var/tmp/diff_new_pack.2nzRKG/_new  2018-09-03 10:33:32.828428877 +0200
@@ -19,11 +19,8 @@
 # during building the major version of glibc is built into the suppression file
 %define glibc_main_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut 
-d. -f1)
 %define glibc_major_version %(getconf GNU_LIBC_VERSION | cut -d' ' -f2 | cut 
-d. -f2)
-%if 0%{?suse_version} > 1100
 %define building_docs 1
-%else
-%define building_docs 0
-%endif
+
 Name:           valgrind
 Version:        3.13.0
 Release:        0
@@ -39,6 +36,8 @@
 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
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  docbook_4
@@ -56,9 +55,6 @@
 BuildRequires:  gcc-32bit
 BuildRequires:  glibc-devel-32bit
 %endif
-%if 0%{?suse_version} <= 1100
-Provides:       valgrind-devel = %{version}
-%endif
 
 %description
 Valgrind checks all memory operations in an application, like read,
@@ -80,7 +76,6 @@
 memory, but is usually still usable. Valgrind is still in development,
 but it has been successfully used to optimize several KDE applications.
 
-%if 0%{?suse_version} > 1100
 %package devel
 Summary:        Memory Management Debugger
 Group:          Development/Tools/Debuggers
@@ -106,7 +101,6 @@
 memory, but is usually still usable. Valgrind is still in development,
 but it has been successfully used to optimize several KDE applications.
 
-%endif
 
 %prep
 %setup -q
@@ -116,6 +110,7 @@
 %patch2
 %patch3
 %patch4 -p1
+%patch5 -p1
 
 %build
 export FLAGS="%{optflags}"
@@ -128,12 +123,13 @@
 FLAGS="${FLAGS/-D_FORTIFY_SOURCE=2/}"
 FLAGS="${FLAGS/-fstack-protector-strong/}"
 FLAGS="${FLAGS/-fstack-protector/}"
+# -m64 / -m32 is set explicitly everywhere, do not override it
+FLAGS="${FLAGS/-m64/}"
 export CFLAGS="$FLAGS"
 export CXXFLAGS="$FLAGS"
 export FFLAGS="$FLAGS"
-%if 0%{?suse_version} > 1100
 autoreconf -fi
-%endif
+
 export GDB=%{_bindir}/gdb
 %configure \
 %ifarch aarch64
@@ -156,10 +152,10 @@
      mv %{buildroot}%{_datadir}/doc/valgrind %{buildroot}/%{_defaultdocdir}
 fi
 mkdir -p %{buildroot}%{_docdir}/%{name}
-cp -a README* NEWS AUTHORS COPYING COPYING.DOCS 
%{buildroot}/%{_defaultdocdir}/%{name}
+cp -a README* NEWS AUTHORS %{buildroot}/%{_defaultdocdir}/%{name}
 
 %files
-%defattr(-,root,root)
+%license COPYING COPYING.DOCS 
 %{_bindir}/*
 %doc %{_defaultdocdir}/%{name}
 %doc %{_mandir}/*/*
@@ -265,10 +261,7 @@
 %{_libdir}/valgrind/s390x-linux64-valgrind-s*.xml
 %{_libdir}/valgrind/s390x-linux64.xml
 
-%if 0%{?suse_version} > 1100
 %files devel
-%defattr(-,root,root)
-%endif
 %{_libdir}/valgrind/lib*.a
 %{_includedir}/valgrind
 %{_libdir}/pkgconfig/valgrind.pc

++++++ 0001-Accept-read-only-PT_LOAD-segments-and-.rodata.patch ++++++
>From cb72566ac3af13889f7ae88068c3b3ee6a6b757b Mon Sep 17 00:00:00 2001
From: Mark Wielaard <[email protected]>
Date: Thu, 12 Jul 2018 13:56:00 +0200
Subject: [PATCH] Accept read-only PT_LOAD segments and .rodata.

The new binutils ld -z separate-code option creates multiple read-only
PT_LOAD segments and might place .rodata in a non-executable segment.

Allow and keep track of separate read-only segments and allow a readonly
page with .rodata section.

Based on patches from Tom Hughes <[email protected]> and
H.J. Lu <[email protected]>.

https://bugs.kde.org/show_bug.cgi?id=395682

[sbruens] Backported to 3.13.0 release
---
 coregrind/m_debuginfo/debuginfo.c |  2 --
 coregrind/m_debuginfo/readelf.c   | 34 +++++++++++++++++++++++--------
 2 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/coregrind/m_debuginfo/debuginfo.c 
b/coregrind/m_debuginfo/debuginfo.c
index 24814d8..2cf433a 100644
--- a/coregrind/m_debuginfo/debuginfo.c
+++ b/coregrind/m_debuginfo/debuginfo.c
@@ -957,9 +957,7 @@ ULong VG_(di_notify_mmap)( Addr a, Bool allow_SkFileV, Int 
use_fd )
 #    error "Unknown platform"
 #  endif
 
-#  if defined(VGP_x86_darwin) && DARWIN_VERS >= DARWIN_10_7
    is_ro_map = seg->hasR && !seg->hasW && !seg->hasX;
-#  endif
 
 #  if defined(VGO_solaris)
    is_rx_map = seg->hasR && seg->hasX && !seg->hasW;
diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c
index 3c8e62b..34a40c9 100644
--- a/coregrind/m_debuginfo/readelf.c
+++ b/coregrind/m_debuginfo/readelf.c
@@ -1785,7 +1785,7 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di )
                Bool loaded = False;
                for (j = 0; j < VG_(sizeXA)(di->fsm.maps); j++) {
                   const DebugInfoMapping* map = VG_(indexXA)(di->fsm.maps, j);
-                  if (   (map->rx || map->rw)
+                  if (   (map->rx || map->rw || map->ro)
                       && map->size > 0 /* stay sane */
                       && a_phdr.p_offset >= map->foff
                       && a_phdr.p_offset <  map->foff + map->size
@@ -1816,6 +1816,16 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di )
                            i, (UWord)item.bias);
                         loaded = True;
                      }
+                     if (map->ro
+                         && (a_phdr.p_flags & (PF_R | PF_W | PF_X))
+                            == PF_R) {
+                        item.exec = False;
+                        VG_(addToXA)(svma_ranges, &item);
+                        TRACE_SYMTAB(
+                           "PT_LOAD[%ld]:   acquired as ro, bias 0x%lx\n",
+                           i, (UWord)item.bias);
+                        loaded = True;
+                     }
                   }
                }
                if (!loaded) {
@@ -2083,17 +2093,25 @@ Bool ML_(read_elf_debug_info) ( struct _DebugInfo* di )
          }
       }
 
-      /* Accept .rodata where mapped as rx (data), even if zero-sized */
+      /* Accept .rodata where mapped as rx or rw (data), even if zero-sized */
       if (0 == VG_(strcmp)(name, ".rodata")) {
-         if (inrx && !di->rodata_present) {
-            di->rodata_present = True;
+         if (!di->rodata_present) {
             di->rodata_svma = svma;
-            di->rodata_avma = svma + inrx->bias;
+            di->rodata_avma = svma;
             di->rodata_size = size;
-            di->rodata_bias = inrx->bias;
             di->rodata_debug_svma = svma;
-            di->rodata_debug_bias = inrx->bias;
-                                    /* NB was 'inrw' prior to r11794 */
+            if (inrx) {
+               di->rodata_avma += inrx->bias;
+               di->rodata_bias = inrx->bias;
+               di->rodata_debug_bias = inrx->bias;
+            } else if (inrw) {
+               di->rodata_avma += inrw->bias;
+               di->rodata_bias = inrw->bias;
+               di->rodata_debug_bias = inrw->bias;
+            } else {
+               BAD(".rodata");
+            }
+            di->rodata_present = True;
             TRACE_SYMTAB("acquiring .rodata svma = %#lx .. %#lx\n",
                          di->rodata_svma,
                          di->rodata_svma + di->rodata_size - 1);
-- 
2.18.0


Reply via email to