svn commit: r409636 - in head/devel/valgrind-devel: . files

Bryan Drewery bdrewery at FreeBSD.org
Fri Feb 26 19:41:40 UTC 2016


Author: bdrewery
Date: Fri Feb 26 19:41:38 2016
New Revision: 409636
URL: https://svnweb.freebsd.org/changeset/ports/409636

Log:
  - Update to 3.10.1
  - Add pipe(2) syscall
  - Add cpuset_getaffinity(2) syscall
  - Support arguments for cpuset_setaffinity(2) syscall
  - sendfile(2) syscall fixes
  - getsockopt(2) syscall fixes
  - Add missing fcntl(2) handlers [1]
  - Add missing jail syscalls [2]
  - Add missing kldload syscalls [3]
  - Add missing accept4(2) syscall [4]
  
  PR:	196451 [1]
  Obtained from:	https://bitbucket.org/stass/valgrind-freebsd/issues/15/missing-fcntl-commands [1]
  PR:	152899 [2]
  Obtained from:	https://bitbucket.org/stass/valgrind-freebsd/pull-requests/10/implement-some-of-the-jails-syscalls/diff [2]
  
  Obtained from:	https://bitbucket.org/stass/valgrind-freebsd/pull-requests/11/fix-issue-25-add-kldload-kldunload-kldfind/diff [3]
  Obtained from:	https://bitbucket.org/stass/valgrind-freebsd/pull-requests/8/fix-issue-21-accept4-is-unimplemented-on/diff [4]

Added:
  head/devel/valgrind-devel/files/accept4_syscall.patch   (contents, props changed)
  head/devel/valgrind-devel/files/jail_syscalls.patch   (contents, props changed)
  head/devel/valgrind-devel/files/kldload_syscalls.patch   (contents, props changed)
  head/devel/valgrind-devel/files/missing_fcntls.patch   (contents, props changed)
Modified:
  head/devel/valgrind-devel/Makefile
  head/devel/valgrind-devel/distinfo

Modified: head/devel/valgrind-devel/Makefile
==============================================================================
--- head/devel/valgrind-devel/Makefile	Fri Feb 26 19:26:48 2016	(r409635)
+++ head/devel/valgrind-devel/Makefile	Fri Feb 26 19:41:38 2016	(r409636)
@@ -2,9 +2,9 @@
 # $FreeBSD$
 
 PORTNAME=	valgrind
-PORTVERSION=	3.10.0.20150126
+PORTVERSION=	3.10.1.20160113
 DISTVERSIONPREFIX=	freebsd-
-PORTREVISION=	2
+PORTREVISION=	0
 PORTEPOCH=	1
 CATEGORIES=	devel
 MASTER_SITES=	https://bitbucket.org/${BB_ACCOUNT}/${BB_PROJECT}/get/${BB_COMMIT}.tar.gz?dummy=/ \
@@ -14,7 +14,7 @@ PKGNAMESUFFIX=	-devel
 MAINTAINER=	bdrewery at FreeBSD.org
 COMMENT=	Memory debugging and profiling tool
 
-BB_COMMIT=	963c4a777573
+BB_COMMIT=	ce1acb28953f
 BB_ACCOUNT=	stass
 BB_PROJECT=	valgrind-freebsd
 
@@ -47,6 +47,12 @@ GNU_CONFIGURE=	yes
 USE_LDCONFIG=	yes
 SHEBANG_FILES=	callgrind/callgrind_annotate.in callgrind/callgrind_control.in
 
+EXTRA_PATCHES=	\
+		${FILESDIR}/accept4_syscall.patch:-p1 \
+		${FILESDIR}/jail_syscalls.patch:-p1 \
+		${FILESDIR}/kldload_syscalls.patch:-p1 \
+		${FILESDIR}/missing_fcntls.patch:-p1
+
 PORTDOCS=	html
 
 WRKSRC=		${WRKDIR}/${BB_ACCOUNT}-${BB_PROJECT}-${BB_COMMIT}

