Hello community,

here is the log from the commit of package valgrind for openSUSE:Factory 
checked in at 2016-02-22 08:55:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/valgrind (Old)
 and      /work/SRC/openSUSE:Factory/.valgrind.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "valgrind"

Changes:
--------
--- /work/SRC/openSUSE:Factory/valgrind/valgrind.changes        2015-08-21 
07:37:42.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.valgrind.new/valgrind.changes   2016-02-22 
08:56:00.000000000 +0100
@@ -1,0 +2,12 @@
+Mon Feb 15 16:04:59 UTC 2016 - dmuel...@suse.com
+
+- update to 3.11.0:
+  * 3.11.0 is a feature release with many improvements and the usual
+  collection of bug fixes.
+- replace gcc-version.patch with gcc5.patch: This is the upstream
+  version
+- drop valgrind-linux-4.0.patch: merged upstream
+- add svn-r15766.patch: Fix valgrind with recent kernels
+- jit-register-unregister.diff commented out, needs porting
+
+-------------------------------------------------------------------

Old:
----
  gcc-version.patch
  valgrind-3.10.1.tar.bz2
  valgrind-linux-4.0.patch

New:
----
  gcc5.patch
  svn-r15766.patch
  valgrind-3.11.0.tar.bz2

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

Other differences:
------------------
++++++ valgrind.spec ++++++
--- /var/tmp/diff_new_pack.SGLTxT/_old  2016-02-22 08:56:01.000000000 +0100
+++ /var/tmp/diff_new_pack.SGLTxT/_new  2016-02-22 08:56:01.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package valgrind
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -25,7 +25,7 @@
 %define building_docs 0
 %endif
 Name:           valgrind
-Version:        3.10.1
+Version:        3.11.0
 Release:        0
 Summary:        Memory Management Debugger
 License:        GPL-2.0+
@@ -37,8 +37,8 @@
 Patch1:         jit-register-unregister.diff
 Patch2:         armv6-support.diff
 Patch3:         glibc-version.patch
-Patch4:         gcc-version.patch
-Patch5:         valgrind-linux-4.0.patch
+Patch4:         gcc5.patch
+Patch5:         svn-r15766.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  docbook_4
@@ -110,22 +110,26 @@
 
 %prep
 %setup -q
-%patch1
+# needs porting to 3.11
+##%patch1
 %patch2
 %patch3 -p1
 %patch4
 %patch5
 
 %build
+export FLAGS="%{optflags}"
 %ifarch %arm
 # Valgrind doesn't support compiling for Thumb yet. Remove when it gets
 # native thumb support.
-RPM_OPT_FLAGS=${RPM_OPT_FLAGS/-mthumb/-mthumb-interwork -marm}
+FLAGS=${FLAGS/-mthumb/-mthumb-interwork -marm}
 %endif
 # not a good idea to build valgrind with fortify, as it does not link glibc
-RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-D_FORTIFY_SOURCE=2/}"
-export CFLAGS="%{optflags}"
-export CXXFLAGS="%{optflags}"
+FLAGS="${FLAGS/-D_FORTIFY_SOURCE=2/}"
+FLAGS="${FLAGS/-fstack-protector/}"
+export CFLAGS="$FLAGS"
+export CXXFLAGS="$FLAGS"
+export FFLAGS="$FLAGS"
 %if 0%{?suse_version} > 1100
 autoreconf -fi
 %endif

++++++ armv6-support.diff ++++++
--- /var/tmp/diff_new_pack.SGLTxT/_old  2016-02-22 08:56:01.000000000 +0100
+++ /var/tmp/diff_new_pack.SGLTxT/_new  2016-02-22 08:56:01.000000000 +0100
@@ -1,6 +1,8 @@
---- configure.ac
+Index: configure.ac
+===================================================================
+--- configure.ac.orig
 +++ configure.ac
-@@ -190,7 +190,7 @@
+@@ -234,7 +234,7 @@ case "${host_cpu}" in
          ARCH_MAX="s390x"
          ;;
  

++++++ gcc-version.patch -> gcc5.patch ++++++
--- /work/SRC/openSUSE:Factory/valgrind/gcc-version.patch       2015-04-06 
00:25:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.valgrind.new/gcc5.patch 2016-02-22 
08:55:59.000000000 +0100
@@ -1,13 +1,58 @@
+------------------------------------------------------------------------
+r15773 | bart | 2016-01-25 05:27:25 +0100 (Mo, 25. Jan 2016) | 7 Zeilen
+
+configure.ac: Port to gcc 5
+
+Apparently gcc 5 behaves as follows:
+$ gcc -dumpversion
+5
+
+
+------------------------------------------------------------------------
 Index: configure.ac
 ===================================================================
