Commit db26348c authored by Jérôme Pouiller's avatar Jérôme Pouiller Committed by Thomas Petazzoni
Browse files

valgrind: bump to version 3.10



Patches status:

  valgrind-0001-workaround-SIGSEGV-on-PPC: Don't know. In doubt, I
     prefer to keep it.

  valgrind-0002-don-t-enable-largefile-support-unconditionally-on-uC:
     Seems still necessary

  valgrind-0003-Add-replacement-for-a.out.h: Upstreamed

  valgrind-0004-remove-default-mips-flags: Upstreamed

  valgrind-0005-glibc-2.19: Upstream now support glibc up to 2.20

Signed-off-by: default avatarJérôme Pouiller <jezz@sysmic.org>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent cfd33b95
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
From 872ade34d6af973ca88d5accd9e819216ecb94ba Mon Sep 17 00:00:00 2001
From bd9d2af89e45081132c150e5e4bdf9a12dfca693 Mon Sep 17 00:00:00 2001
From: Pierre Habouzit <madcoder@debian.org>
Date: Tue, 10 May 2011 23:11:45 +0200
Subject: [PATCH 1/3] workaround SIGSEGV on PPC.
Subject: [PATCH 1/2] workaround SIGSEGV on PPC.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -13,7 +13,7 @@ Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
 1 file changed, 4 insertions(+)

diff --git a/coregrind/m_machine.c b/coregrind/m_machine.c
index 28a180e..8426551 100644
index 42d8ce8..3c9900f 100644
--- a/coregrind/m_machine.c
+++ b/coregrind/m_machine.c
@@ -27,6 +27,10 @@
@@ -28,5 +28,5 @@ index 28a180e..8426551 100644
 #include "pub_core_vki.h"
 #include "pub_core_libcsetjmp.h"   // setjmp facilities
-- 
1.8.3.2
1.9.1
+7 −7
Original line number Diff line number Diff line
From 271d855c0ad94a2ec164e20173257a06cd83288d Mon Sep 17 00:00:00 2001
From 6bb94d51e25b394bc9c52699f744a7cc06ffca15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= <jezz@sysmic.org>
Date: Thu, 2 Jan 2014 16:00:06 +0100
Subject: [PATCH 2/3] don't enable largefile support unconditionally on uClibc
Subject: [PATCH 2/2] don't enable largefile support unconditionally on uClibc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -19,7 +19,7 @@ Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
 3 files changed, 12 insertions(+)

diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
index 9bcc05c..ffee30f 100644
index a8e7d27..fa670cb 100644
--- a/coregrind/m_initimg/initimg-linux.c
+++ b/coregrind/m_initimg/initimg-linux.c
@@ -55,7 +55,11 @@
@@ -35,10 +35,10 @@ index 9bcc05c..ffee30f 100644
 #include <elf.h>
 /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
