Merge pull request #1453 from alihanozturk/master

valgrind:update 3.11
This commit is contained in:
yusuf
2016-03-29 17:52:22 +03:00
6 changed files with 155 additions and 101 deletions
+3 -3
View File
@@ -14,7 +14,7 @@
<IsA>app:console</IsA>
<Summary>GStreamer streaming media framework runtime</Summary>
<Description>GStreamer is a streaming media framework, based on graphs of filters which operate on media data. Applications using this library can do anything from real-time sound processing to playing videos, and just about anything else media-related.</Description>
<Archive sha1sum="6c0fa50d42c039eb26c1f2eb5f8dd86ab35118e7" type="tarxz">http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.4.5.tar.xz</Archive>
<Archive sha1sum="03d678ced697871a71ae229ef5f9c3ef18640898" type="tarxz">https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.6.3.tar.xz</Archive>
<BuildDependencies>
<Dependency>check</Dependency>
<Dependency>valgrind</Dependency>
@@ -77,8 +77,8 @@
<History>
<Update release="1">
<Date>2015-04-18</Date>
<Version>1.4.5</Version>
<Date>2016-03-29</Date>
<Version>1.6.3</Version>
<Comment>First release</Comment>
<Name>Yusuf Aydemir</Name>
<Email>yusuf.aydemir@pisilinux.org</Email>
+2 -1
View File
@@ -10,7 +10,8 @@ from pisi.actionsapi import shelltools
from pisi.actionsapi import get
def setup():
autotools.autoreconf("-vfi")
shelltools.export("CFLAGS", get.CFLAGS().replace("-fstack-protector",""))
shelltools.export("CPPFLAGS", get.CXXFLAGS().replace("-fstack-protector",""))
autotools.configure("--without-mpicc")
def build():
@@ -0,0 +1,140 @@
------------------------------------------------------------------------
r15766 | mjw | 2016-01-21 03:37:43 -0800 (Thu, 21 Jan 2016) | 13 lines
Changed paths:
M /trunk/NEWS
M /trunk/coregrind/m_libcproc.c
M /trunk/coregrind/m_main.c
M /trunk/coregrind/m_syswrap/syswrap-generic.c
M /trunk/coregrind/m_syswrap/syswrap-solaris.c
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 (revision 15765)
+++ coregrind/m_syswrap/syswrap-generic.c (revision 15766)
@@ -3014,9 +3014,6 @@
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 (revision 15765)
+++ coregrind/m_syswrap/syswrap-solaris.c (revision 15766)
@@ -1589,10 +1589,6 @@
#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);
@@ -1599,11 +1595,6 @@
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);
}
@@ -3794,9 +3785,6 @@
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 (revision 15765)
+++ coregrind/m_main.c (revision 15766)
@@ -1627,7 +1627,6 @@
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 @@
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 (revision 15765)
+++ coregrind/m_libcproc.c (revision 15766)
@@ -450,9 +450,6 @@
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 @@
# 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);
@@ -1,37 +0,0 @@
diff -Naur valgrind-3.9.0-orig/configure valgrind-3.9.0/configure
--- valgrind-3.9.0-orig/configure 2013-11-01 09:33:32.000000000 +1000
+++ valgrind-3.9.0/configure 2014-02-08 09:28:06.063248544 +1000
@@ -6689,6 +6689,16 @@
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.19)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5
+$as_echo "2.19 family" >&6; }
+
+$as_echo "#define GLIBC_2_19 1" >>confdefs.h
+
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
$as_echo "Darwin" >&6; }
diff -Naur valgrind-3.9.0-orig/configure.ac valgrind-3.9.0/configure.ac
--- valgrind-3.9.0-orig/configure.ac 2013-11-01 09:28:16.000000000 +1000
+++ valgrind-3.9.0/configure.ac 2014-02-08 09:27:38.870385366 +1000
@@ -918,6 +918,13 @@
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.19)
+ AC_MSG_RESULT(2.19 family)
+ AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.19.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
AC_MSG_RESULT(Darwin)
AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
@@ -1,54 +0,0 @@
diff -Naur valgrind-3.9.0-orig/configure valgrind-3.9.0/configure
--- valgrind-3.9.0-orig/configure 2013-11-01 09:33:32.000000000 +1000
+++ valgrind-3.9.0/configure 2014-02-08 09:28:06.063248544 +1000
@@ -6689,6 +6689,26 @@
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.20)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.20 family" >&5
+$as_echo "2.20 family" >&6; }
+
+$as_echo "#define GLIBC_2_20 1" >>confdefs.h
+
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
+ 2.21)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.21 family" >&5
+$as_echo "2.21 family" >&6; }
+
+$as_echo "#define GLIBC_2_21 1" >>confdefs.h
+
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
$as_echo "Darwin" >&6; }
diff -Naur valgrind-3.9.0-orig/configure.ac valgrind-3.9.0/configure.ac
--- valgrind-3.9.0-orig/configure.ac 2013-11-01 09:28:16.000000000 +1000
+++ valgrind-3.9.0/configure.ac 2014-02-08 09:27:38.870385366 +1000
@@ -918,6 +918,20 @@
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.20)
+ AC_MSG_RESULT(2.20 family)
+ AC_DEFINE([GLIBC_2_20], 1, [Define to 1 if you're using glibc 2.20.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
+ 2.21)
+ AC_MSG_RESULT(2.21 family)
+ AC_DEFINE([GLIBC_2_21], 1, [Define to 1 if you're using glibc 2.21.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
darwin)
AC_MSG_RESULT(Darwin)
AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
+10 -6
View File
@@ -1,4 +1,3 @@
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
@@ -13,18 +12,23 @@
<IsA>app:console</IsA>
<Summary>Memory access debugger for X86 and PPC Linux platforms</Summary>
<Description>Valgrind is an award-winning suite of tools for debugging and profiling Linux programs. With the tools that come with Valgrind, you can automatically detect many memory management and threading bugs, avoiding hours of frustrating bug-hunting, making your programs more stable. You can also perform detailed profiling, to speed up and reduce memory use of your programs.</Description>
<Archive sha1sum="15518427de842547ffa84eff8b2b67f3b16581a8" type="tarbz2">http://www.valgrind.org/downloads/valgrind-3.10.1.tar.bz2</Archive>
<Archive sha1sum="340757e91d9e83591158fe8bb985c6b11bc53de5" type="tarbz2">http://www.valgrind.org/downloads/valgrind-3.11.0.tar.bz2</Archive>
<BuildDependencies>
<Dependency>glibc-devel</Dependency>
<Dependency>boost-devel</Dependency>
<Dependency>gdb-devel</Dependency>
</BuildDependencies>
<Patches>
<!--<Patch level="1">valgrind-3.9.0-glibc-2.19.patch</Patch>-->
<Patch level="1">valgrind-3.9.0-glibc-2.21.patch</Patch>
<Patch level="0">fix_rlimit.patch</Patch>
</Patches>
</Source>
<Package>
<Name>valgrind</Name>
<RuntimeDependencies>
<Dependency>glibc</Dependency>
<Dependency>perl</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
<Path fileType="header">/usr/include/valgrind</Path>
@@ -36,8 +40,8 @@
<History>
<Update release="1">
<Date>2015-07-21</Date>
<Version>3.10.1</Version>
<Date>2016-03-29</Date>
<Version>3.11.0</Version>
<Comment>First release</Comment>
<Name>Ayhan Yalçınsoy</Name>
<Email>ayhanyalcinsoy@pisilinux.org</Email>