Upgrade valgrind
authorEric Andersen <andersen@codepoet.org>
Sun, 19 Oct 2003 07:36:18 +0000 (07:36 -0000)
committerEric Andersen <andersen@codepoet.org>
Sun, 19 Oct 2003 07:36:18 +0000 (07:36 -0000)
make/valgrind.mk
sources/valgrind.patch

index 75f57823189733c09d194811f24918fb3502cea7..c7d89261c28408e32cf7435be52595dfff3cbef8 100644 (file)
@@ -5,8 +5,8 @@
 #############################################################
 
 VALGRIND_SITE:=http://developer.kde.org/~sewardj
-VALGRIND_DIR:=$(BUILD_DIR)/valgrind-20030725
-VALGRIND_SOURCE:=valgrind-20030725.tar.bz2
+VALGRIND_DIR:=$(BUILD_DIR)/valgrind-20031012
+VALGRIND_SOURCE:=valgrind-20031012.tar.bz2
 VALGRIND_PATCH:=$(SOURCE_DIR)/valgrind.patch
 
 $(DL_DIR)/$(VALGRIND_SOURCE):
index d4e9d7d0aa1687f210021eafc5e8d88c01fe44f3..230feba3b9fb5b8a052a50c395ce684e821c1a90 100644 (file)
@@ -1,6 +1,6 @@
 diff -urN valgrind-20030725.orig/coregrind/vg_intercept.c valgrind-20030725/coregrind/vg_intercept.c
 --- valgrind-20030725.orig/coregrind/vg_intercept.c    2003-07-13 13:20:57.000000000 -0600
-+++ valgrind-20030725/coregrind/vg_intercept.c 2003-08-10 03:22:01.000000000 -0600
++++ valgrind-20030725/coregrind/vg_intercept.c 2003-10-13 15:06:33.000000000 -0600
 @@ -827,8 +827,10 @@
  void VG_(__libc_freeres_wrapper)( void )
  {
@@ -14,7 +14,7 @@ diff -urN valgrind-20030725.orig/coregrind/vg_intercept.c valgrind-20030725/core
     /*NOTREACHED*/
 diff -urN valgrind-20030725.orig/coregrind/vg_libpthread.c valgrind-20030725/coregrind/vg_libpthread.c
 --- valgrind-20030725.orig/coregrind/vg_libpthread.c   2003-07-10 18:02:07.000000000 -0600
-+++ valgrind-20030725/coregrind/vg_libpthread.c        2003-08-10 03:24:31.000000000 -0600
++++ valgrind-20030725/coregrind/vg_libpthread.c        2003-10-13 15:06:33.000000000 -0600
 @@ -3124,6 +3124,8 @@
  /* I've no idea what these are, but they get called quite a lot.
     Anybody know? */
@@ -34,28 +34,29 @@ diff -urN valgrind-20030725.orig/coregrind/vg_libpthread.c valgrind-20030725/cor
     interface, but many people complain about its absence. */
 diff -urN valgrind-20030725.orig/coregrind/vg_syscalls.c valgrind-20030725/coregrind/vg_syscalls.c
 --- valgrind-20030725.orig/coregrind/vg_syscalls.c     2003-07-24 15:00:03.000000000 -0600
-+++ valgrind-20030725/coregrind/vg_syscalls.c  2003-08-10 03:25:33.000000000 -0600
-@@ -2427,6 +2427,104 @@
++++ valgrind-20030725/coregrind/vg_syscalls.c  2003-10-13 16:35:33.000000000 -0600
+@@ -2427,6 +2427,119 @@
                 KERNEL_DO_SYSCALL(tid,res);
                 break;
  
 +          /* Stuff added by Erik Andersen for general device probing/handling */
 +#define BLKSSZGET  _IO(0x12,104)
 +          case BLKSSZGET:
-+                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(BLKSSZGET)", arg3, 
-+                    sizeof(int));
++               SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKSSZGET)", arg3,
++                       sizeof(int));
 +               KERNEL_DO_SYSCALL(tid,res);
 +               if (!VG_(is_kerror)(res) && res == 0)
 +                   VG_TRACK( post_mem_write,arg3, sizeof(int));
 +               break;
 +#define BLKGETSIZE64 _IOR(0x12,114,sizeof(unsigned long long*))
 +          case BLKGETSIZE64:
