From bea251c69668ce002420cd68d2c490c8f8d8ddf0 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 31 Dec 2011 15:07:08 +0100 Subject: valgrind: bump to 3.7.0 and fix build with ccache After bumping to 3.7.0, the valgrind-3.6.1-configure-support-linux-3.patch is no longer necessary since it was added upstream. The valgrind-3.7.0-compiler-check.patch patch is added to fix a compiler version check issue (patch taken from the upstream Subversion repository). The valgrind-3.7.0-fix-ccache-support.patch is added to fix the build process when ccache is used. Signed-off-by: Thomas Petazzoni Tested-by: Marek Belisko Signed-off-by: Peter Korsgaard --- package/valgrind/valgrind-3.7.0-more-ioctls.patch | 203 ++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 package/valgrind/valgrind-3.7.0-more-ioctls.patch (limited to 'package/valgrind/valgrind-3.7.0-more-ioctls.patch') diff --git a/package/valgrind/valgrind-3.7.0-more-ioctls.patch b/package/valgrind/valgrind-3.7.0-more-ioctls.patch new file mode 100644 index 000000000..fb5838120 --- /dev/null +++ b/package/valgrind/valgrind-3.7.0-more-ioctls.patch @@ -0,0 +1,203 @@ +Add various ioctl()s + +Patch initially written by Eric Andersen . + +Signed-off-by: Thomas Petazzoni + +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) -- cgit v1.2.3