---- configure.ac.orig
-+++ configure.ac
-@@ -138,7 +138,7 @@ case "${is_clang}-${gcc_version}" in
-      notclang-4.*)
-       AC_MSG_RESULT([ok (${gcc_version})])
+--- configure.ac       (Revision 15772)
++++ configure.ac       (Revision 15773)
+@@ -160,7 +160,7 @@ case "${is_clang}-${gcc_version}" in
+      icc-1[[3-9]].*)
+       AC_MSG_RESULT([ok (ICC version ${gcc_version})])
        ;;
--     notclang-5.*)
-+     notclang-5*)
+-     notclang-[[3-9]].*|notclang-[[1-9][0-9]]*)
++     notclang-[[3-9]]|notclang-[[3-9]].*|notclang-[[1-9][0-9]]*)
        AC_MSG_RESULT([ok (${gcc_version})])
        ;;
-      clang-2.9|clang-3.*|clang-4.*)
+      clang-2.9|clang-[[3-9]].*|clang-[[1-9][0-9]]*)
+Index: drd/tests/std_thread2.cpp
+===================================================================
+--- drd/tests/std_thread2.cpp  (Revision 15772)
++++ drd/tests/std_thread2.cpp  (Revision 15773)
+@@ -26,6 +26,7 @@ int main(int argc, char** argv)
+   return 0;
+ }
+ 
++#if defined(__GNUC__) && __GNUC__ -0 < 6
+ //
+ // From libstdc++-v3/src/c++11/thread.cc
+ //
+@@ -70,3 +71,4 @@ namespace std
+     }
+   }
+ }
++#endif
+Index: drd/tests/std_thread.cpp
+===================================================================
+--- drd/tests/std_thread.cpp   (Revision 15772)
++++ drd/tests/std_thread.cpp   (Revision 15773)
+@@ -21,6 +21,7 @@ int main(int argc, char** argv)
+   return 0;
+ }
+ 
++#if defined(__GNUC__) && __GNUC__ -0 < 6
+ //
+ // From libstdc++-v3/src/c++11/thread.cc
+ //
+@@ -65,3 +66,4 @@ namespace std
+     }
+   }
+ }
++#endif

++++++ glibc-version.patch ++++++
--- /var/tmp/diff_new_pack.SGLTxT/_old  2016-02-22 08:56:01.000000000 +0100
+++ /var/tmp/diff_new_pack.SGLTxT/_new  2016-02-22 08:56:01.000000000 +0100
@@ -1,8 +1,8 @@
-Index: valgrind-3.10.1/configure.ac
+Index: valgrind-3.11.0/configure.ac
 ===================================================================
---- valgrind-3.10.1.orig/configure.ac
-+++ valgrind-3.10.1/configure.ac
-@@ -1018,6 +1018,20 @@ case "${GLIBC_VERSION}" in
+--- valgrind-3.11.0.orig/configure.ac
++++ valgrind-3.11.0/configure.ac
+@@ -1049,6 +1049,20 @@ case "${GLIBC_VERSION}" in
        DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
        DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
        ;;

++++++ jit-register-unregister.diff ++++++
--- /var/tmp/diff_new_pack.SGLTxT/_old  2016-02-22 08:56:01.000000000 +0100
+++ /var/tmp/diff_new_pack.SGLTxT/_new  2016-02-22 08:56:01.000000000 +0100
@@ -2,7 +2,7 @@
 ===================================================================
 --- coregrind/m_debuginfo/debuginfo.c.orig
 +++ coregrind/m_debuginfo/debuginfo.c
-@@ -50,6 +50,7 @@
+@@ -49,6 +49,7 @@
  #include "pub_core_oset.h"
  #include "pub_core_stacktrace.h" // VG_(get_StackTrace) XXX: circular 
dependency
  #include "pub_core_ume.h"
@@ -10,8 +10,8 @@
  
  #include "priv_misc.h"           /* dinfo_zalloc/free */
  #include "priv_image.h"
