valgrind: bump to 3.6.1 and add support for ARMv7
We removed the shell script that wrapped valgrind (not nice to install such non-standard things), and will let the user use the uclibc.supp suppression file if needed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
a8041c0973
commit
afabcb6381
@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_VALGRIND
|
||||
bool "valgrind"
|
||||
depends on BR2_i386 || BR2_x86_64
|
||||
depends on BR2_i386 || BR2_x86_64 || BR2_cortex_a8 || \
|
||||
BR2_cortex_a9 || BR2_powerpc
|
||||
help
|
||||
Tool for debugging and profiling Linux programs.
|
||||
|
||||
|
56
package/valgrind/valgrind-3.6.1-largefile.patch
Normal file
56
package/valgrind/valgrind-3.6.1-largefile.patch
Normal file
@ -0,0 +1,56 @@
|
||||
[PATCH] valgrind: don't enable largefile support unconditionally on uClibc
|
||||
|
||||
uClibc can be compiled without largefile support (and errors out if
|
||||
_FILE_OFFSET_BITS is set to 64), so don't define it if that combination
|
||||
is detected.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
|
||||
|
||||
Index: valgrind-3.6.1/coregrind/m_initimg/initimg-linux.c
|
||||
===================================================================
|
||||
--- valgrind-3.6.1.orig/coregrind/m_initimg/initimg-linux.c 2011-07-06 09:45:10.203070009 +0200
|
||||
+++ valgrind-3.6.1/coregrind/m_initimg/initimg-linux.c 2011-07-06 09:45:17.343070005 +0200
|
||||
@@ -54,7 +54,11 @@
|
||||
|
||||
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
|
||||
#define _GNU_SOURCE
|
||||
+#include <features.h>
|
||||
+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
|
||||
+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
+#endif
|
||||
/* This is for ELF types etc, and also the AT_ constants. */
|
||||
#include <elf.h>
|
||||
/* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
|
||||
Index: valgrind-3.6.1/coregrind/m_main.c
|
||||
===================================================================
|
||||
--- valgrind-3.6.1.orig/coregrind/m_main.c 2011-07-06 09:44:22.203070033 +0200
|
||||
+++ valgrind-3.6.1/coregrind/m_main.c 2011-07-06 09:44:42.803070024 +0200
|
||||
@@ -2797,7 +2797,11 @@
|
||||
|
||||
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
|
||||
#define _GNU_SOURCE
|
||||
+#include <features.h>
|
||||
+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
|
||||
+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
+#endif
|
||||
/* This is in order to get AT_NULL and AT_PAGESIZE. */
|
||||
#include <elf.h>
|
||||
/* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
|
||||
Index: valgrind-3.6.1/coregrind/m_ume/elf.c
|
||||
===================================================================
|
||||
--- valgrind-3.6.1.orig/coregrind/m_ume/elf.c 2011-07-06 09:44:51.343070018 +0200
|
||||
+++ valgrind-3.6.1/coregrind/m_ume/elf.c 2011-07-06 09:44:58.833070015 +0200
|
||||
@@ -48,7 +48,11 @@
|
||||
|
||||
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
|
||||
#define _GNU_SOURCE
|
||||
+#include <features.h>
|
||||
+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
|
||||
+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
+#endif
|
||||
/* This is for ELF types etc, and also the AT_ constants. */
|
||||
#include <elf.h>
|
||||
/* --- !!! --- EXTERNAL HEADERS end --- !!! --- */
|
@ -1,17 +1,135 @@
|
||||
--- 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
|
||||
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.6.1/coregrind/m_syswrap/syswrap-linux.c
|
||||
===================================================================
|
||||
--- valgrind-3.6.1.orig/coregrind/m_syswrap/syswrap-linux.c 2011-07-06 09:50:32.243069845 +0200
|
||||
+++ valgrind-3.6.1/coregrind/m_syswrap/syswrap-linux.c 2011-07-06 09:53:39.783069751 +0200
|
||||
@@ -3900,7 +3900,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;
|
||||
|
||||
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 @@
|
||||
+ 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) );
|
||||
@@ -4215,6 +4241,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;
|
||||
@@ -4223,6 +4251,8 @@
|
||||
case VKI_BLKRAGET:
|
||||
PRE_MEM_WRITE( "ioctl(BLKRAGET)", ARG3, sizeof(long));
|
||||
break;
|
||||
+ case VKI_BLKFLSBUF:
|
||||
+ break;
|
||||
case VKI_BLKFRASET:
|
||||
break;
|
||||
case VKI_BLKFRAGET:
|
||||
@@ -4289,6 +4319,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));
|
||||
@@ -4989,7 +5021,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;
|
||||
@@ -5210,6 +5263,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;
|
||||
@@ -5218,6 +5273,8 @@
|
||||
case VKI_BLKRAGET:
|
||||
POST_MEM_WRITE(ARG3, sizeof(long));
|
||||
break;
|
||||
+ case VKI_BLKFLSBUF:
|
||||
+ break;
|
||||
case VKI_BLKFRASET:
|
||||
break;
|
||||
case VKI_BLKFRAGET:
|
||||
@@ -5259,6 +5316,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.6.1/include/vki/vki-linux.h
|
||||
===================================================================
|
||||
--- valgrind-3.6.1.orig/include/vki/vki-linux.h 2011-07-06 09:48:16.733069914 +0200
|
||||
+++ valgrind-3.6.1/include/vki/vki-linux.h 2011-07-06 09:49:49.413069868 +0200
|
||||
@@ -1646,7 +1646,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) */
|
||||
@ -21,11 +139,10 @@
|
||||
#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 @@
|
||||
@@ -1721,6 +1723,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;
|
||||
@ -76,7 +193,7 @@
|
||||
//----------------------------------------------------------------------
|
||||
// From linux-2.6.8.1/include/linux/cdrom.h
|
||||
//----------------------------------------------------------------------
|
||||
@@ -1640,6 +1690,7 @@
|
||||
@@ -1730,6 +1779,7 @@
|
||||
(struct cdrom_tochdr) */
|
||||
#define VKI_CDROMREADTOCENTRY 0x5306 /* Read TOC entry
|
||||
(struct cdrom_tocentry) */
|
||||
@ -84,122 +201,3 @@
|
||||
#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_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,
|
||||
@@ -3550,6 +3578,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;
|
||||
@@ -3558,6 +3588,8 @@
|
||||
case VKI_BLKRAGET:
|
||||
PRE_MEM_WRITE( "ioctl(BLKRAGET)", ARG3, sizeof(long));
|
||||
break;
|
||||
+ case VKI_BLKFLSBUF:
|
||||
+ break;
|
||||
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_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_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) );
|
||||
@@ -4260,6 +4317,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;
|
||||
@@ -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;
|
||||
+ case VKI_CDROMEJECT:
|
||||
+ break;
|
||||
case VKI_CDROMMULTISESSION:
|
||||
POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_multisession));
|
||||
break;
|
@ -1,27 +0,0 @@
|
||||
[PATCH] valgrind: don't enable largefile support unconditionally on uClibc
|
||||
|
||||
uClibc can be compiled without largefile support (and errors out if
|
||||
_FILE_OFFSET_BITS is set to 64), so don't define it if that combination
|
||||
is detected.
|
||||
|
||||
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
|
||||
---
|
||||
coregrind/m_ume.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
Index: valgrind-3.2.3/coregrind/m_ume.c
|
||||
===================================================================
|
||||
--- valgrind-3.2.3.orig/coregrind/m_ume.c
|
||||
+++ valgrind-3.2.3/coregrind/m_ume.c
|
||||
@@ -31,7 +31,11 @@
|
||||
|
||||
|
||||
#define _GNU_SOURCE
|
||||
+#include <features.h>
|
||||
+/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
|
||||
+#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
|
||||
#define _FILE_OFFSET_BITS 64
|
||||
+#endif
|
||||
|
||||
// It seems that on SuSE 9.1 (x86) something in <fcntl.h> messes up stuff
|
||||
// acquired indirectly from vki-x86-linux.h. Therefore our headers must be
|
@ -4,85 +4,26 @@
|
||||
#
|
||||
#############################################################
|
||||
|
||||
VALGRIND_VERSION=3.2.3
|
||||
VALGRIND_SITE:=http://valgrind.org/downloads/
|
||||
VALGRIND_DIR:=$(BUILD_DIR)/valgrind-$(VALGRIND_VERSION)
|
||||
VALGRIND_SOURCE:=valgrind-$(VALGRIND_VERSION).tar.bz2
|
||||
VALGRIND_CAT:=$(BZCAT)
|
||||
VALGRIND_VERSION = 3.6.1
|
||||
VALGRIND_SITE = http://valgrind.org/downloads/
|
||||
VALGRIND_SOURCE = valgrind-$(VALGRIND_VERSION).tar.bz2
|
||||
|
||||
$(DL_DIR)/$(VALGRIND_SOURCE):
|
||||
$(call DOWNLOAD,$(VALGRIND_SITE),$(VALGRIND_SOURCE))
|
||||
VALGRIND_CONF_OPT = --disable-tls
|
||||
|
||||
$(VALGRIND_DIR)/.unpacked: $(DL_DIR)/$(VALGRIND_SOURCE)
|
||||
$(VALGRIND_CAT) $(DL_DIR)/$(VALGRIND_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
|
||||
touch $(VALGRIND_DIR)/.unpacked
|
||||
|
||||
$(VALGRIND_DIR)/.patched: $(VALGRIND_DIR)/.unpacked
|
||||
toolchain/patch-kernel.sh $(VALGRIND_DIR) package/valgrind/ valgrind\*.patch
|
||||
touch $(VALGRIND_DIR)/.patched
|
||||
|
||||
$(VALGRIND_DIR)/.configured: $(VALGRIND_DIR)/.patched
|
||||
(cd $(VALGRIND_DIR); rm -rf config.cache; \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
CC="$(TARGET_CC) $(TARGET_CFLAGS) -I$(LINUX_HEADERS_DIR)/include" \
|
||||
./configure $(QUIET) \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=/usr \
|
||||
$(DISABLE_NLS) \
|
||||
--without-uiout --disable-valgrindmi \
|
||||
--disable-tui --disable-valgrindtk \
|
||||
--without-x --without-included-gettext \
|
||||
--disable-tls \
|
||||
)
|
||||
touch $(VALGRIND_DIR)/.configured
|
||||
|
||||
$(VALGRIND_DIR)/coregrind/valgrind: $(VALGRIND_DIR)/.configured
|
||||
$(MAKE) -C $(VALGRIND_DIR)
|
||||
touch -c $@
|
||||
|
||||
$(TARGET_DIR)/usr/bin/valgrind: $(VALGRIND_DIR)/coregrind/valgrind
|
||||
$(MAKE) \
|
||||
prefix=$(TARGET_DIR)/usr \
|
||||
exec_prefix=$(TARGET_DIR)/usr \
|
||||
bindir=$(TARGET_DIR)/usr/bin \
|
||||
sbindir=$(TARGET_DIR)/usr/sbin \
|
||||
libexecdir=$(TARGET_DIR)/usr/lib \
|
||||
datadir=$(TARGET_DIR)/usr/share \
|
||||
sysconfdir=$(TARGET_DIR)/etc \
|
||||
sharedstatedir=$(TARGET_DIR)/usr/com \
|
||||
localstatedir=$(TARGET_DIR)/var \
|
||||
libdir=$(TARGET_DIR)/usr/lib \
|
||||
infodir=$(TARGET_DIR)/usr/info \
|
||||
mandir=$(TARGET_DIR)/usr/man \
|
||||
includedir=$(TARGET_DIR)/usr/include \
|
||||
-C $(VALGRIND_DIR) install
|
||||
mv $(TARGET_DIR)/usr/bin/valgrind $(TARGET_DIR)/usr/bin/valgrind.bin
|
||||
cp package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/
|
||||
cp package/valgrind/valgrind.sh $(TARGET_DIR)/usr/bin/valgrind
|
||||
chmod a+x $(TARGET_DIR)/usr/bin/valgrind
|
||||
rm -rf $(TARGET_DIR)/usr/share/doc/valgrind
|
||||
touch -c $@
|
||||
|
||||
valgrind: $(TARGET_DIR)/usr/bin/valgrind
|
||||
|
||||
valgrind-source: $(DL_DIR)/$(VALGRIND_SOURCE)
|
||||
|
||||
valgrind-clean:
|
||||
-$(MAKE) -C $(VALGRIND_DIR) clean
|
||||
-rm -f $(TARGET_DIR)/usr/bin/valgrind*
|
||||
rm -rf $(TARGET_DIR)/usr/lib/valgrind
|
||||
|
||||
valgrind-dirclean:
|
||||
rm -rf $(VALGRIND_DIR)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Toplevel Makefile options
|
||||
#
|
||||
#############################################################
|
||||
ifeq ($(BR2_PACKAGE_VALGRIND),y)
|
||||
TARGETS+=valgrind
|
||||
# On ARM, Valgrind only supports ARMv7, and uses the arch part of the
|
||||
# host tuple to determine whether it's being built for ARMv7 or
|
||||
# not. Therefore, we adjust the host tuple to specify we're on
|
||||
# ARMv7. The valgrind package is guaranteed, through Config.in, to
|
||||
# only be selected on Cortex A8 and Cortex A9 platforms.
|
||||
ifeq ($(BR2_cortex_a8)$(BR2_cortex_a9),y)
|
||||
VALGRIND_CONF_OPT += \
|
||||
--host=$(patsubst arm-%,armv7-unknown-%,$(GNU_TARGET_NAME))
|
||||
endif
|
||||
|
||||
define VALGRIND_INSTALL_UCLIBC_SUPP
|
||||
install -D -m 0644 package/valgrind/uclibc.supp $(TARGET_DIR)/usr/lib/valgrind/uclibc.supp
|
||||
endef
|
||||
|
||||
VALGRIND_POST_INSTALL_TARGET_HOOKS += VALGRIND_INSTALL_UCLIBC_SUPP
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,valgrind))
|
||||
|
@ -1,10 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# Valgrind wrapper
|
||||
|
||||
# Use special suppression file for uClibc
|
||||
export VALGRIND_OPTS="$VALGRIND_OPTS --suppressions=/usr/lib/valgrind/uclibc.supp"
|
||||
|
||||
# Use 'exec' to avoid having another shell process hanging around.
|
||||
exec $0.bin "$@"
|
||||
|
Loading…
Reference in New Issue
Block a user