Modified: head/devel/valgrind-devel/distinfo
==============================================================================
--- head/devel/valgrind-devel/distinfo	Fri Feb 26 19:26:48 2016	(r409635)
+++ head/devel/valgrind-devel/distinfo	Fri Feb 26 19:41:38 2016	(r409636)
@@ -1,2 +1,2 @@
-SHA256 (valgrind-freebsd-3.10.0.20150126.tar.gz) = 22086b8d36056dbcf0f95b4737e03a206058e4fa97e097a34f4275ded6849103
-SIZE (valgrind-freebsd-3.10.0.20150126.tar.gz) = 12185205
+SHA256 (valgrind-freebsd-3.10.1.20160113.tar.gz) = b580fcacf06befce33a4ba4badaa346b5e57c25774f62af38488dec6ad01eb8c
+SIZE (valgrind-freebsd-3.10.1.20160113.tar.gz) = 12084614

Added: head/devel/valgrind-devel/files/accept4_syscall.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/valgrind-devel/files/accept4_syscall.patch	Fri Feb 26 19:41:38 2016	(r409636)
@@ -0,0 +1,56 @@
+# HG changeset patch
+# User Bitbucket <noreply at bitbucket.org>
+# Date 0 0
+# Node ID af5523fe25247f537884116bd37e8ce171ba837e
+# Parent  ce1acb28953fd6928ccb8f9511e374eab66e8625
+# Parent  22cf2727f838e9f5efaeba377341c3807d74dbdb
+Merge preview of source (22cf2727f838e9f5efaeba377341c3807d74dbdb) to destination (ce1acb28953fd6928ccb8f9511e374eab66e8625).
+
+diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r af5523fe25247f537884116bd37e8ce171ba837e coregrind/m_syswrap/syswrap-freebsd.c
+--- a/coregrind/m_syswrap/syswrap-freebsd.c
++++ b/coregrind/m_syswrap/syswrap-freebsd.c
+@@ -480,6 +480,23 @@
+    SET_STATUS_from_SysRes(r);
+ }
+ 
++PRE(sys_accept4)
++{
++   *flags |= SfMayBlock;
++   PRINT("sys_accept4 ( %ld, %#lx, %ld, %ld)",ARG1,ARG2,ARG3,ARG4);
++   PRE_REG_READ4(long, "accept4",
++                 int, s, struct sockaddr *, addr, int, *addrlen, int, flags);
++   ML_(generic_PRE_sys_accept)(tid, ARG1,ARG2,ARG3);
++}
++POST(sys_accept4)
++{
++   SysRes r;
++   vg_assert(SUCCESS);
++   r = ML_(generic_POST_sys_accept)(tid, VG_(mk_SysRes_Success)(RES),
++                                         ARG1,ARG2,ARG3);
++   SET_STATUS_from_SysRes(r);
++}
++
+ PRE(sys_sendto)
+ {
+    *flags |= SfMayBlock;
+@@ -4307,7 +4324,8 @@
+ 
+    BSDXY(__NR___semctl,			sys___semctl),			// 510
+    BSDXY(__NR_shmctl,			sys_shmctl),			// 512
+-
++   
++   BSDXY(__NR_accept4,           sys_accept4),            //541
+    BSDXY(__NR_pipe2,			sys_pipe2),			// 542
+ 
+    BSDX_(__NR_fake_sigreturn,		sys_fake_sigreturn),		// 1000, fake sigreturn
+diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r af5523fe25247f537884116bd37e8ce171ba837e include/vki/vki-scnums-freebsd.h
+--- a/include/vki/vki-scnums-freebsd.h
++++ b/include/vki/vki-scnums-freebsd.h
+@@ -407,6 +407,7 @@
+ #define	__NR_posix_openpt	504
+ #define	__NR___semctl		510
+ #define	__NR_shmctl		512
++#define __NR_accept4		541
+ #define	__NR_pipe2		542
+ 
+ #define __NR_fake_sigreturn	1000

Added: head/devel/valgrind-devel/files/jail_syscalls.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/valgrind-devel/files/jail_syscalls.patch	Fri Feb 26 19:41:38 2016	(r409636)
@@ -0,0 +1,87 @@
+# HG changeset patch
+# User Bitbucket <noreply at bitbucket.org>
+# Date 0 0
+# Node ID 90c6097540f35e312d34340b916296130003c851
+# Parent  ce1acb28953fd6928ccb8f9511e374eab66e8625
+# Parent  5662e704b72c7ebb116f8478a4ff3847acc72fc6
+Merge preview of source (5662e704b72c7ebb116f8478a4ff3847acc72fc6) to destination (ce1acb28953fd6928ccb8f9511e374eab66e8625).
+
+diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r 90c6097540f35e312d34340b916296130003c851 coregrind/m_syswrap/syswrap-freebsd.c
+--- a/coregrind/m_syswrap/syswrap-freebsd.c
++++ b/coregrind/m_syswrap/syswrap-freebsd.c
+@@ -3670,6 +3670,42 @@
+         POST_MEM_WRITE( ARG5, ARG4 );
+ }
+ 
++PRE(sys_jail_get)
++{
++
++	PRINT("sys_jail_get ( %#lx, %lu, %ld )", ARG1, ARG2, ARG3);
++	PRE_REG_READ3(int, "jail_get", struct vki_iovec *, iov, unsigned int,
++		niov, int, flags);
++	PRE_MEM_WRITE("jail_get", ARG1, ARG2 * sizeof(struct vki_iovec));
++}
++
++POST(sys_jail_get)
++{
++	vg_assert(SUCCESS);
++	if (RES != -1)
++		POST_MEM_WRITE(ARG1, ARG2);
++}
++
++PRE(sys_jail_set)
++{
++	PRINT("sys_jail_set ( %#lx, %lu, %ld )", ARG1, ARG2, ARG3);
++	PRE_REG_READ3(int, "jail_set", struct vki_iovec *, iov, unsigned int,
++		niov, int, flags);
++	PRE_MEM_WRITE("jail_set", ARG1, ARG2 * sizeof(struct vki_iovec));
++}
++
++PRE(sys_jail_attach)
++{
++	PRINT("sys_jail_attach ( %ld )", ARG1);
++	PRE_REG_READ1(int, "jail_attach", int, jid);
++}
++
++PRE(sys_jail_remove)
++{
++	PRINT("sys_jail_remove ( %ld )", ARG1);
++	PRE_REG_READ1(int, "jail_remove", int, jid);
++}
++
+ #undef PRE
+ #undef POST
+ 
+@@ -4219,7 +4255,7 @@
+    BSDXY(__NR__umtx_lock,		sys__umtx_lock),		// 434
+    BSDXY(__NR__umtx_unlock,		sys__umtx_unlock),		// 435
+ 
+-   // jail_attach							   436
++   BSDX_(__NR_jail_attach,		sys_jail_attach),	// 436
+    // extattr_list_fd							   437
+    // extattr_list_file							   438
+    // extattr_list_link							   439
+@@ -4303,6 +4339,10 @@
+    BSDX_(__NR_symlinkat,		sys_symlinkat),			// 502
+    BSDX_(__NR_unlinkat,			sys_unlinkat),			// 503
+ 
++   BSDXY(__NR_jail_get,			sys_jail_get),			// 506
++   BSDX_(__NR_jail_set,			sys_jail_set),			// 507
++   BSDX_(__NR_jail_remove,		sys_jail_remove),		// 508
++
+    // posix_openpt							   504
+ 
+    BSDXY(__NR___semctl,			sys___semctl),			// 510
+diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r 90c6097540f35e312d34340b916296130003c851 include/vki/vki-scnums-freebsd.h
+--- a/include/vki/vki-scnums-freebsd.h
++++ b/include/vki/vki-scnums-freebsd.h
+@@ -405,6 +405,9 @@
+ #define	__NR_symlinkat		502
+ #define	__NR_unlinkat		503
+ #define	__NR_posix_openpt	504
++#define	__NR_jail_get		506
++#define	__NR_jail_set		507
++#define	__NR_jail_remove	508
+ #define	__NR___semctl		510
+ #define	__NR_shmctl		512
+ #define	__NR_pipe2		542