-@@ -1319,6 +1320,132 @@ void VG_(di_notify_pdb_debuginfo)( Int f
- #endif /* defined(VGO_linux) || defined(VGO_darwin) */
+@@ -1430,6 +1431,132 @@ void VG_(di_notify_pdb_debuginfo)( Int f
+ #endif /* defined(VGO_linux) || defined(VGO_darwin) || defined(VGO_solaris) */
  
  
 +/* Storing and retrieving information caused by JITted code.  TODO:
@@ -143,32 +143,31 @@
  /*------------------------------------------------------------*/
  /*---                                                      ---*/
  /*--- TOP LEVEL: QUERYING EXISTING DEBUG INFO              ---*/
-@@ -1638,8 +1765,19 @@ Bool get_sym_name ( Bool do_cxx_demangli
+@@ -1755,8 +1882,18 @@ Bool get_sym_name ( Bool do_cxx_demangli
     PtrdiffT   offset;
  
     search_all_symtabs ( a, &di, &sno, match_anywhere_in_sym, findText );
--   if (di == NULL) 
+-   if (di == NULL) {
 +   if (di == NULL)
 +   {
+       *buf = "";
 +      if (findText)
 +      {
-+       JitEntry* je = jit_lookup (a, buf, nbuf);
-+       if (!je)
-+          return False;
-+       if (offsetP)
-+          *offsetP = a - je->start;
-+       return True;
++        JitEntry* je = jit_lookup (a, buf, nbuf);
++        if (!je)
++           return False;
++        if (offsetP)
++           *offsetP = a - je->start;
++        return True;
 +      }
        return False;
-+   }
+    }
  
-    vg_assert(di->symtab[sno].pri_name);
-    VG_(demangle) ( do_cxx_demangling, do_z_demangling,
 Index: coregrind/m_scheduler/scheduler.c
 ===================================================================
 --- coregrind/m_scheduler/scheduler.c.orig
 +++ coregrind/m_scheduler/scheduler.c
-@@ -2062,6 +2062,16 @@ void do_client_request ( ThreadId tid )
+@@ -2087,6 +2087,16 @@ void do_client_request ( ThreadId tid )
           LibVEX_InitIRI ( (IRICB *)arg[1] );
           break;
  
@@ -206,7 +205,7 @@
 ===================================================================
 --- include/valgrind.h.orig
 +++ include/valgrind.h
-@@ -6170,6 +6170,10 @@ typedef
+@@ -6706,6 +6706,10 @@ typedef
            /* Querying of debug info. */
            VG_USERREQ__MAP_IP_TO_SRCLOC = 0x1701,
  
@@ -217,7 +216,7 @@
            /* Disable/enable error reporting level.  Takes a single
               Word arg which is the delta to this thread's error
               disablement indicator.  Hence 1 disables or further
-@@ -6337,6 +6341,19 @@ VALGRIND_PRINTF_BACKTRACE(const char *fo
+@@ -6873,6 +6877,19 @@ VALGRIND_PRINTF_BACKTRACE(const char *fo
                                      _qyy_arg1, _qyy_arg2,               \
                                      _qyy_arg3, 0)
  

++++++ svn-r15766.patch ++++++
------------------------------------------------------------------------
r15766 | mjw | 2016-01-21 12:37:43 +0100 (Do, 21. Jan 2016) | 13 Zeilen

Bug #357833 Setting RLIMIT_DATA to zero breaks with linux 4.5+

We used to set the process datasize rlimit to zero to prevent
any internal use of brk() from having any effect. But later
linux kernels redefine RLIMIT_DATA as the size of any data
areas, including some dynamic mmap memory allocations.

See bug #357833 for the commit that went into linux 4.5
changing the definition of RLIMIT_DATA. So don't mess with
RLIMIT_DATA anymore. Just remember it for use in the syscall
wrappers.

This also cleans up some hacks around the execv and spawn wrappers.
------------------------------------------------------------------------
Index: coregrind/m_syswrap/syswrap-generic.c
===================================================================
--- coregrind/m_syswrap/syswrap-generic.c.orig
+++ coregrind/m_syswrap/syswrap-generic.c
@@ -3014,9 +3014,6 @@ PRE(sys_execve)
       vg_assert(j == tot_args+1);
    }
 
-   /* restore the DATA rlimit for the child */
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
-
    /*
       Set the signal state up for exec.
 
Index: coregrind/m_syswrap/syswrap-solaris.c
===================================================================
--- coregrind/m_syswrap/syswrap-solaris.c.orig
+++ coregrind/m_syswrap/syswrap-solaris.c
@@ -1539,21 +1539,12 @@ PRE(sys_spawn)
 #undef COPY_CHAR_TO_ARGENV
 #undef COPY_STRING_TOARGENV
 
-   /* HACK: Temporarily restore the DATA rlimit for spawned child.
-      This is a terrible hack to provide sensible brk limit for child. */
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
-
    /* Actual spawn() syscall. */
    SysRes res = VG_(do_syscall5)(__NR_spawn, (UWord) path, (UWord) attrs,
                                  attrs_size, (UWord) argenv, argenv_size);
    SET_STATUS_from_SysRes(res);
    VG_(free)(argenv);
 
-   /* Restore DATA rlimit back to its previous value set in m_main.c. */
-   struct vki_rlimit zero = { 0, 0 };
-   zero.rlim_max = VG_(client_rlimit_data).rlim_max;
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &zero);
-
    if (SUCCESS) {
       PRINT("   spawn: process %d spawned child %ld\n", VG_(getpid)(), RES);
    }
@@ -3619,9 +3610,6 @@ PRE(sys_execve)
       VG_(sigprocmask)(VKI_SIG_SETMASK, &tst->sig_mask, NULL);
    }
 
-   /* Restore the DATA rlimit for the child. */
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
-
    /* Debug-only printing. */
    if (0) {
       HChar **cpp;
Index: coregrind/m_main.c
===================================================================
--- coregrind/m_main.c.orig
+++ coregrind/m_main.c
@@ -1627,7 +1627,6 @@ Int valgrind_main ( Int argc, HChar **ar
    Bool    logging_to_fd      = False;
    const HChar* xml_fname_unexpanded = NULL;
    Int     loglevel, i;
-   struct vki_rlimit zero = { 0, 0 };
    XArray* addr2dihandle = NULL;
 
    //============================================================
@@ -1800,13 +1799,15 @@ Int valgrind_main ( Int argc, HChar **ar
    VG_(debugLog)(1, "main", "... %s\n", VG_(name_of_launcher));
 
    //--------------------------------------------------------------
-   // Get the current process datasize rlimit, and set it to zero.
-   // This prevents any internal uses of brk() from having any effect.
-   // We remember the old value so we can restore it on exec, so that
-   // child processes will have a reasonable brk value.
+   // We used to set the process datasize rlimit to zero to prevent
+   // any internal use of brk() from having any effect. But later
+   // linux kernels redefine RLIMIT_DATA as the size of any data
+   // areas, including some dynamic mmap memory allocations.
+   // See bug #357833 for the commit that went into linux 4.5
+   // changing the definition of RLIMIT_DATA. So don't mess with
+   // RLIMIT_DATA here now anymore. Just remember it for use in
+   // the syscall wrappers.
    VG_(getrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
-   zero.rlim_max = VG_(client_rlimit_data).rlim_max;
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &zero);
 
    // Get the current process stack rlimit.
    VG_(getrlimit)(VKI_RLIMIT_STACK, &VG_(client_rlimit_stack));
Index: coregrind/m_libcproc.c
===================================================================
--- coregrind/m_libcproc.c.orig
+++ coregrind/m_libcproc.c
@@ -450,9 +450,6 @@ void VG_(execv) ( const HChar* filename,
    HChar** envp;
    SysRes res;
 
-   /* restore the DATA rlimit for the child */
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
-
    envp = VG_(env_clone)(VG_(client_envp));
    VG_(env_remove_valgrind_env_stuff)( envp, True /*ro_strings*/, NULL );
 
@@ -511,17 +508,9 @@ Int VG_(spawn) ( const HChar *filename,
 #  undef COPY_CHAR_TO_ARGENV
 #  undef COPY_STRING_TOARGENV
 
-   /* HACK: Temporarily restore the DATA rlimit for spawned child. */
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &VG_(client_rlimit_data));
-
    SysRes res = VG_(do_syscall5)(__NR_spawn, (UWord) filename, (UWord) NULL, 0,
                                  (UWord) argenv, argenv_size);
 
-   /* Restore DATA rlimit back to its previous value set in m_main.c. */
-   struct vki_rlimit zero = { 0, 0 };
-   zero.rlim_max = VG_(client_rlimit_data).rlim_max;
-   VG_(setrlimit)(VKI_RLIMIT_DATA, &zero);
-
    VG_(free)(argenv);
    for (HChar **p = envp; *p != NULL; p++) {
       VG_(free)(*p);
++++++ valgrind-3.10.1.tar.bz2 -> valgrind-3.11.0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/valgrind/valgrind-3.10.1.tar.bz2 
/work/SRC/openSUSE:Factory/.valgrind.new/valgrind-3.11.0.tar.bz2 differ: char 
12, line 1


Reply via email to