valgrind: bump to 3.8.1

Status of the patches:

 * valgrind-compiler-check.patch, no longer needed, merged upstream.

 * valgrind-dont-include-a-out-header.patch, kept, just refreshed

 * valgrind-fix-ccache-support.patch, adapted to the newer Valgrind
   release.

 * valgrind-largefile.patch, kept, just refreshed

 * valgrind-more-ioctls.patch, removed. Most of it was merged
   upstream. This patch was anyway a feature addition, so it shouldn't
   be kept in Buildroot.

 * valgrind-workaround-SIGSEGV-on-PPC.patch, kept as is, just
   refreshed.

This bump also fixes the build failure we were experiencing with
Valgrind 3.7.0 against recent Glibc versions.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Thomas Petazzoni 2012-12-19 13:14:55 +00:00 committed by Peter Korsgaard
parent b4c0647e14
commit 85510dae95
7 changed files with 41 additions and 322 deletions

View File

@ -1,76 +0,0 @@
Fix the compiler version check so that it doesn't misdetect the
version when the compiler version contains parenthesis.
Taken from upstream r12274.
Index: valgrind-3.7.0/configure.in
===================================================================
--- valgrind-3.7.0.orig/configure.in 2011-12-22 15:21:22.269669307 +0100
+++ valgrind-3.7.0/configure.in 2011-12-22 15:21:54.029135051 +0100
@@ -98,18 +98,21 @@
# We don't want gcc < 3.0
AC_MSG_CHECKING([for a supported version of gcc])
-# Try to get the gcc version, sed-ing out some unexpected stuff
-# that appears with the default gcc on OSX 10.6 and 10.7 respectively.
-# Without this, the version number comes out as 686, 10 or 11 :-(
+# Obtain the compiler version.
#
-# i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
-# i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
+# A few examples of how the ${CC} --version output looks like:
+#
+# Arch Linux: i686-pc-linux-gnu-gcc (GCC) 4.6.2
+# Debian Linux: gcc (Debian 4.3.2-1.1) 4.3.2
+# openSUSE: gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
+# Exherbo Linux: x86_64-pc-linux-gnu-gcc (Exherbo gcc-4.6.2) 4.6.2
+# OS/X 10.6: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
+# OS/X 10.7: i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
+# Clang: clang version 2.9 (tags/RELEASE_29/final)
#
[gcc_version=`${CC} --version \
- | head -n 1 \
- | $SED 's/i686-apple-darwin10//' \
- | $SED 's/i686-apple-darwin11//' \
- | $SED 's/^[^0-9]*\([0-9.]*\).*$/\1/'`]
+ | $SED -n -e 's/[^ ]*gcc[^ ]* ([^)]*) \([0-9.]*\).*$/\1/p' \
+ -e 's/[^ ]*clang version \([0-9.]*\).*$/\1/p'`]
is_clang="notclang"
if test "x`${CC} --version | head -n 1 | $SED 's/\(clang\) version.*/\1/'`" = "xclang" ; then
Index: valgrind-3.7.0/configure
===================================================================
--- valgrind-3.7.0.orig/configure 2011-12-22 15:22:05.138948143 +0100
+++ valgrind-3.7.0/configure 2011-12-22 15:23:34.807439246 +0100
@@ -5122,18 +5122,22 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a supported version of gcc" >&5
$as_echo_n "checking for a supported version of gcc... " >&6; }
-# Try to get the gcc version, sed-ing out some unexpected stuff
-# that appears with the default gcc on OSX 10.6 and 10.7 respectively.
-# Without this, the version number comes out as 686, 10 or 11 :-(
+# Obtain the compiler version.
+#
+# A few examples of how the ${CC} --version output looks like:
#
-# i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
-# i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
+# Arch Linux: i686-pc-linux-gnu-gcc (GCC) 4.6.2
+# Debian Linux: gcc (Debian 4.3.2-1.1) 4.3.2
+# openSUSE: gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
+# Exherbo Linux: x86_64-pc-linux-gnu-gcc (Exherbo gcc-4.6.2) 4.6.2
+# OS/X 10.6: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
+# OS/X 10.7: i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
+# Clang: clang version 2.9 (tags/RELEASE_29/final)
#
gcc_version=`${CC} --version \
- | head -n 1 \
- | $SED 's/i686-apple-darwin10//' \
- | $SED 's/i686-apple-darwin11//' \
- | $SED 's/^[^0-9]*\([0-9.]*\).*$/\1/'`
+ | $SED -n -e 's/[^ ]*gcc[^ ]* ([^)]*) \([0-9.]*\).*$/\1/p' \
+ -e 's/[^ ]*clang version \([0-9.]*\).*$/\1/p'`
+
is_clang="notclang"
if test "x`${CC} --version | head -n 1 | $SED 's/\(clang\) version.*/\1/'`" = "xclang" ; then

