diff options
author | Eric Andersen <andersen@codepoet.org> | 2004-04-21 19:54:31 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2004-04-21 19:54:31 +0000 |
commit | a61b9c45dfe4dcbadfd44041e88ce38701d37ee8 (patch) | |
tree | f141fd0a5c43801d285644fd59082abd354d2c7a /sources/valgrind.patch | |
parent | 63914bb2aca24e9e7dd9cde985b01f8793a74d9b (diff) |
Update to latest valgrind
Diffstat (limited to 'sources/valgrind.patch')
-rw-r--r-- | sources/valgrind.patch | 244 |
1 files changed, 101 insertions, 143 deletions
diff --git a/sources/valgrind.patch b/sources/valgrind.patch index 230feba3b..d0946bd9c 100644 --- a/sources/valgrind.patch +++ b/sources/valgrind.patch @@ -1,157 +1,115 @@ -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-10-13 15:06:33.000000000 -0600 -@@ -827,8 +827,10 @@ - void VG_(__libc_freeres_wrapper)( void ) - { - int res; -+#ifndef __UCLIBC__ - extern void __libc_freeres(void); - __libc_freeres(); -+#endif - VALGRIND_MAGIC_SEQUENCE(res, 0 /* default */, - VG_USERREQ__LIBC_FREERES_DONE, 0, 0, 0, 0); - /*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-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? */ - -+#ifndef __UCLIBC__ -+ - #undef _IO_flockfile - void _IO_flockfile ( _IO_FILE * file ) - { -@@ -3139,6 +3141,7 @@ - } - weak_alias(_IO_funlockfile, funlockfile); - -+#endif - - /* This doesn't seem to be needed to simulate libpthread.so's external - 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-10-13 16:35:33.000000000 -0600 -@@ -2427,6 +2427,119 @@ - KERNEL_DO_SYSCALL(tid,res); - break; +--- valgrind-2.1.1.orig/coregrind/vg_syscalls.c 2004-02-24 17:07:10.000000000 -0700 ++++ valgrind-2.1.1/coregrind/vg_syscalls.c 2004-04-16 18:13:11.000000000 -0600 +@@ -3231,6 +3245,93 @@ + case CDROM_CLEAR_OPTIONS: /* 0x5321 */ + break; -+ /* Stuff added by Erik Andersen for general device probing/handling */ ++ /* Stuff added by Erik Andersen for general device probing/handling */ +#define BLKSSZGET _IO(0x12,104) -+ case BLKSSZGET: -+ 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, 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; ++ case BLKSSZGET: ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKSSZGET)", arg3, ++ sizeof(int)); ++ break; ++#undef _IOR ++#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),sizeof(size)) ++#define BLKGETSIZE64 _IOR(0x12,114,sizeof(uint64_t)) ++ case BLKGETSIZE64: ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(BLKGETSIZE64)", arg3, ++ sizeof(uint64_t)); ++ break; +#define HDIO_GETGEO 0x0301 /* get device geometry */ -+ case HDIO_GETGEO: -+ { -+ struct hd_geometry { -+ unsigned char heads; -+ unsigned char sectors; -+ unsigned short cylinders; -+ unsigned long start; -+ }; ++ case HDIO_GETGEO: ++ { ++ struct hd_geometry { ++ unsigned char heads; ++ unsigned char sectors; ++ unsigned short cylinders; ++ unsigned long start; ++ }; + -+ 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; ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GETGEO)", 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, 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, struct_hd_driveid_size); -+ break; ++#define struct_hd_driveid_size 256 /* ATA6 specifies words 0-255 */ ++ case HDIO_GET_IDENTITY: ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(HDIO_GET_IDENTITY)", arg3, ++ struct_hd_driveid_size); ++ break; +#define SCSI_IOCTL_GET_IDLUN 0x5382 -+ case SCSI_IOCTL_GET_IDLUN: -+ { -+ struct scsi_idlun -+ { -+ int mux4; -+ int host_unique_id; ++ case SCSI_IOCTL_GET_IDLUN: ++ { ++ struct scsi_idlun ++ { ++ int mux4; ++ int host_unique_id; + -+ }; ++ }; + -+ 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; ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_IDLUN)", arg3, ++ sizeof(struct scsi_idlun)); ++ } ++ break; +#define SCSI_IOCTL_SEND_COMMAND 1 -+ case SCSI_IOCTL_SEND_COMMAND: -+ 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; ++ case SCSI_IOCTL_SEND_COMMAND: ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_SEND_COMMAND)", 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, 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, tid, "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; ++ case SCSI_IOCTL_GET_BUS_NUMBER: ++ SYSCALL_TRACK( pre_mem_write, tid, "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", 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, tid, "ioctl(SCSI_IOCTL_PROBE_HOST)", arg3, ++ sizeof(int)); ++ } ++ break; +#define BLKFLSBUF _IO(0x12,97) -+ case BLKFLSBUF: -+ KERNEL_DO_SYSCALL(tid,res); -+ break; ++ case BLKFLSBUF: ++ break; +#define BLKRRPART _IO(0x12,95) -+ case BLKRRPART: -+ KERNEL_DO_SYSCALL(tid,res); -+ break; ++ case BLKRRPART: ++ break; +#define MTIOCTOP _IO(0x6d,0x1) -+ case MTIOCTOP: -+ { -+ 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; ++ case MTIOCTOP: ++ { ++ 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)); ++ } ++ 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 + /* 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 +--- valgrind-2.1.1.orig/coregrind/vg_libpthread.c 2004-03-08 08:57:17.000000000 -0700 ++++ valgrind-2.1.1/coregrind/vg_libpthread.c 2004-04-16 17:58:31.000000000 -0600 +@@ -3175,6 +3175,8 @@ + pthread_mutex). So basically, this is completely broken on recent + glibcs. */ + ++#ifndef __UCLIBC__ ++ + #undef _IO_flockfile + void _IO_flockfile ( _IO_FILE * file ) + { +@@ -3192,6 +3194,7 @@ + weak_alias(_IO_funlockfile, funlockfile); + #endif + ++#endif + + /* This doesn't seem to be needed to simulate libpthread.so's external + interface, but many people complain about its absence. */ |