-+                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(BLKGETSIZE64)", arg3, 
-+                    sizeof(unsigned long long));
++               SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKGETSIZE64)", arg3,
++                       sizeof(unsigned long long));
 +               KERNEL_DO_SYSCALL(tid,res);
 +               if (!VG_(is_kerror)(res) && res == 0)
 +                   VG_TRACK( post_mem_write,arg3, sizeof(unsigned long long));
 +               break;
++#define HDIO_GETGEO             0x0301  /* get device geometry */
 +          case HDIO_GETGEO:
 +               {
 +                   struct hd_geometry {
@@ -65,20 +66,23 @@ diff -urN valgrind-20030725.orig/coregrind/vg_syscalls.c valgrind-20030725/coreg
 +                       unsigned long start;
 +                   };
 +
-+                   SYSCALL_TRACK( pre_mem_write, tst, "ioctl(HDIO_GETGEO)", arg3, 
++                   SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GETGEO)", arg3, 
 +                           sizeof(struct hd_geometry));
 +                   KERNEL_DO_SYSCALL(tid,res);
 +                   if (!VG_(is_kerror)(res) && res == 0)
 +                       VG_TRACK( post_mem_write,arg3, sizeof(struct hd_geometry));
 +               }
 +               break;
++#define HDIO_GET_IDENTITY     0x030d  /* get IDE identification info */
++#define struct_hd_driveid_size        256     /* ATA6 specifies words 0-255 */ 
 +          case HDIO_GET_IDENTITY:
-+                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(HDIO_GET_IDENTITY)", arg3, 
-+                    sizeof(struct hd_driveid));
++                 SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GET_IDENTITY)", arg3, 
++                       struct_hd_driveid_size);
 +               KERNEL_DO_SYSCALL(tid,res);
 +               if (!VG_(is_kerror)(res) && res == 0)
-+                   VG_TRACK( post_mem_write,arg3, sizeof(struct hd_driveid));
++                   VG_TRACK( post_mem_write,arg3, struct_hd_driveid_size);
 +               break;
++#define SCSI_IOCTL_GET_IDLUN 0x5382
 +          case SCSI_IOCTL_GET_IDLUN:
 +               {
 +                   struct scsi_idlun
@@ -88,33 +92,36 @@ diff -urN valgrind-20030725.orig/coregrind/vg_syscalls.c valgrind-20030725/coreg
 +
 +                   };
 +
-+                   SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_GET_IDLUN)", arg3, 
++                   SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_IDLUN)", arg3, 
 +                           sizeof(struct scsi_idlun));
 +                   KERNEL_DO_SYSCALL(tid,res);
 +                   if (!VG_(is_kerror)(res) && res == 0)
 +                       VG_TRACK( post_mem_write,arg3, sizeof(struct scsi_idlun));
 +               }
 +               break;
++#define SCSI_IOCTL_SEND_COMMAND 1
 +          case SCSI_IOCTL_SEND_COMMAND:
-+                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_SEND_COMMAND)", arg3, 
++                 SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_SEND_COMMAND)", arg3, 
 +                    ((2 * sizeof(unsigned int)) + 6 + 512));
 +               KERNEL_DO_SYSCALL(tid,res);
 +               if (!VG_(is_kerror)(res) && res == 0)
 +                   VG_TRACK( post_mem_write,arg3, ((2 * sizeof(unsigned int)) + 6 + 512));
 +               break;
++#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
 +          case SCSI_IOCTL_GET_BUS_NUMBER:
-+                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", arg3, 
++                 SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", arg3, 
 +                    sizeof(int));
 +               KERNEL_DO_SYSCALL(tid,res);
 +               if (!VG_(is_kerror)(res) && res == 0)
 +                   VG_TRACK( post_mem_write,arg3, sizeof(int));
 +               break;
++#define SCSI_IOCTL_PROBE_HOST 0x5385    
 +          case SCSI_IOCTL_PROBE_HOST:
 +               {
 +                   int xxxx;
 +                   char *array = (char*)arg3;
 +                   xxxx = array[0] + (array[1]<<8) + (array[2]<<16) + (array[3]<<24);
-+                   SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_PROBE_HOST)", arg3, 
++                   SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_PROBE_HOST)", arg3, 
 +                           sizeof(int));
 +                   KERNEL_DO_SYSCALL(tid,res);
 +                   if (!VG_(is_kerror)(res) && res == 0)
@@ -129,155 +136,22 @@ diff -urN valgrind-20030725.orig/coregrind/vg_syscalls.c valgrind-20030725/coreg
 +          case BLKRRPART:
 +               KERNEL_DO_SYSCALL(tid,res);
 +               break;