Added: head/devel/valgrind-devel/files/kldload_syscalls.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/valgrind-devel/files/kldload_syscalls.patch	Fri Feb 26 19:41:38 2016	(r409636)
@@ -0,0 +1,127 @@
+# HG changeset patch
+# User Bitbucket <noreply at bitbucket.org>
+# Date 0 0
+# Node ID 7ecd33d57049211e1084fc5e8bf588da49088d75
+# Parent  ce1acb28953fd6928ccb8f9511e374eab66e8625
+# Parent  79bf8f58bec842a1aa94f4fff2e4884a6bb5378b
+Merge preview of source (79bf8f58bec842a1aa94f4fff2e4884a6bb5378b) to destination (ce1acb28953fd6928ccb8f9511e374eab66e8625).
+
+diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r 7ecd33d57049211e1084fc5e8bf588da49088d75 coregrind/m_syswrap/syswrap-freebsd.c
+--- a/coregrind/m_syswrap/syswrap-freebsd.c
++++ b/coregrind/m_syswrap/syswrap-freebsd.c
+@@ -1246,6 +1246,52 @@
+    POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs6) );
+ }
+ 
++/* ---------------------------------------------------------------------
++   kld* wrappers
++   ------------------------------------------------------------------ */
++
++PRE(sys_kldload)
++{
++   PRINT("sys_kldload ( %#lx(%s) )", ARG1, (char *)ARG1);
++   PRE_REG_READ1(int, "kldload", const char *, "file");
++
++   PRE_MEM_RASCIIZ( "kldload(file)", ARG1 );
++}
++
++PRE(sys_kldunload)
++{
++   PRINT("sys_kldunload ( %ld )", ARG1);
++   PRE_REG_READ1(int, "kldunload", int, "fileid");
++}
++
++PRE(sys_kldfind)
++{
++   PRINT("sys_kldfind ( %#lx(%s) )", ARG1, (char *)ARG1);
++   PRE_REG_READ1(int, "kldfind", const char *, "file");
++
++   PRE_MEM_RASCIIZ( "kldfind(file)", ARG1 );
++}
++
++PRE(sys_kldnext)
++{
++   PRINT("sys_kldnext ( %ld )", ARG1);
++   PRE_REG_READ1(int, "kldnext", int, "fileid");
++}
++
++PRE(sys_kldsym)
++{
++   PRINT("sys_kldsym ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3 );
++   PRE_REG_READ3(int, "kldsym", int, "fileid", int, "command", void*, "data");
++   PRE_MEM_READ( "kldsym(data)", ARG3, sizeof(struct vki_kld_sym_lookup) );
++   struct vki_kld_sym_lookup *kslp = (struct vki_kld_sym_lookup *)ARG3;
++   PRE_MEM_RASCIIZ( "kldsym(data.symname)", (Addr)kslp->symname );
++}
++POST(sys_kldsym)
++{
++   struct vki_kld_sym_lookup *kslp = (struct vki_kld_sym_lookup *)ARG3;
++   POST_MEM_WRITE( (Addr)&kslp->symvalue, sizeof(kslp->symvalue) );
++   POST_MEM_WRITE( (Addr)&kslp->symsize, sizeof(kslp->symsize) );
++}
+ 
+ #if 0
+ /* ---------------------------------------------------------------------
+@@ -3389,14 +3435,14 @@
+ 	    moans--;
+ 	    VG_(message)(Vg_UserMsg, 
+ 			 "Warning: noted but unhandled ioctl 0x%lx"
+-			 " with no size/direction hints",
++			 " with no size/direction hints\n",
+ 			 ARG2); 
+ 	    VG_(message)(Vg_UserMsg, 
+ 			 "   This could cause spurious value errors"
+-			 " to appear.");
++			 " to appear.\n");
+ 	    VG_(message)(Vg_UserMsg, 
+ 			 "   See README_MISSING_SYSCALL_OR_IOCTL for "
+-			 "guidance on writing a proper wrapper." );
++			 "guidance on writing a proper wrapper.\n" );
+ 	 }
+    } else {
+ 	 if ((dir & _VKI_IOC_WRITE) && size > 0)
+@@ -4054,10 +4100,10 @@
+ // BSDX_(__NR_modfnext,			sys_modfnext),			// 302
+    BSDX_(__NR_modfind,			sys_modfind),			// 303
+ 
+-// BSDX_(__NR_kldload,			sys_kldload),			// 304
+-// BSDX_(__NR_kldunload,		sys_kldunload),			// 305
+-// BSDX_(__NR_kldfind,			sys_kldfind),			// 306
+-// BSDX_(__NR_kldnext,			sys_kldnext),			// 307
++   BSDX_(__NR_kldload,			sys_kldload),			// 304
++   BSDX_(__NR_kldunload,		sys_kldunload),			// 305
++   BSDX_(__NR_kldfind,			sys_kldfind),			// 306
++   BSDX_(__NR_kldnext,			sys_kldnext),			// 307
+ 
+ // BSDXY(__NR_kldstat,			sys_kldstat),			// 308
+ // BSDX_(__NR_kldfirstmod,		sys_kldfirstmod),		// 309
+@@ -4095,7 +4141,7 @@
+    BSDX_(__NR_utrace,			sys_utrace),			// 335
+ 
+    // compat3 sendfile							   336
+-// BSDXY(__NR_kldsym,			sys_kldsym),			// 337
++   BSDXY(__NR_kldsym,			sys_kldsym),			// 337
+ // BSDX_(__NR_jail,			sys_jail),			// 338
+    // unimpl pioctl							   339
+ 
+diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r 7ecd33d57049211e1084fc5e8bf588da49088d75 include/vki/vki-freebsd.h
+--- a/include/vki/vki-freebsd.h
++++ b/include/vki/vki-freebsd.h
+@@ -2129,6 +2129,17 @@
+ 	void	*spare[3];
+ };
+ 
++//----------------------------------------------------------------------
++// From sys/linker.h
++//----------------------------------------------------------------------
++
++struct vki_kld_sym_lookup {
++    int         version;        /* set to sizeof(struct kld_sym_lookup) */
++    char        *symname;       /* Symbol name we are looking up */
++    unsigned long symvalue;
++    vki_size_t  symsize;
++};
++
+ /*--------------------------------------------------------------------*/
+ /*--- end                                                          ---*/
+ /*--------------------------------------------------------------------*/