View File

@ -20,7 +20,7 @@ Index: b/coregrind/m_debuginfo/readstabs.c
===================================================================
--- a/coregrind/m_debuginfo/readstabs.c
+++ b/coregrind/m_debuginfo/readstabs.c
@@ -52,7 +52,21 @@
@@ -53,7 +53,21 @@
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
#if defined(VGO_linux)

View File

@ -11,41 +11,39 @@ is:
/path/to/ccache /path/to/crossgcc -o foobar foobar.c -someflags
Since this Perl script simply needs to add additional flags to the
command line, we simply add them at the end of the command line
instead of trying to add them at the beginning.
Therefore, we tune the script to take into account the case where
ccache is used.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: valgrind-3.6.1/coregrind/link_tool_exe_linux.in
Index: b/coregrind/link_tool_exe_linux.in
===================================================================
--- valgrind-3.6.1.orig/coregrind/link_tool_exe_linux.in 2011-12-22 13:59:08.933499060 +0100
+++ valgrind-3.6.1/coregrind/link_tool_exe_linux.in 2011-12-22 13:59:50.302782709 +0100
@@ -55,25 +55,13 @@
if (($#ARGV + 1) < 5);
my $ala = $ARGV[0];
+shift;
# check for plausible-ish alt load address
--- a/coregrind/link_tool_exe_linux.in
+++ b/coregrind/link_tool_exe_linux.in
@@ -60,8 +60,16 @@
die "Bogus alt-load address"
if (length($ala) < 3 || index($ala, "0x") != 0);
-# The cc invokation to do the final link
+shift(@ARGV);
+
+if ($ARGV[0] =~ /.*ccache/) {
+ shift(@ARGV);
+}
+
# The cc invokation to do the final link
-my $cc = $ARGV[1];
-
-# and the 'restargs' are argv[2 ..]
-
-# so, build up the complete command here:
-# 'cc' -static -Ttext='ala' 'restargs'
-
-my $cmd="$cc -static -Wl,-Ttext=$ala";
-
-# Add the rest of the parameters
+my $cc = $ARGV[0];
+
+shift(@ARGV);
# and the 'restargs' are argv[2 ..]
@@ -82,7 +90,7 @@
}
# Add the rest of the parameters
-foreach my $n (2 .. $#ARGV) {
- $cmd = "$cmd $ARGV[$n]";
-}
+my $cmd=join(" ", @ARGV) . " -static -Wl,-Ttext=$ala";
#print "link_tool_exe_linux: $cmd\n";
+foreach my $n (0 .. $#ARGV) {
$cmd = "$cmd $ARGV[$n]";
}

View File

@ -6,10 +6,10 @@ is detected.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Index: valgrind-3.7.0/coregrind/m_initimg/initimg-linux.c
Index: b/coregrind/m_initimg/initimg-linux.c
===================================================================
--- valgrind-3.7.0.orig/coregrind/m_initimg/initimg-linux.c 2011-10-26 23:24:43.000000000 +0200
+++ valgrind-3.7.0/coregrind/m_initimg/initimg-linux.c 2011-12-22 14:53:12.798185055 +0100
--- a/coregrind/m_initimg/initimg-linux.c
+++ b/coregrind/m_initimg/initimg-linux.c
@@ -55,7 +55,11 @@
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
@ -22,11 +22,11 @@ Index: valgrind-3.7.0/coregrind/m_initimg/initimg-linux.c
/* This is for ELF types etc, and also the AT_ constants. */
#include <elf.h>
/* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
Index: valgrind-3.7.0/coregrind/m_main.c
Index: b/coregrind/m_main.c
===================================================================
--- valgrind-3.7.0.orig/coregrind/m_main.c 2011-10-26 23:24:45.000000000 +0200
+++ valgrind-3.7.0/coregrind/m_main.c 2011-12-22 14:53:12.798185055 +0100
@@ -2743,7 +2743,11 @@
--- a/coregrind/m_main.c
+++ b/coregrind/m_main.c
@@ -2948,7 +2948,11 @@
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
#define _GNU_SOURCE
@ -38,10 +38,10 @@ Index: valgrind-3.7.0/coregrind/m_main.c
/* This is in order to get AT_NULL and AT_PAGESIZE. */
#include <elf.h>
/* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
Index: valgrind-3.7.0/coregrind/m_ume/elf.c
Index: b/coregrind/m_ume/elf.c
===================================================================
--- valgrind-3.7.0.orig/coregrind/m_ume/elf.c 2011-10-26 23:24:41.000000000 +0200
+++ valgrind-3.7.0/coregrind/m_ume/elf.c 2011-12-22 14:53:12.798185055 +0100
--- a/coregrind/m_ume/elf.c
+++ b/coregrind/m_ume/elf.c
@@ -48,7 +48,11 @@
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */

View File

@ -1,203 +0,0 @@
Add various ioctl()s
Patch initially written by Eric Andersen <andersen@codepoet.org>.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- valgrind-3.7.0.orig/coregrind/m_syswrap/syswrap-linux.c 2011-10-27 12:55:05.000000000 +0200
+++ valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c 2011-12-22 14:53:16.258126390 +0100
@@ -4058,7 +4058,33 @@
case VKI_SG_GET_SG_TABLESIZE: /* 0x227f */
PRE_MEM_WRITE( "ioctl(SG_GET_SG_TABLESIZE)", ARG3, sizeof(int) );
break;
+ case VKI_SCSI_IOCTL_GET_IDLUN:
+ PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_IDLUN)", ARG3, sizeof(vki_scsi_idlun_t) );
+ break;
+ case VKI_SCSI_IOCTL_PROBE_HOST:
+ {
+ int arraylen;
+ char *array = (char*)ARG3;
+ PRE_MEM_READ("ioctl(SCSI_IOCTL_PROBE_HOST)", ARG3, sizeof(char)*4 );
+ arraylen = array[0] + (array[1]<<8) + (array[2]<<16) + (array[3]<<24);
+ PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_PROBE_HOST)", ARG3, sizeof(char)*arraylen );
+ }
+ break;
+ case VKI_SCSI_IOCTL_GET_BUS_NUMBER:
+ PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", ARG3, sizeof(int) );
+ break;
+ case VKI_FDRESET:
+ break;
+ case VKI_FDGETDRVTYP:
+ PRE_MEM_WRITE( "ioctl(FDGETDRVTYP)", ARG3, sizeof(char)*16 );
+ break;
+ case VKI_FDPOLLDRVSTAT:
+ PRE_MEM_WRITE( "ioctl(FDPOLLDRVSTAT)", ARG3, sizeof(vki_floppy_drive_struct_t) );
+ break;
+ case VKI_FDGETPRM:
+ PRE_MEM_WRITE( "ioctl(FDGETPRM)", ARG3, sizeof(vki_floppy_struct_t) );
+ break;
case VKI_IIOCGETCPS:
PRE_MEM_WRITE( "ioctl(IIOCGETCPS)", ARG3,
VKI_ISDN_MAX_CHANNELS * 2 * sizeof(unsigned long) );
@@ -4373,6 +4399,8 @@
case VKI_BLKROGET:
PRE_MEM_WRITE( "ioctl(BLKROGET)", ARG3, sizeof(int));
break;
+ case VKI_BLKRRPART:
+ break;
case VKI_BLKGETSIZE:
PRE_MEM_WRITE( "ioctl(BLKGETSIZE)", ARG3, sizeof(unsigned long));
break;
@@ -4381,6 +4409,8 @@
case VKI_BLKRAGET:
PRE_MEM_WRITE( "ioctl(BLKRAGET)", ARG3, sizeof(long));
break;
+ case VKI_BLKFLSBUF:
+ break;
case VKI_BLKFRASET:
break;
case VKI_BLKFRAGET:
@@ -4447,6 +4477,8 @@
PRE_MEM_WRITE( "ioctl(CDROMREADTOCENTRY)", ARG3,
sizeof(struct vki_cdrom_tocentry));
break;
+ case VKI_CDROMEJECT:
+ break;
case VKI_CDROMMULTISESSION: /* 0x5310 */
PRE_MEM_WRITE( "ioctl(CDROMMULTISESSION)", ARG3,
sizeof(struct vki_cdrom_multisession));
@@ -5321,7 +5353,28 @@
case VKI_SG_GET_SG_TABLESIZE:
POST_MEM_WRITE(ARG3, sizeof(int));
break;
+ case VKI_SCSI_IOCTL_GET_IDLUN:
+ POST_MEM_WRITE(ARG3, sizeof(vki_scsi_idlun_t));
+ break;
+ case VKI_SCSI_IOCTL_PROBE_HOST:
+ if (RES > 0 && ARG3 )
+ POST_MEM_WRITE(ARG3, sizeof(char)*RES);
+ break;
+ case VKI_SCSI_IOCTL_GET_BUS_NUMBER:
+ POST_MEM_WRITE(ARG3, sizeof(int));
+ break;
+ case VKI_FDRESET:
+ break;
+ case VKI_FDGETDRVTYP:
+ POST_MEM_WRITE( ARG3, sizeof(char)*16 );
+ break;
+ case VKI_FDPOLLDRVSTAT:
+ POST_MEM_WRITE( ARG3, sizeof(vki_floppy_drive_struct_t) );
+ break;
+ case VKI_FDGETPRM:
+ POST_MEM_WRITE( ARG3, sizeof(vki_floppy_struct_t) );
+ break;
case VKI_IIOCGETCPS:
POST_MEM_WRITE( ARG3, VKI_ISDN_MAX_CHANNELS * 2 * sizeof(unsigned long) );
break;
@@ -5542,6 +5595,8 @@
case VKI_BLKROGET:
POST_MEM_WRITE(ARG3, sizeof(int));
break;
+ case VKI_BLKRRPART:
+ break;
case VKI_BLKGETSIZE:
POST_MEM_WRITE(ARG3, sizeof(unsigned long));
break;
@@ -5550,6 +5605,8 @@
case VKI_BLKRAGET:
POST_MEM_WRITE(ARG3, sizeof(long));
break;
+ case VKI_BLKFLSBUF:
+ break;
case VKI_BLKFRASET:
break;
case VKI_BLKFRAGET:
@@ -5591,6 +5648,8 @@
case VKI_CDROMREADTOCENTRY:
POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_tocentry));
break;
+ case VKI_CDROMEJECT:
+ break;
case VKI_CDROMMULTISESSION:
POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_multisession));
break;
Index: valgrind-3.7.0/include/vki/vki-linux.h
===================================================================
--- valgrind-3.7.0.orig/include/vki/vki-linux.h 2011-10-26 23:24:31.000000000 +0200
+++ valgrind-3.7.0/include/vki/vki-linux.h 2011-12-22 14:53:16.258126390 +0100
@@ -1654,7 +1654,9 @@
#define VKI_BLKROSET _VKI_IO(0x12,93) /* set device read-only (0 = read-write) */
#define VKI_BLKROGET _VKI_IO(0x12,94) /* get read-only status (0 = read_write) */
+#define VKI_BLKRRPART _VKI_IO(0x12,95) /* re-read partition table */
#define VKI_BLKGETSIZE _VKI_IO(0x12,96) /* return device size /512 (long *arg) */
+#define VKI_BLKFLSBUF _VKI_IO(0x12,97) /* flush buffer cache */
#define VKI_BLKRASET _VKI_IO(0x12,98) /* set read ahead for block device */
#define VKI_BLKRAGET _VKI_IO(0x12,99) /* get current read ahead setting */
#define VKI_BLKFRASET _VKI_IO(0x12,100)/* set filesystem (mm/filemap.c) read-ahead */
@@ -1729,6 +1731,53 @@
//#define SG_GET_COMMAND_Q 0x2270 /* Yields 0 (queuing off) or 1 (on) */
#define VKI_SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1 */
+typedef struct vki_scsi_idlun
+{
+ int mux4;
+ int host_unique_id;
+
+} vki_scsi_idlun_t;
+#define VKI_SCSI_IOCTL_GET_IDLUN 0x5382 /* Gets a struct vki_scsi_idlun */
+#define VKI_SCSI_IOCTL_PROBE_HOST 0x5385 /* Gets an arrary describing the SCSI host */
+#define VKI_SCSI_IOCTL_GET_BUS_NUMBER 0x5386 /* Get the bus number for a device */
+
+//----------------------------------------------------------------------
+// From linux-2.6.8.1/include/linux/fd.h
+//----------------------------------------------------------------------
+#define VKI_FDRESET 0x254 /* Takes an int by value */
+#define VKI_FDGETDRVTYP 0x20f /* Returns char floppy_drive_name[16] */
+typedef struct vki_floppy_drive_struct {
+ unsigned long flags;
+ unsigned long spinup_date;
+ unsigned long select_date;
+ unsigned long first_read_date;
+ short probed_format;
+ short track;
+ short maxblock;
+ short maxtrack;
+ int generation;
+ int keep_data;
+ int fd_ref;
+ int fd_device;
+ unsigned long last_checked;
+ char *dmabuf;
+ int bufblocks;
+} vki_floppy_drive_struct_t;
+#define VKI_FDPOLLDRVSTAT 0x213 /* returns a struct floppy_drive_struct */
+typedef struct vki_floppy_struct {
+ unsigned int size;
+ unsigned int sect;
+ unsigned int head;
+ unsigned int track;
+ unsigned int stretch;
+ unsigned char gap;
+ unsigned char rate;
+ unsigned char spec1;
+ unsigned char fmt_gap;
+ const char * name;
+} vki_floppy_struct_t;
+#define VKI_FDGETPRM 0x204 /* returns a struct floppy_struct */
+
//----------------------------------------------------------------------
// From linux-2.6.8.1/include/linux/cdrom.h
//----------------------------------------------------------------------
@@ -1738,6 +1787,7 @@
(struct cdrom_tochdr) */
#define VKI_CDROMREADTOCENTRY 0x5306 /* Read TOC entry
(struct cdrom_tocentry) */
+#define VKI_CDROMEJECT 0x5309 /* Eject cdrom media */
#define VKI_CDROMSUBCHNL 0x530b /* Read subchannel data
(struct cdrom_subchnl) */
#define VKI_CDROMREADMODE2 0x530c /* Read CDROM mode 2 data (2336 Bytes)

View File

@ -8,10 +8,10 @@ Signed-off-by: Pierre Habouzit <madcoder@debian.org>
coregrind/m_machine.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
Index: valgrind-3.7.0/coregrind/m_machine.c
Index: b/coregrind/m_machine.c
===================================================================
--- valgrind-3.7.0.orig/coregrind/m_machine.c 2011-10-27 12:45:52.000000000 +0200
+++ valgrind-3.7.0/coregrind/m_machine.c 2011-12-22 14:53:19.758067046 +0100
--- a/coregrind/m_machine.c
+++ b/coregrind/m_machine.c
@@ -27,6 +27,10 @@
The GNU General Public License is contained in the file COPYING.
*/

View File

@ -4,7 +4,7 @@
#
#############################################################
VALGRIND_VERSION = 3.7.0
VALGRIND_VERSION = 3.8.1
VALGRIND_SITE = http://valgrind.org/downloads/
VALGRIND_SOURCE = valgrind-$(VALGRIND_VERSION).tar.bz2
VALGRIND_LICENSE = GPLv2 GFDLv1.2