++#define MTIOCTOP  _IO(0x6d,0x1)
 +          case MTIOCTOP:
-+                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(MTIOCTOP)", arg3, 
-+                    sizeof(struct mtop));
-+               KERNEL_DO_SYSCALL(tid,res);
-+               if (!VG_(is_kerror)(res) && res == 0)
-+                   VG_TRACK( post_mem_write,arg3, sizeof(struct mtop));
++               {
++                   struct mtop
++                   {
++                       short int mt_op;               /* Operations defined below.  */
++                       int mt_count;          /* How many of them.  */
++                   };
++                   SYSCALL_TRACK( pre_mem_write, tid, "ioctl(MTIOCTOP)", arg3, 
++                           sizeof(struct mtop));
++                   KERNEL_DO_SYSCALL(tid,res);
++                   if (!VG_(is_kerror)(res) && res == 0)
++                       VG_TRACK( post_mem_write,arg3, sizeof(struct mtop));
++               }
 +               break;
 +
              /* We don't have any specific information on it, so
                 try to do something reasonable based on direction and
                 size bits.  The encoding scheme is described in
-diff -urN valgrind-20030725.orig/coregrind/vg_unsafe.h valgrind-20030725/coregrind/vg_unsafe.h
---- valgrind-20030725.orig/coregrind/vg_unsafe.h       2003-06-14 02:50:27.000000000 -0600
-+++ valgrind-20030725/coregrind/vg_unsafe.h    2003-08-10 03:25:33.000000000 -0600
-@@ -58,6 +58,11 @@
- #include <sys/user.h>     /* for struct user_regs_struct et al */
- #include <signal.h>       /* for siginfo_t */
-+#include <scsi/scsi.h>    /* for a few SCSI ioctls */
-+#include <scsi/scsi_ioctl.h>/* for even more SCSI ioctls */
-+#include <linux/hdreg.h>  /* for ide ioctls */
-+#include <sys/mtio.h>     /* for tape drive junk */
-+
- #define __USE_LARGEFILE64
- #include <sys/stat.h>     /* for struct stat */
- #undef __USE_LARGEFILE64
-diff -urN valgrind-20030725.orig/valgrind.patch valgrind-20030725/valgrind.patch
---- valgrind-20030725.orig/valgrind.patch      1969-12-31 17:00:00.000000000 -0700
-+++ valgrind-20030725/valgrind.patch   2003-08-10 03:25:25.000000000 -0600
-@@ -0,0 +1,122 @@
-+diff -urN valgrind-1.9.4.orig/coregrind/vg_unsafe.h valgrind-1.9.4/coregrind/vg_unsafe.h
-+--- valgrind-1.9.4.orig/coregrind/vg_unsafe.h 2002-10-05 09:18:27.000000000 -0600
-++++ valgrind-1.9.4/coregrind/vg_unsafe.h      2003-03-02 03:06:22.000000000 -0700
-+@@ -56,6 +56,11 @@
-+ #include <linux/cdrom.h>  /* for cd-rom ioctls */
-+ #include <sys/user.h>     /* for struct user_regs_struct et al */
-+ 
-++#include <scsi/scsi.h>    /* for a few SCSI ioctls */
-++#include <scsi/scsi_ioctl.h>/* for even more SCSI ioctls */
-++#include <linux/hdreg.h>  /* for ide ioctls */
-++#include <sys/mtio.h>     /* for tape drive junk */
-++
-+ #define __USE_LARGEFILE64
-+ #include <sys/stat.h>     /* for struct stat */
-+ #undef __USE_LARGEFILE64
-+--- valgrind-1.9.6/coregrind/vg_syscalls.c.orig       2003-05-04 18:15:41.000000000 -0600
-++++ valgrind-1.9.6/coregrind/vg_syscalls.c    2003-07-02 01:59:16.000000000 -0600
-+@@ -2389,6 +2389,104 @@
-+                KERNEL_DO_SYSCALL(tid,res);
-+                break;
-+ 
-++         /* Stuff added by Erik Andersen for general device probing/handling */
-++#define BLKSSZGET  _IO(0x12,104)
-++         case BLKSSZGET:
-++                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(BLKSSZGET)", arg3, 
-++                    sizeof(int));
-++              KERNEL_DO_SYSCALL(tid,res);
-++              if (!VG_(is_kerror)(res) && res == 0)
-++                  VG_TRACK( post_mem_write,arg3, sizeof(int));
-++              break;
-++#define BLKGETSIZE64 _IOR(0x12,114,sizeof(unsigned long long*))
-++         case BLKGETSIZE64:
-++                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(BLKGETSIZE64)", arg3, 
-++                    sizeof(unsigned long long));
-++              KERNEL_DO_SYSCALL(tid,res);
-++              if (!VG_(is_kerror)(res) && res == 0)
-++                  VG_TRACK( post_mem_write,arg3, sizeof(unsigned long long));
-++              break;
-++         case HDIO_GETGEO:
-++              {
-++                  struct hd_geometry {
-++                      unsigned char heads;
-++                      unsigned char sectors;
-++                      unsigned short cylinders;
-++                      unsigned long start;
-++                  };
-++
-++                  SYSCALL_TRACK( pre_mem_write, tst, "ioctl(HDIO_GETGEO)", arg3, 
-++                          sizeof(struct hd_geometry));
-++                  KERNEL_DO_SYSCALL(tid,res);
-++                  if (!VG_(is_kerror)(res) && res == 0)
-++                      VG_TRACK( post_mem_write,arg3, sizeof(struct hd_geometry));
-++              }
-++              break;
-++         case HDIO_GET_IDENTITY:
-++                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(HDIO_GET_IDENTITY)", arg3, 
-++                    sizeof(struct hd_driveid));
-++              KERNEL_DO_SYSCALL(tid,res);
-++              if (!VG_(is_kerror)(res) && res == 0)
-++                  VG_TRACK( post_mem_write,arg3, sizeof(struct hd_driveid));
-++              break;
-++         case SCSI_IOCTL_GET_IDLUN:
-++              {
-++                  struct scsi_idlun
-++                  {
-++                      int mux4;
-++                      int host_unique_id;
-++
-++                  };
-++
-++                  SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_GET_IDLUN)", arg3, 
-++                          sizeof(struct scsi_idlun));
-++                  KERNEL_DO_SYSCALL(tid,res);
-++                  if (!VG_(is_kerror)(res) && res == 0)
-++                      VG_TRACK( post_mem_write,arg3, sizeof(struct scsi_idlun));
-++              }
-++              break;
-++         case SCSI_IOCTL_SEND_COMMAND:
-++                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_SEND_COMMAND)", arg3, 
-++                    ((2 * sizeof(unsigned int)) + 6 + 512));
-++              KERNEL_DO_SYSCALL(tid,res);
-++              if (!VG_(is_kerror)(res) && res == 0)
-++                  VG_TRACK( post_mem_write,arg3, ((2 * sizeof(unsigned int)) + 6 + 512));
-++              break;
-++         case SCSI_IOCTL_GET_BUS_NUMBER:
-++                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", arg3, 
-++                    sizeof(int));
-++              KERNEL_DO_SYSCALL(tid,res);
-++              if (!VG_(is_kerror)(res) && res == 0)
-++                  VG_TRACK( post_mem_write,arg3, sizeof(int));
-++              break;
-++         case SCSI_IOCTL_PROBE_HOST:
-++              {
-++                  int xxxx;
-++                  char *array = (char*)arg3;
-++                  xxxx = array[0] + (array[1]<<8) + (array[2]<<16) + (array[3]<<24);
-++                  SYSCALL_TRACK( pre_mem_write, tst, "ioctl(SCSI_IOCTL_PROBE_HOST)", arg3, 
-++                          sizeof(int));
-++                  KERNEL_DO_SYSCALL(tid,res);
-++                  if (!VG_(is_kerror)(res) && res == 0)
-++                      VG_TRACK( post_mem_write,arg3, sizeof(int));
-++              }
-++              break;
-++#define BLKFLSBUF  _IO(0x12,97)
-++         case BLKFLSBUF:
-++              KERNEL_DO_SYSCALL(tid,res);
-++              break;
-++#define BLKRRPART  _IO(0x12,95)
-++         case BLKRRPART:
-++              KERNEL_DO_SYSCALL(tid,res);
-++              break;
-++         case MTIOCTOP:
-++                 SYSCALL_TRACK( pre_mem_write, tst, "ioctl(MTIOCTOP)", arg3, 
-++                    sizeof(struct mtop));
-++              KERNEL_DO_SYSCALL(tid,res);
-++              if (!VG_(is_kerror)(res) && res == 0)
-++                  VG_TRACK( post_mem_write,arg3, sizeof(struct mtop));
-++              break;
-++
-+             /* We don't have any specific information on it, so
-+                try to do something reasonable based on direction and
-+                size bits.  The encoding scheme is described in