diff options
| -rw-r--r-- | package/valgrind/valgrind.mk | 10 | ||||
| -rw-r--r-- | package/valgrind/valgrind.patch | 291 | 
2 files changed, 186 insertions, 115 deletions
| diff --git a/package/valgrind/valgrind.mk b/package/valgrind/valgrind.mk index f72e39508..18d879049 100644 --- a/package/valgrind/valgrind.mk +++ b/package/valgrind/valgrind.mk @@ -5,8 +5,8 @@  #############################################################  VALGRIND_SITE:=http://valgrind.org/downloads/ -VALGRIND_DIR:=$(BUILD_DIR)/valgrind-2.4.0 -VALGRIND_SOURCE:=valgrind-2.4.0.tar.bz2 +VALGRIND_DIR:=$(BUILD_DIR)/valgrind-3.2.0 +VALGRIND_SOURCE:=valgrind-3.2.0.tar.bz2  $(DL_DIR)/$(VALGRIND_SOURCE):  	$(WGET) -P $(DL_DIR) $(VALGRIND_SITE)/$(VALGRIND_SOURCE) @@ -76,7 +76,7 @@ $(TARGET_DIR)/usr/bin/valgrind: $(VALGRIND_DIR)/none/vgskin_none.so  	#cp $(VALGRIND_DIR)/woody.supp $(TARGET_DIR)/usr/lib/valgrind/  	touch -c $(TARGET_DIR)/usr/bin/valgrind -ifeq ($(ARCH),i386) +ifeq ($(BR2_i386),y)  valgrind: $(TARGET_DIR)/usr/bin/valgrind  else  valgrind: @@ -84,10 +84,10 @@ endif  valgrind-source: $(DL_DIR)/$(VALGRIND_SOURCE) -valgrind-clean:  +valgrind-clean:  	$(MAKE) -C $(VALGRIND_DIR) clean -valgrind-dirclean:  +valgrind-dirclean:  	rm -rf $(VALGRIND_DIR)  ############################################################# diff --git a/package/valgrind/valgrind.patch b/package/valgrind/valgrind.patch index c556bdb1c..afdd53efc 100644 --- a/package/valgrind/valgrind.patch +++ b/package/valgrind/valgrind.patch @@ -1,134 +1,205 @@ -diff -urN ../valgrind-2.4.0/coregrind/vg_syscalls.c valgrind-2.4.0/coregrind/vg_syscalls.c ---- ../valgrind-2.4.0/coregrind/vg_syscalls.c	2005-03-23 03:22:03.000000000 -0700 -+++ valgrind-2.4.0/coregrind/vg_syscalls.c	2005-07-22 03:42:01.000000000 -0600 -@@ -3266,15 +3266,34 @@ -       SYS_PRE_MEM_WRITE( "ioctl(RTC_IRQP_READ)", arg3, sizeof(unsigned long)); -       break; +--- valgrind/coregrind/m_syswrap/syswrap-amd64-linux.c.orig	2006-08-02 16:51:51.000000000 -0600 ++++ valgrind/coregrind/m_syswrap/syswrap-amd64-linux.c	2006-08-02 16:53:19.000000000 -0600 +@@ -1124,7 +1124,7 @@ +    GENXY(__NR_times,             sys_times),          // 100  +    PLAXY(__NR_ptrace,            sys_ptrace),         // 101  +    GENX_(__NR_getuid,            sys_getuid),         // 102  +-   //   (__NR_syslog,            sys_syslog),         // 103  ++   LINXY(__NR_syslog,            sys_syslog),         // 103  +    GENX_(__NR_getgid,            sys_getgid),         // 104  -+   case VKI_BLKRRPART: -+   case VKI_BLKFLSBUF: -+      break; -    case VKI_BLKGETSIZE: -       SYS_PRE_MEM_WRITE( "ioctl(BLKGETSIZE)", arg3, sizeof(unsigned long)); +    GENX_(__NR_setuid,            sys_setuid),         // 105  +--- valgrind/include/vki-linux.h.orig	2006-08-02 18:22:21.000000000 -0600 ++++ valgrind/include/vki-linux.h	2006-08-02 18:38:02.000000000 -0600 +@@ -1556,7 +1556,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 */ +@@ -1631,6 +1633,54 @@ + //#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 + //---------------------------------------------------------------------- +@@ -1640,6 +1690,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)  +--- valgrind/coregrind/m_syswrap/syswrap-generic.c.orig	2006-08-02 18:22:13.000000000 -0600 ++++ valgrind/coregrind/m_syswrap/syswrap-generic.c	2006-08-02 18:43:49.000000000 -0600 +@@ -3227,6 +3227,33 @@ +    case VKI_SG_GET_SG_TABLESIZE: /* 0x227f */ +       PRE_MEM_WRITE( "ioctl(SG_GET_SG_TABLESIZE)", ARG3, sizeof(int) );         break; -+   case VKI_BLKGETSIZE64: -+      SYS_PRE_MEM_WRITE( "ioctl(BLKGETSIZE64)", arg3, sizeof(__vki_u64)); ++   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_BLKSSZGET: -+      SYS_PRE_MEM_WRITE( "ioctl(BLKSSZGET)", arg3, sizeof(unsigned long)); ++   case VKI_SCSI_IOCTL_GET_BUS_NUMBER: ++      PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", ARG3, sizeof(int) );  +      break; -+   case VKI_BLKBSZGET: -+      SYS_PRE_MEM_WRITE( "ioctl(BLKBSZGET)", arg3, sizeof(unsigned long)); ++ ++   case VKI_FDRESET:  +      break; -+   case VKI_BLKBSZSET: -+      SYS_PRE_MEM_READ( "ioctl(BLKBSZSET)", arg3, sizeof(unsigned long) ); ++   case VKI_FDGETDRVTYP: ++      PRE_MEM_WRITE( "ioctl(FDGETDRVTYP)", ARG3, sizeof(char)*16 );  +      break; -  -       /* Hard disks */ -    case VKI_HDIO_GET_IDENTITY: /* 0x030d */ -       SYS_PRE_MEM_WRITE( "ioctl(HDIO_GET_IDENTITY)", arg3, -                      VKI_SIZEOF_STRUCT_HD_DRIVEID ); -       break; -+   case VKI_HDIO_GETGEO: /* 0x0301 */ -+      SYS_PRE_MEM_WRITE( "ioctl(HDIO_GETGEO)", arg3, -+                     sizeof(struct vki_hd_geometry) ); ++   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; -       /* CD ROM stuff (??)  */ -    case VKI_CDROM_GET_MCN: -@@ -3332,6 +3351,7 @@ +    case VKI_IIOCGETCPS: +       PRE_MEM_WRITE( "ioctl(IIOCGETCPS)", ARG3, +@@ -3550,6 +3578,8 @@ +    case VKI_BLKROGET: +       PRE_MEM_WRITE( "ioctl(BLKROGET)", ARG3, sizeof(int));         break; -       /* The following two are probably bogus (should check args - 	 for readability).  JRS 20021117 */ -+   case VKI_CDROMEJECT: -    case VKI_CDROM_DRIVE_STATUS: /* 0x5326 */ -    case VKI_CDROM_CLEAR_OPTIONS: /* 0x5321 */ ++   case VKI_BLKRRPART: ++      break; +    case VKI_BLKGETSIZE: +       PRE_MEM_WRITE( "ioctl(BLKGETSIZE)", ARG3, sizeof(unsigned long));         break; -@@ -3931,14 +3951,31 @@ -       VG_TRACK( post_mem_write,arg3, sizeof(unsigned long)); +@@ -3558,6 +3588,8 @@ +    case VKI_BLKRAGET: +       PRE_MEM_WRITE( "ioctl(BLKRAGET)", ARG3, sizeof(long));         break; -  -+   case VKI_BLKRRPART:  +   case VKI_BLKFLSBUF:  +      break; -    case VKI_BLKGETSIZE: -       VG_TRACK( post_mem_write,arg3, sizeof(unsigned long)); +    case VKI_BLKFRASET: +       break; +    case VKI_BLKFRAGET: +@@ -3624,6 +3656,8 @@ +       PRE_MEM_WRITE( "ioctl(CDROMREADTOCENTRY)", ARG3,  + 		     sizeof(struct vki_cdrom_tocentry));         break; -+   case VKI_BLKGETSIZE64: -+      VG_TRACK( post_mem_write,arg3, sizeof(__vki_u64)); ++   case VKI_CDROMEJECT: ++      break; +    case VKI_CDROMMULTISESSION: /* 0x5310 */ +       PRE_MEM_WRITE( "ioctl(CDROMMULTISESSION)", ARG3, + 		     sizeof(struct vki_cdrom_multisession)); +@@ -4042,6 +4076,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_BLKSSZGET: -+      VG_TRACK( post_mem_write,arg3, sizeof(unsigned long)); ++ ++   case VKI_FDRESET: ++      break; ++   case VKI_FDGETDRVTYP: ++      POST_MEM_WRITE( ARG3, sizeof(char)*16 );  +      break; -+   case VKI_BLKBSZGET: -+      VG_TRACK( post_mem_write,arg3, sizeof(unsigned long)); ++   case VKI_FDPOLLDRVSTAT: ++      POST_MEM_WRITE( ARG3, sizeof(vki_floppy_drive_struct_t) );  +      break; -+   case VKI_BLKBSZSET: ++   case VKI_FDGETPRM: ++      POST_MEM_WRITE( ARG3, sizeof(vki_floppy_struct_t) );  +      break; -       /* Hard disks */ -    case VKI_HDIO_GET_IDENTITY: /* 0x030d */ -       VG_TRACK( post_mem_write,arg3, VKI_SIZEOF_STRUCT_HD_DRIVEID ); +    case VKI_IIOCGETCPS: +       POST_MEM_WRITE( ARG3, VKI_ISDN_MAX_CHANNELS * 2 * sizeof(unsigned long) ); +@@ -4260,6 +4317,8 @@ +    case VKI_BLKROGET: +       POST_MEM_WRITE(ARG3, sizeof(int));         break; -+   case VKI_HDIO_GETGEO: /* 0x0301 */ -+      VG_TRACK( post_mem_write,arg3, sizeof(struct vki_hd_geometry) ); ++   case VKI_BLKRRPART:  +      break; -  -       /* CD ROM stuff (??)  */ -    case VKI_CDROMSUBCHNL: -@@ -3967,6 +4004,7 @@ +    case VKI_BLKGETSIZE: +       POST_MEM_WRITE(ARG3, sizeof(unsigned long)); +       break; +@@ -4268,6 +4327,8 @@ +    case VKI_BLKRAGET: +       POST_MEM_WRITE(ARG3, sizeof(long)); +       break; ++   case VKI_BLKFLSBUF: ++      break; +    case VKI_BLKFRASET: +       break; +    case VKI_BLKFRAGET: +@@ -4309,6 +4370,8 @@ +    case VKI_CDROMREADTOCENTRY: +       POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_tocentry));         break; -       /* The following two are probably bogus (should check args - 	 for readability).  JRS 20021117 */  +   case VKI_CDROMEJECT: -    case VKI_CDROM_DRIVE_STATUS: /* 0x5326 */ -    case VKI_CDROM_CLEAR_OPTIONS: /* 0x5321 */ ++      break; +    case VKI_CDROMMULTISESSION: +       POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_multisession));         break; -diff -urN ../valgrind-2.4.0/include/linux/vki.h valgrind-2.4.0/include/linux/vki.h ---- ../valgrind-2.4.0/include/linux/vki.h	2005-03-10 23:28:14.000000000 -0700 -+++ valgrind-2.4.0/include/linux/vki.h	2005-07-22 03:42:01.000000000 -0600 -@@ -1389,7 +1389,14 @@ - // From linux-2.6.8.1/include/linux/fs.h - //---------------------------------------------------------------------- -  --#define VKI_BLKGETSIZE _VKI_IO(0x12,96) /* return device size /512 (long *arg) */ -+#define VKI_BLKGETSIZE	_VKI_IO(0x12,   96) /* return device size /512 (long *arg) */ -+#define VKI_BLKGETSIZE64 _VKI_IOR(0x12, 114, __vki_u64)	/* return device size in bytes (u64 *arg) */ -+#define VKI_BLKRRPART	_VKI_IO(0x12,	95)	/* re-read partition table */ -+#define VKI_BLKFLSBUF	_VKI_IO(0x12,	97)	/* flush buffer cache */ -+#define VKI_BLKSSZGET	_VKI_IO(0x12,	104)/* get block device sector size */ -+#define VKI_BLKBSZGET	_VKI_IOR(0x12,	112, unsigned long) -+#define VKI_BLKBSZSET	_VKI_IOW(0x12,	113, unsigned long) -+ -  - #define VKI_FIBMAP	_VKI_IO(0x00,1)	/* bmap access */ - #define VKI_FIGETBSZ    _VKI_IO(0x00,2)	/* get the block size used for bmap */ -@@ -1464,6 +1471,7 @@ -                                            (struct cdrom_tochdr) */ - #define VKI_CDROMREADTOCENTRY	0x5306 /* Read TOC entry  -                                            (struct cdrom_tocentry) */ -+#define VKI_CDROMEJECT		0x5309 /* Ejects the cdrom media */ - #define VKI_CDROMSUBCHNL	0x530b /* Read subchannel data  -                                            (struct cdrom_subchnl) */ - #define VKI_CDROMREADMODE2	0x530c /* Read CDROM mode 2 data (2336 Bytes)  -@@ -1674,12 +1682,20 @@ - // From linux-2.6.8.1/include/linux/hdreg.h - //---------------------------------------------------------------------- -  -+#define VKI_HDIO_GETGEO		0x0301	/* get device geometry */ - #define VKI_HDIO_GET_IDENTITY	0x030d	/* get IDE identification info */ -  - // [[Nb: done like this because the original type is a huge struct that will - //   always be the same size.]] - #define VKI_SIZEOF_STRUCT_HD_DRIVEID   512 -  -+struct vki_hd_geometry { -+      unsigned char heads; -+      unsigned char sectors; -+      unsigned short cylinders; -+      unsigned long start; -+}; -+ - //---------------------------------------------------------------------- - // From linux-2.6.8.1/include/linux/fb.h - //---------------------------------------------------------------------- | 