Added: head/devel/valgrind-devel/files/missing_fcntls.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/valgrind-devel/files/missing_fcntls.patch	Fri Feb 26 19:41:38 2016	(r409636)
@@ -0,0 +1,54 @@
+diff --git a/coregrind/m_syswrap/syswrap-freebsd.c b/coregrind/m_syswrap/syswrap-freebsd.c
+--- a/coregrind/m_syswrap/syswrap-freebsd.c
++++ b/coregrind/m_syswrap/syswrap-freebsd.c
+@@ -3278,9 +3278,12 @@ PRE(sys_fcntl)
+ 
+    // These ones use ARG3 as "arg".
+    case VKI_F_DUPFD:
++   case VKI_F_DUPFD_CLOEXEC:
+    case VKI_F_SETFD:
+    case VKI_F_SETFL:
+    case VKI_F_SETOWN:
++   case VKI_F_READAHEAD:
++   case VKI_F_RDAHEAD:
+       PRINT("sys_fcntl[ARG3=='arg'] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3);
+       PRE_REG_READ3(long, "fcntl",
+                     unsigned int, fd, unsigned int, cmd, unsigned long, arg);
+@@ -3300,6 +3303,7 @@ PRE(sys_fcntl)
+ 
+    // This one uses ARG3 as "oldd" and ARG4 as "newd".
+    case VKI_F_DUP2FD:
++   case VKI_F_DUP2FD_CLOEXEC:
+       PRINT("sys_fcntl[ARG3=='oldd', ARG4=='newd'] ( %ld, %ld, %ld, %ld )",
+          ARG1,ARG2,ARG3,ARG4);
+       PRE_REG_READ4(long, "fcntl",
+@@ -3339,6 +3343,15 @@ POST(sys_fcntl)
+             ML_(record_fd_open_named)(tid, RES);
+       }
+    }
++   else if (ARG2 == VKI_F_DUPFD_CLOEXEC) {
++      if (!ML_(fd_allowed)(RES, "fcntl(DUPFD_CLOEXEC)", tid, True)) {
++         VG_(close)(RES);
++         SET_STATUS_Failure( VKI_EMFILE );
++      } else {
++         if (VG_(clo_track_fds))
++            ML_(record_fd_open_named)(tid, RES);
++      }
++   }
+ }
+ 
+ PRE(sys_ioctl)
+diff --git a/include/vki/vki-freebsd.h b/include/vki/vki-freebsd.h
+--- a/include/vki/vki-freebsd.h
++++ b/include/vki/vki-freebsd.h
+@@ -1554,6 +1554,10 @@ struct vki_dirent {
+ #define VKI_F_SETLK		12	/* set record locking information */
+ #define VKI_F_SETLKW		13	/* F_SETLK; wait if blocked */
+ #define VKI_F_SETLK_REMOTE	14	/* debugging support for remote locks */
++#define VKI_F_READAHEAD		15	/* read ahead */
++#define VKI_F_RDAHEAD		16	/* Darwin compatible read ahead */
++#define VKI_F_DUPFD_CLOEXEC	17	/* Like F_DUPFD, but FD_CLOEXEC is set */
++#define VKI_F_DUP2FD_CLOEXEC	18	/* Like F_DUP2FD, but FD_CLOEXEC is set */
+ 
+ /* for F_[GET|SET]FL */
+ #define VKI_FD_CLOEXEC	1	/* actually anything with low bit set goes */


More information about the svn-ports-all mailing list