diff --git a/coregrind/m_main.c b/coregrind/m_main.c
index 35c11e1..0372946 100644
index e7159a8..4371a1f 100644
--- a/coregrind/m_main.c
+++ b/coregrind/m_main.c
@@ -2997,7 +2997,11 @@ asm(
@@ -3143,7 +3143,11 @@ asm(
 
 /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
 #define _GNU_SOURCE
@@ -51,7 +51,7 @@ index 35c11e1..0372946 100644
 #include <elf.h>
 /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
diff --git a/coregrind/m_ume/elf.c b/coregrind/m_ume/elf.c
index b5b30e5..0766c74 100644
index 4615da3..06992a4 100644
--- a/coregrind/m_ume/elf.c
+++ b/coregrind/m_ume/elf.c
@@ -48,7 +48,11 @@
@@ -67,5 +67,5 @@ index b5b30e5..0766c74 100644
 #include <elf.h>
 /* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
-- 
1.8.3.2
1.9.1
+0 −58
Original line number Diff line number Diff line
From d560106f300dd2547c659511c8668d88a50eb577 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= <jezz@sysmic.org>
Date: Thu, 2 Jan 2014 16:00:49 +0100
Subject: [PATCH 3/3] Add replacement for <a.out.h>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Valgrind includes <a.out.h> to get the definition of 'struct
nlist'. However, while glibc directly defines 'struct nlist' in
<a.out.h>, uClibc relies on it being defined by kernel headers (i.e
<a.out.h> simply includes <linux/a.out.h>). This works for most
architectures, but not for PowerPC, on which the a.out binary format
has never been supported, and therefore the <linux/a.out.h> kernel
header does not exist.

One solution would have been to use the <nlist.h> header, but this one
is only available in glibc, and it also has a slightly different
definition than the one in <a.out.h>. So, for the time being, the
easiest solution is to just replace the #include <a.out.h> in Valgrind
code by a copy/paste of the 'struct nlist' definition.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
---
 coregrind/m_debuginfo/readstabs.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/coregrind/m_debuginfo/readstabs.c b/coregrind/m_debuginfo/readstabs.c
index 70ad319..47f5bc7 100644
--- a/coregrind/m_debuginfo/readstabs.c
+++ b/coregrind/m_debuginfo/readstabs.c
@@ -54,7 +54,21 @@
 
 /* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
 #if defined(VGO_linux)
-#  include <a.out.h> /* stabs defns */
+/* Copied from a.out.h, because it is otherwise not available on
+   PowerPC/uClibc */
+struct nlist
+{
+  union
+    {
+      char *n_name;
+      struct nlist *n_next;
+      long n_strx;
+    } n_un;
+  unsigned char n_type;
+  char n_other;
+  short n_desc;
+  unsigned long n_value;
+};
 #elif defined(VGO_darwin)
 #  include <mach-o/nlist.h>
 #  define n_other n_sect
-- 
1.8.3.2
+0 −93
Original line number Diff line number Diff line
From 374743e6faa9d3fc2fba1489e2ead8ea8ebd1f62 Mon Sep 17 00:00:00 2001
From: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Date: Mon, 31 Mar 2014 12:00:39 +0100
Subject: [PATCH] mips32/64: Remove default flags -mips32 and -mips64 from Makefile.all.am

During configuration of Valgrind we check does the compiler support
-march=mips32 and -march=mips64. If compiler supports these flags we are
using them as default flags for mips32 and mips64.

Original upstream patch:
   https://github.com/svn2github/valgrind/commit/fdf6c5aea4671c3c43c90230510735d215dd1e1c

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 Makefile.all.am |    8 ++++----
 configure.ac    |   40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/Makefile.all.am b/Makefile.all.am
index 1f69802..405f11f 100644
--- a/Makefile.all.am
+++ b/Makefile.all.am
@@ -173,12 +173,12 @@ AM_CFLAGS_S390X_LINUX     = @FLAG_M64@ $(AM_CFLAGS_BASE) -fomit-frame-pointer
 AM_CCASFLAGS_S390X_LINUX  = @FLAG_M64@ -g -mzarch -march=z900
 
 AM_FLAG_M3264_MIPS32_LINUX = @FLAG_M32@
-AM_CFLAGS_MIPS32_LINUX     = @FLAG_M32@ $(AM_CFLAGS_BASE) -mips32
-AM_CCASFLAGS_MIPS32_LINUX  = @FLAG_M32@ -mips32 -g
+AM_CFLAGS_MIPS32_LINUX     = @FLAG_M32@ $(AM_CFLAGS_BASE) @FLAG_MIPS32@
+AM_CCASFLAGS_MIPS32_LINUX  = @FLAG_M32@ -g @FLAG_MIPS32@
 
 AM_FLAG_M3264_MIPS64_LINUX = @FLAG_M64@
-AM_CFLAGS_MIPS64_LINUX     = @FLAG_M64@ $(AM_CFLAGS_BASE) -mips64
-AM_CCASFLAGS_MIPS64_LINUX  = @FLAG_M64@ -mips64 -g
+AM_CFLAGS_MIPS64_LINUX     = @FLAG_M64@ $(AM_CFLAGS_BASE) @FLAG_MIPS64@
+AM_CCASFLAGS_MIPS64_LINUX  = @FLAG_M64@ -g @FLAG_MIPS64@
 
 # Flags for the primary target.  These must be used to build the
 # regtests and performance tests.  In fact, these must be used to
diff --git a/configure.ac b/configure.ac
index 229ab98..0e3884c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1450,6 +1450,46 @@ CFLAGS=$safe_CFLAGS
 AC_SUBST(FLAG_M64)
 
 
+# does this compiler support -march=mips32 (mips32 default) ?
+AC_MSG_CHECKING([if gcc accepts -march=mips32])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -march=mips32"
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+  return 0;
+]])], [
+FLAG_MIPS32="-march=mips32"
+AC_MSG_RESULT([yes])
+], [
+FLAG_MIPS32=""
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+AC_SUBST(FLAG_MIPS32)
+
+
+# does this compiler support -march=mips64 (mips64 default) ?
+AC_MSG_CHECKING([if gcc accepts -march=mips64])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -march=mips64"
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+  return 0;
+]])], [
+FLAG_MIPS64="-march=mips64"
+AC_MSG_RESULT([yes])
+], [
+FLAG_MIPS64=""
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+AC_SUBST(FLAG_MIPS64)
+
+
 # does this compiler support -mmmx ?
 AC_MSG_CHECKING([if gcc accepts -mmmx])
 
-- 
1.7.1
+0 −32
Original line number Diff line number Diff line
Enable valgrind for glibc 2.19 targets, and update the error from 2.17
to 2.19 (which in reality was 2.18).
Status: upstream.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

diff -Nura valgrind-3.9.0.orig/configure.ac valgrind-3.9.0/configure.ac
--- valgrind-3.9.0.orig/configure.ac	2014-06-18 19:06:39.212571710 -0300
+++ valgrind-3.9.0/configure.ac	2014-06-18 19:08:37.385557736 -0300
@@ -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])
@@ -931,7 +938,7 @@
 
      *)
 	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
-	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.17])
+	AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.19])
 	AC_MSG_ERROR([or Darwin libc])
 	;;
 esac
Loading