FreeBSD Bugzilla – Attachment 200787 Details for
Bug 234631
devel/valgrind: Fixes for FreeBSD 12.x support
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
valgrind12.diff (text/plain), 37.77 KB, created by
Julien Nadeau
on 2019-01-05 08:16:39 UTC
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Julien Nadeau
Created:
2019-01-05 08:16:39 UTC
Size:
37.77 KB
patch
obsolete
>Index: devel/valgrind/Makefile >=================================================================== >--- devel/valgrind/Makefile (revision 489302) >+++ devel/valgrind/Makefile (working copy) >@@ -5,7 +5,7 @@ > PORTVERSION= 3.10.1.20160113 > DISTVERSIONPREFIX= freebsd- > PORTREVISION= 6 >-PORTEPOCH= 1 >+PORTEPOCH= 2 > CATEGORIES= devel > MASTER_SITES= https://bitbucket.org/${BB_ACCOUNT}/${BB_PROJECT}/get/${BB_COMMIT}.tar.gz?dummy=/ \ > http://mirror.shatow.net/freebsd/${PORTNAME}/ >@@ -47,12 +47,6 @@ > 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} >@@ -61,10 +55,6 @@ > > .include <bsd.port.options.mk> > >-.if ${OSVERSION} > 1200030 >-EXTRA_PATCHES+= ${FILESDIR}/extra-patch-ino64:-p1 >-.endif >- > .if ${ARCH} == "amd64" > PLIST_SUB+= AMD64="" ARCH=amd64 > . if !${PORT_OPTIONS:M32BIT} >Index: devel/valgrind/files/accept4_syscall.patch >=================================================================== >--- devel/valgrind/files/accept4_syscall.patch (revision 489302) >+++ devel/valgrind/files/accept4_syscall.patch (nonexistent) >@@ -1,56 +0,0 @@ >-# HG changeset patch >-# User Bitbucket <noreply@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 >Index: devel/valgrind/files/extra-patch-ino64 >=================================================================== >--- devel/valgrind/files/extra-patch-ino64 (revision 489302) >+++ devel/valgrind/files/extra-patch-ino64 (nonexistent) >@@ -1,241 +0,0 @@ >-From 6aaeefab2490d56743ec49d0e20d3fd6ff45fb55 Mon Sep 17 00:00:00 2001 >-From: Roman Bogorodskiy <bogorodskiy@gmail.com> >-Date: Sat, 9 Sep 2017 18:27:15 +0400 >-Subject: [PATCH v2] ino64 support >- >---- >- coregrind/m_syswrap/priv_syswrap-freebsd.h | 4 ++ >- coregrind/m_syswrap/syswrap-freebsd.c | 65 ++++++++++++++++++++++++++++++ >- include/vki/vki-freebsd.h | 56 +++++++++++++++++++++++++ >- include/vki/vki-scnums-freebsd.h | 4 ++ >- 4 files changed, 129 insertions(+) >- >-diff --git a/coregrind/m_syswrap/priv_syswrap-freebsd.h b/coregrind/m_syswrap/priv_syswrap-freebsd.h >-index 63d122f..715ad48 100644 >---- a/coregrind/m_syswrap/priv_syswrap-freebsd.h >-+++ b/coregrind/m_syswrap/priv_syswrap-freebsd.h >-@@ -97,10 +97,12 @@ DECL_TEMPLATE(freebsd, sys_setegid); >- DECL_TEMPLATE(freebsd, sys_seteuid); >- DECL_TEMPLATE(freebsd, sys_stat); >- DECL_TEMPLATE(freebsd, sys_fstat); >-+DECL_TEMPLATE(freebsd, sys_fstat64); >- DECL_TEMPLATE(freebsd, sys_lstat); >- DECL_TEMPLATE(freebsd, sys_pathconf); >- DECL_TEMPLATE(freebsd, sys_fpathconf); >- DECL_TEMPLATE(freebsd, sys_getdirentries); >-+DECL_TEMPLATE(freebsd, sys_getdirentries64); >- DECL_TEMPLATE(freebsd, sys_mmap); >- DECL_TEMPLATE(freebsd, sys___syscall); >- DECL_TEMPLATE(freebsd, sys_lseek); >-@@ -208,6 +210,7 @@ DECL_TEMPLATE(freebsd, sys_kevent); >- DECL_TEMPLATE(freebsd, sys_sendfile); >- DECL_TEMPLATE(freebsd, sys_statfs6); >- DECL_TEMPLATE(freebsd, sys_fstatfs6); >-+DECL_TEMPLATE(freebsd, sys_fstatfs64); >- DECL_TEMPLATE(freebsd, sys_fhstatfs6); >- DECL_TEMPLATE(freebsd, sys_thr_exit); >- DECL_TEMPLATE(freebsd, sys_thr_self); >-@@ -251,6 +254,7 @@ DECL_TEMPLATE(freebsd, sys_fchmodat); >- DECL_TEMPLATE(freebsd, sys_fchownat); >- DECL_TEMPLATE(freebsd, sys_fexecve); >- DECL_TEMPLATE(freebsd, sys_fstatat); >-+DECL_TEMPLATE(freebsd, sys_fstatat64); >- DECL_TEMPLATE(freebsd, sys_futimesat); >- DECL_TEMPLATE(freebsd, sys_linkat); >- DECL_TEMPLATE(freebsd, sys_mkdirat); >-diff --git a/coregrind/m_syswrap/syswrap-freebsd.c b/coregrind/m_syswrap/syswrap-freebsd.c >-index bf6b1f1..978e98e 100644 >---- a/coregrind/m_syswrap/syswrap-freebsd.c >-+++ b/coregrind/m_syswrap/syswrap-freebsd.c >-@@ -885,6 +885,18 @@ POST(sys_fstat) >- POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) ); >- } >- >-+PRE(sys_fstat64) >-+{ >-+ PRINT("sys_fstat64 ( %ld, %#lx )", ARG1, ARG2); >-+ PRE_REG_READ2(long, "fstat", unsigned long, fd, struct stat *, buf); >-+ PRE_MEM_WRITE( "fstat(buf)", ARG2, sizeof(struct vki_stat64) ); >-+} >-+ >-+POST(sys_fstat64) >-+{ >-+ POST_MEM_WRITE( ARG2, sizeof(struct vki_stat64) ); >-+} >-+ >- PRE(sys_pathconf) >- { >- PRINT("sys_pathconf ( %#lx(%s), %ld )",ARG1,(char *)ARG1,ARG2); >-@@ -1029,6 +1041,26 @@ POST(sys_getdirentries) >- } >- } >- >-+PRE(sys_getdirentries64) >-+{ >-+ *flags |= SfMayBlock; >-+ PRINT("sys_getdents ( %ld, %#lx, %ld )", ARG1,ARG2,ARG3); >-+ PRE_REG_READ3(vki_ssize_t, "getdirentries", >-+ unsigned int, fd, struct dirent *, dirp, >-+ vki_size_t, count); >-+ PRE_MEM_WRITE( "getdirentries(dirp)", ARG2, ARG3 ); >-+} >-+ >-+POST(sys_getdirentries64) >-+{ >-+ vg_assert(SUCCESS); >-+ if (RES > 0) { >-+ POST_MEM_WRITE( ARG2, RES ); >-+ if ( ARG4 != 0 ) >-+ POST_MEM_WRITE( ARG4, sizeof (vki_off_t)); >-+ } >-+} >-+ >- PRE(sys_seteuid) >- { >- PRINT("sys_seteuid ( %ld )", ARG1); >-@@ -1251,6 +1283,19 @@ POST(sys_fstatfs6) >- POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs6) ); >- } >- >-+PRE(sys_fstatfs64) >-+{ >-+ PRINT("sys_fstatfs64 ( %ld, %#lx )", ARG1, ARG2); >-+ PRE_REG_READ2(long, "fstatfs6", >-+ unsigned int, fd, struct statfs *, buf); >-+ PRE_MEM_WRITE( "fstatfs6(buf)", ARG2, sizeof(struct vki_statfs64) ); >-+} >-+ >-+POST(sys_fstatfs64) >-+{ >-+ POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs64) ); >-+} >-+ >- PRE(sys_statfs6) >- { >- PRINT("sys_statfs6 ( %#lx(%s), %#lx )",ARG1,(char *)ARG1,ARG2); >-@@ -3132,6 +3177,20 @@ POST(sys_fstatat) >- POST_MEM_WRITE( ARG3, sizeof(struct vki_stat) ); >- } >- >-+PRE(sys_fstatat64) >-+{ >-+ PRINT("sys_fstatat ( %ld, %#lx(%s), %#lx )", ARG1,ARG2,(char*)ARG2,ARG3); >-+ PRE_REG_READ3(long, "fstatat", >-+ int, dfd, char *, file_name, struct stat *, buf); >-+ PRE_MEM_RASCIIZ( "fstatat(file_name)", ARG2 ); >-+ PRE_MEM_WRITE( "fstatat(buf)", ARG3, sizeof(struct vki_stat) ); >-+} >-+ >-+POST(sys_fstatat64) >-+{ >-+ POST_MEM_WRITE( ARG3, sizeof(struct vki_stat) ); >-+} >-+ >- PRE(sys_unlinkat) >- { >- *flags |= SfMayBlock; >-@@ -4427,6 +4486,12 @@ const SyscallTableEntry ML_(syscall_table)[] = { >- BSDXY(__NR_accept4, sys_accept4), //541 >- BSDXY(__NR_pipe2, sys_pipe2), // 542 >- >-+ // ino64 >-+ BSDXY(__NR_fstat64, sys_fstat64), // 551 >-+ BSDXY(__NR_fstatat64, sys_fstatat64), // 552 >-+ BSDXY(__NR_getdirentries64, sys_getdirentries64), // 554 >-+ GENXY(__NR_fstatfs64, sys_fstatfs), // 556 >-+ >- BSDX_(__NR_fake_sigreturn, sys_fake_sigreturn), // 1000, fake sigreturn >- >- }; >-diff --git a/include/vki/vki-freebsd.h b/include/vki/vki-freebsd.h >-index aee453e..f20833a 100644 >---- a/include/vki/vki-freebsd.h >-+++ b/include/vki/vki-freebsd.h >-@@ -367,6 +367,38 @@ struct vki_stat { >- unsigned int :(8 / 2) * (16 - (int)sizeof(struct vki_timespec)); >- }; >- >-+struct vki_stat64 { >-+ vki_uint64_t st_dev; >-+ vki_uint64_t st_ino; >-+ vki_uint64_t st_nlink; >-+ vki_mode_t st_mode; >-+ vki_int16_t st_padding0; >-+ vki_uid_t st_uid; >-+ vki_gid_t st_gid; >-+ vki_int32_t st_padding1; >-+ vki_uint64_t st_rdev; >-+#if 0 >-+ struct vki_timespec st_atimespec; >-+ struct vki_timespec st_mtimespec; >-+ struct vki_timespec st_ctimespec; >-+#else >-+ vki_time_t st_atime; >-+ long st_atime_nsec; >-+ vki_time_t st_mtime; >-+ long st_mtime_nsec; >-+ vki_time_t st_ctime; >-+ long st_ctime_nsec; >-+#endif >-+ vki_off_t st_size; >-+ vki_blkcnt_t st_blocks; >-+ vki_blksize_t st_blksize; >-+ vki_fflags_t st_flags; >-+ vki_uint64_t st_gen; >-+ vki_int64_t st_spare[10]; >-+// struct vki_timespec st_birthtimespec; >-+// unsigned int :(8 / 2) * (16 - (int)sizeof(struct vki_timespec)); >-+// unsigned int :(8 / 2) * (16 - (int)sizeof(struct vki_timespec)); >-+}; >- >- //---------------------------------------------------------------------- >- // From linux-2.6.8.1/include/linux/sched.h >-@@ -941,6 +973,30 @@ struct vki_statfs { >- char f_mntonname[VKI_MNAMELEN]; >- }; >- >-+struct vki_statfs64 { >-+ vki_uint32_t f_version; >-+ vki_uint32_t f_type; >-+ vki_uint64_t f_flags; >-+ vki_uint64_t f_bsize; >-+ vki_uint64_t f_iosize; >-+ vki_uint64_t f_blocks; >-+ vki_uint64_t f_bfree; >-+ vki_int64_t f_bavail; >-+ vki_uint64_t f_files; >-+ vki_int64_t f_ffree; >-+ vki_uint64_t f_syncwrites; >-+ vki_uint64_t f_asyncwrites; >-+ vki_uint64_t f_syncreads; >-+ vki_uint64_t f_asyncreads; >-+ vki_uint64_t f_spare[10]; >-+ vki_uint32_t f_namemax; >-+ vki_uid_t f_owner; >-+ vki_fsid_t f_fsid; >-+ char f_charspare[80]; >-+ char f_fstypename[VKI_MFSNAMELEN]; >-+ char f_mntfromnname[VKI_MNAMELEN]; >-+ char f_mntonname[VKI_MNAMELEN]; >-+}; >- #define MAXFIDSZ 16 >- >- struct vki_fid { >-diff --git a/include/vki/vki-scnums-freebsd.h b/include/vki/vki-scnums-freebsd.h >-index 605a42f..ffa241d 100644 >---- a/include/vki/vki-scnums-freebsd.h >-+++ b/include/vki/vki-scnums-freebsd.h >-@@ -412,6 +412,10 @@ >- #define __NR_shmctl 512 >- #define __NR_accept4 541 >- #define __NR_pipe2 542 >-+#define __NR_fstat64 551 >-+#define __NR_fstatat64 552 >-+#define __NR_getdirentries64 554 >-+#define __NR_fstatfs64 556 >- >- #define __NR_fake_sigreturn 1000 >- >--- >-2.14.1 >- >Index: devel/valgrind/files/jail_syscalls.patch >=================================================================== >--- devel/valgrind/files/jail_syscalls.patch (revision 489302) >+++ devel/valgrind/files/jail_syscalls.patch (nonexistent) >@@ -1,87 +0,0 @@ >-# HG changeset patch >-# User Bitbucket <noreply@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 >Index: devel/valgrind/files/kldload_syscalls.patch >=================================================================== >--- devel/valgrind/files/kldload_syscalls.patch (revision 489302) >+++ devel/valgrind/files/kldload_syscalls.patch (nonexistent) >@@ -1,127 +0,0 @@ >-# HG changeset patch >-# User Bitbucket <noreply@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 ---*/ >- /*--------------------------------------------------------------------*/ >Index: devel/valgrind/files/missing_fcntls.patch >=================================================================== >--- devel/valgrind/files/missing_fcntls.patch (revision 489302) >+++ devel/valgrind/files/missing_fcntls.patch (nonexistent) >@@ -1,54 +0,0 @@ >-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 */ >Index: devel/valgrind/files/patch-configure.ac >=================================================================== >--- devel/valgrind/files/patch-configure.ac (revision 489302) >+++ devel/valgrind/files/patch-configure.ac (working copy) >@@ -1,6 +1,6 @@ >---- configure.ac.orig 2016-01-13 19:20:20 UTC >-+++ configure.ac >-@@ -145,7 +145,19 @@ >+--- configure.ac.orig 2016-01-13 15:20:20.000000000 -0400 >++++ configure.ac 2019-01-02 07:53:50.442952000 -0400 >+@@ -145,7 +145,19 @@ case "${is_clang}-${gcc_version}" in > notclang-5.*) > AC_MSG_RESULT([ok (${gcc_version})]) > ;; >Index: devel/valgrind/files/patch-coregrind-m_syswrap-syswrap-amd64-freebsd.c >=================================================================== >--- devel/valgrind/files/patch-coregrind-m_syswrap-syswrap-amd64-freebsd.c (revision 489302) >+++ devel/valgrind/files/patch-coregrind-m_syswrap-syswrap-amd64-freebsd.c (working copy) >@@ -1,6 +1,6 @@ >---- coregrind/m_syswrap/syswrap-amd64-freebsd.c.orig 2015-01-26 16:17:32.000000000 -0400 >-+++ coregrind/m_syswrap/syswrap-amd64-freebsd.c 2015-08-31 09:51:17.506396000 -0300 >-@@ -691,6 +691,27 @@ >+--- coregrind/m_syswrap/syswrap-amd64-freebsd.c.orig 2016-01-13 15:20:20.000000000 -0400 >++++ coregrind/m_syswrap/syswrap-amd64-freebsd.c 2019-01-02 07:53:50.444170000 -0400 >+@@ -691,6 +691,27 @@ PRE(sys_sysarch) > SET_STATUS_Success2( tst->arch.vex.guest_FS_ZERO, tst->arch.vex.guest_RDX ); > POST_MEM_WRITE( ARG2, sizeof(void *) ); > break; >Index: devel/valgrind/files/patch-coregrind_m_libcfile.c >=================================================================== >--- devel/valgrind/files/patch-coregrind_m_libcfile.c (nonexistent) >+++ devel/valgrind/files/patch-coregrind_m_libcfile.c (working copy) >@@ -0,0 +1,11 @@ >+--- coregrind/m_libcfile.c.orig 2019-01-02 07:57:42.999805000 -0400 >++++ coregrind/m_libcfile.c 2019-01-02 07:57:54.400182000 -0400 >+@@ -369,7 +369,7 @@ Int VG_(fstat) ( Int fd, struct vg_stat* vgbuf ) >+ # if defined(VGO_linux) || defined(VGO_darwin) || defined(VGO_freebsd) >+ /* First try with fstat64. If that doesn't work out, fall back to >+ the vanilla version. */ >+-# if defined(__NR_fstat64) >++# if defined(__NR_fstat64) && !defined(VGO_freebsd) >+ { struct vki_stat64 buf64; >+ res = VG_(do_syscall2)(__NR_fstat64, (UWord)fd, (UWord)&buf64); >+ if (!(sr_isError(res) && sr_Err(res) == VKI_ENOSYS)) { >Index: devel/valgrind/files/patch-coregrind_m_syswrap_priv_syswrap-freebsd.h >=================================================================== >--- devel/valgrind/files/patch-coregrind_m_syswrap_priv_syswrap-freebsd.h (nonexistent) >+++ devel/valgrind/files/patch-coregrind_m_syswrap_priv_syswrap-freebsd.h (working copy) >@@ -0,0 +1,51 @@ >+--- coregrind/m_syswrap/priv_syswrap-freebsd.h.orig 2016-01-13 15:20:20.000000000 -0400 >++++ coregrind/m_syswrap/priv_syswrap-freebsd.h 2019-01-02 07:53:50.445202000 -0400 >+@@ -54,6 +54,7 @@ DECL_TEMPLATE(freebsd, sys_recvmsg); >+ DECL_TEMPLATE(freebsd, sys_sendmsg); >+ DECL_TEMPLATE(freebsd, sys_recvfrom); >+ DECL_TEMPLATE(freebsd, sys_accept); >++DECL_TEMPLATE(freebsd, sys_accept4); >+ DECL_TEMPLATE(freebsd, sys_getpeername); >+ DECL_TEMPLATE(freebsd, sys_getsockname); >+ DECL_TEMPLATE(freebsd, sys_chflags); >+@@ -97,10 +98,13 @@ DECL_TEMPLATE(freebsd, sys_setegid); >+ DECL_TEMPLATE(freebsd, sys_seteuid); >+ DECL_TEMPLATE(freebsd, sys_stat); >+ DECL_TEMPLATE(freebsd, sys_fstat); >++DECL_TEMPLATE(freebsd, sys_fstat64); >+ DECL_TEMPLATE(freebsd, sys_lstat); >+ DECL_TEMPLATE(freebsd, sys_pathconf); >+ DECL_TEMPLATE(freebsd, sys_fpathconf); >+ DECL_TEMPLATE(freebsd, sys_getdirentries); >++DECL_TEMPLATE(freebsd, sys_getdirentries64); >++DECL_TEMPLATE(freebsd, sys_getrandom); >+ DECL_TEMPLATE(freebsd, sys_mmap); >+ DECL_TEMPLATE(freebsd, sys___syscall); >+ DECL_TEMPLATE(freebsd, sys_lseek); >+@@ -173,6 +177,10 @@ DECL_TEMPLATE(freebsd, sys_sched_rr_get_interval); >+ DECL_TEMPLATE(freebsd, sys_utrace); >+ DECL_TEMPLATE(freebsd, sys_kldsym); >+ DECL_TEMPLATE(freebsd, sys_jail); >++DECL_TEMPLATE(freebsd, sys_jail_get); >++DECL_TEMPLATE(freebsd, sys_jail_set); >++DECL_TEMPLATE(freebsd, sys_jail_attach); >++DECL_TEMPLATE(freebsd, sys_jail_remove); >+ DECL_TEMPLATE(freebsd, sys_sigprocmask); >+ DECL_TEMPLATE(freebsd, sys_sigsuspend); >+ DECL_TEMPLATE(freebsd, sys_sigaction); >+@@ -208,6 +216,7 @@ DECL_TEMPLATE(freebsd, sys_kevent); >+ DECL_TEMPLATE(freebsd, sys_sendfile); >+ DECL_TEMPLATE(freebsd, sys_statfs6); >+ DECL_TEMPLATE(freebsd, sys_fstatfs6); >++DECL_TEMPLATE(freebsd, sys_fstatfs64); >+ DECL_TEMPLATE(freebsd, sys_fhstatfs6); >+ DECL_TEMPLATE(freebsd, sys_thr_exit); >+ DECL_TEMPLATE(freebsd, sys_thr_self); >+@@ -251,6 +260,7 @@ DECL_TEMPLATE(freebsd, sys_fchmodat); >+ DECL_TEMPLATE(freebsd, sys_fchownat); >+ DECL_TEMPLATE(freebsd, sys_fexecve); >+ DECL_TEMPLATE(freebsd, sys_fstatat); >++DECL_TEMPLATE(freebsd, sys_fstatat64); >+ DECL_TEMPLATE(freebsd, sys_futimesat); >+ DECL_TEMPLATE(freebsd, sys_linkat); >+ DECL_TEMPLATE(freebsd, sys_mkdirat); >Index: devel/valgrind/files/patch-coregrind_m_syswrap_syswrap-freebsd.c >=================================================================== >--- devel/valgrind/files/patch-coregrind_m_syswrap_syswrap-freebsd.c (nonexistent) >+++ devel/valgrind/files/patch-coregrind_m_syswrap_syswrap-freebsd.c (working copy) >@@ -0,0 +1,246 @@ >+--- coregrind/m_syswrap/syswrap-freebsd.c.orig 2016-01-13 15:20:20.000000000 -0400 >++++ coregrind/m_syswrap/syswrap-freebsd.c 2019-01-02 08:27:17.409960000 -0400 >+@@ -868,6 +868,18 @@ POST(sys_fstat) >+ POST_MEM_WRITE( ARG2, sizeof(struct vki_stat) ); >+ } >+ >++PRE(sys_fstat64) >++{ >++ PRINT("sys_fstat64 ( %ld, %#lx )", ARG1, ARG2); >++ PRE_REG_READ2(long, "fstat", unsigned long, fd, struct stat *, buf); >++ PRE_MEM_WRITE( "fstat(buf)", ARG2, sizeof(struct vki_stat64) ); >++} >++ >++POST(sys_fstat64) >++{ >++ POST_MEM_WRITE( ARG2, sizeof(struct vki_stat64) ); >++} >++ >+ PRE(sys_pathconf) >+ { >+ PRINT("sys_pathconf ( %#lx(%s), %ld )",ARG1,(char *)ARG1,ARG2); >+@@ -1012,6 +1024,26 @@ POST(sys_getdirentries) >+ } >+ } >+ >++PRE(sys_getdirentries64) >++{ >++ *flags |= SfMayBlock; >++ PRINT("sys_getdents ( %ld, %#lx, %ld )", ARG1,ARG2,ARG3); >++ PRE_REG_READ3(vki_ssize_t, "getdirentries", >++ unsigned int, fd, struct dirent *, dirp, >++ vki_size_t, count); >++ PRE_MEM_WRITE( "getdirentries(dirp)", ARG2, ARG3 ); >++} >++ >++POST(sys_getdirentries64) >++{ >++ vg_assert(SUCCESS); >++ if (RES > 0) { >++ POST_MEM_WRITE( ARG2, RES ); >++ if ( ARG4 != 0 ) >++ POST_MEM_WRITE( ARG4, sizeof (vki_off_t)); >++ } >++} >++ >+ PRE(sys_seteuid) >+ { >+ PRINT("sys_seteuid ( %ld )", ARG1); >+@@ -1070,6 +1102,44 @@ POST(sys_kqueue) >+ } >+ } >+ >++PRE(sys_kevent11) >++{ >++ /* struct freebsd11_kevent { >++ uintptr_t ident; -- identifier for this event >++ short filter; -- filter for event >++ u_short flags; -- action flags for kqueue >++ u_int fflags; -- filter flag value >++ intptr_t data; -- filter data value >++ void *udata; -- opaque user data identifier >++ }; >++ int kevent(int kq, const struct kevent *changelist, int nchanges, >++ struct kevent *eventlist, int nevents, >++ const struct timespec *timeout); >++ */ >++ *flags |= SfMayBlock; >++ PRINT("sys_kevent11 ( %ld, %#lx, %ld, %#lx, %ld, %#lx )\n", ARG1,ARG2,ARG3,ARG4,ARG5,ARG6); >++ PRE_REG_READ6(long, "kevent11", >++ int, fd, struct vki_kevent11 *, newev, int, num_newev, >++ struct vki_kevent11 *, ret_ev, int, num_retev, >++ struct timespec *, timeout); >++ if (ARG2 != 0 && ARG3 != 0) >++ PRE_MEM_READ( "kevent(changeevent)", ARG2, sizeof(struct vki_kevent11)*ARG3 ); >++ if (ARG4 != 0 && ARG5 != 0) >++ PRE_MEM_WRITE( "kevent(events)", ARG4, sizeof(struct vki_kevent11)*ARG5); >++ if (ARG6 != 0) >++ PRE_MEM_READ( "kevent(timeout)", >++ ARG6, sizeof(struct vki_timespec)); >++} >++ >++POST(sys_kevent11) >++{ >++ vg_assert(SUCCESS); >++ if (RES > 0) { >++ if (ARG4 != 0) >++ POST_MEM_WRITE( ARG4, sizeof(struct vki_kevent11)*RES) ; >++ } >++} >++ >+ PRE(sys_kevent) >+ { >+ /* struct kevent { >+@@ -1077,8 +1147,9 @@ PRE(sys_kevent) >+ short filter; -- filter for event >+ u_short flags; -- action flags for kqueue >+ u_int fflags; -- filter flag value >+- intptr_t data; -- filter data value >++ int64_t data; -- filter data value >+ void *udata; -- opaque user data identifier >++ uint64_t ext[4]; -- extensions >+ }; >+ int kevent(int kq, const struct kevent *changelist, int nchanges, >+ struct kevent *eventlist, int nevents, >+@@ -1108,6 +1179,7 @@ POST(sys_kevent) >+ } >+ } >+ >++ >+ PRE(sys___getcwd) >+ { >+ PRINT("sys___getcwd ( %#lx, %lu )", ARG1,ARG2); >+@@ -1234,6 +1306,19 @@ POST(sys_fstatfs6) >+ POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs6) ); >+ } >+ >++PRE(sys_fstatfs64) >++{ >++ PRINT("sys_fstatfs64 ( %ld, %#lx )", ARG1, ARG2); >++ PRE_REG_READ2(long, "fstatfs6", >++ unsigned int, fd, struct statfs *, buf); >++ PRE_MEM_WRITE( "fstatfs6(buf)", ARG2, sizeof(struct vki_statfs6) ); >++} >++ >++POST(sys_fstatfs64) >++{ >++ POST_MEM_WRITE( ARG2, sizeof(struct vki_statfs6) ); >++} >++ >+ PRE(sys_statfs6) >+ { >+ PRINT("sys_statfs6 ( %#lx(%s), %#lx )",ARG1,(char *)ARG1,ARG2); >+@@ -1774,6 +1859,20 @@ POST(sys_sched_getaffinity) >+ miscellaneous wrappers >+ ------------------------------------------------------------------ */ >+ >++PRE(sys_minherit) >++{ >++ PRINT("minherit ( %#lx, %lu, %ld )" , ARG1, ARG2, ARG3); >++ PRE_REG_READ3(long, "minherit", >++ void *, addr, vki_size_t, len, int, inherit); >++ if (ARG2 != 0) >++ PRE_MEM_WRITE( "minherit(addr)", ARG1,ARG2 ); >++} >++POST(sys_minherit) >++{ >++ if (ARG2 != 0) >++ POST_MEM_WRITE( ARG1, ARG2 ); >++} >++ >+ PRE(sys_munlockall) >+ { >+ *flags |= SfMayBlock; >+@@ -3069,6 +3168,20 @@ POST(sys_fstatat) >+ POST_MEM_WRITE( ARG3, sizeof(struct vki_stat) ); >+ } >+ >++PRE(sys_fstatat64) >++{ >++ PRINT("sys_fstatat ( %ld, %#lx(%s), %#lx )", ARG1,ARG2,(char*)ARG2,ARG3); >++ PRE_REG_READ3(long, "fstatat", >++ int, dfd, char *, file_name, struct stat *, buf); >++ PRE_MEM_RASCIIZ( "fstatat(file_name)", ARG2 ); >++ PRE_MEM_WRITE( "fstatat(buf)", ARG3, sizeof(struct vki_stat) ); >++} >++ >++POST(sys_fstatat64) >++{ >++ POST_MEM_WRITE( ARG3, sizeof(struct vki_stat) ); >++} >++ >+ PRE(sys_unlinkat) >+ { >+ *flags |= SfMayBlock; >+@@ -3374,7 +3487,7 @@ PRE(sys_ioctl) >+ unsigned int, fd, unsigned int, request, unsigned long, arg); >+ >+ /* On FreeBSD, ALL ioctl's are IOR/IOW encoded. Just use the default decoder */ >+- if (VG_(strstr)(VG_(clo_sim_hints), "lax-ioctls") != NULL) { >++ if (SimHintiS(SimHint_lax_ioctls, VG_(clo_sim_hints))) { >+ /* >+ * Be very lax about ioctl handling; the only >+ * assumption is that the size is correct. Doesn't >+@@ -3655,7 +3768,7 @@ PRE(sys_cpuset_setaffinity) >+ PRE(sys_cpuset_getaffinity) >+ { >+ >+- PRINT("sys_cpuset_getaffinity ( %ld, %ld, %lld, %llu, %#lx )", ARG1, ARG2, >++ PRINT("sys_cpuset_getaffinity ( %ld, %ld, %ld, %lu, %#lx )", ARG1, ARG2, >+ ARG3, ARG4, ARG5); >+ PRE_REG_READ5(int, "cpuset_getaffinity", >+ int, level, int, which, long, id, >+@@ -3670,6 +3783,19 @@ POST(sys_cpuset_getaffinity) >+ POST_MEM_WRITE( ARG5, ARG4 ); >+ } >+ >++PRE(sys_getrandom) >++{ >++ PRINT("sys_getrandom ( %#lx, %ld, %ld )" , ARG1,ARG2,ARG3); >++ PRE_REG_READ3(ssize_t, "getrandom", >++ void *, buf, size_t, buflen, unsigned int, flags); >++ PRE_MEM_WRITE( "getrandom(cpu)", ARG1, ARG2 ); >++} >++ >++POST(sys_getrandom) >++{ >++ POST_MEM_WRITE( ARG1, ARG2 ); >++} >++ >+ #undef PRE >+ #undef POST >+ >+@@ -3986,7 +4112,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { >+ >+ // BSDXY(__NR_ntp_gettime, sys_ntp_gettime), // 248 >+ // nosys 249 >+-// BSDXY(__NR_minherit, sys_minherit), // 250 >++ BSDXY(__NR_minherit, sys_minherit), // 250 >+ BSDX_(__NR_rfork, sys_rfork), // 251 >+ >+ GENXY(__NR_openbsd_poll, sys_poll), // 252 >+@@ -4127,7 +4253,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { >+ BSDXY(__NR_getresuid, sys_getresuid), // 360 >+ BSDXY(__NR_getresgid, sys_getresgid), // 361 >+ BSDX_(__NR_kqueue, sys_kqueue), // 362 >+- BSDXY(__NR_kevent, sys_kevent), // 363 >++ BSDXY(__NR_kevent11, sys_kevent11), // 363 >+ >+ // nosys 364 >+ // nosys 365 >+@@ -4309,6 +4435,15 @@ const SyscallTableEntry ML_(syscall_table)[] = { >+ BSDXY(__NR_shmctl, sys_shmctl), // 512 >+ >+ BSDXY(__NR_pipe2, sys_pipe2), // 542 >++ >++ // ino64 >++ BSDXY(__NR_fstat64, sys_fstat64), // 551 >++ BSDXY(__NR_fstatat64, sys_fstatat64), // 552 >++ BSDXY(__NR_getdirentries64, sys_getdirentries64), // 554 >++ GENXY(__NR_fstatfs64, sys_fstatfs), // 556 >++ >++ BSDXY(__NR_kevent, sys_kevent), // 560 >++ BSDXY(__NR_getrandom, sys_getrandom), // 563 >+ >+ BSDX_(__NR_fake_sigreturn, sys_fake_sigreturn), // 1000, fake sigreturn >+ >Index: devel/valgrind/files/patch-include__vki__vki-freebsd.h >=================================================================== >--- devel/valgrind/files/patch-include__vki__vki-freebsd.h (revision 489302) >+++ devel/valgrind/files/patch-include__vki__vki-freebsd.h (working copy) >@@ -1,7 +1,53 @@ >---- include/vki/vki-freebsd.h.orig 2015-01-26 16:17:32.000000000 -0400 >-+++ include/vki/vki-freebsd.h 2015-08-31 04:55:29.139189000 -0300 >-@@ -684,6 +684,7 @@ >+--- include/vki/vki-freebsd.h.orig 2016-01-13 15:20:20.000000000 -0400 >++++ include/vki/vki-freebsd.h 2019-01-02 08:24:20.010230000 -0400 >+@@ -367,7 +367,45 @@ struct vki_stat { >+ unsigned int :(8 / 2) * (16 - (int)sizeof(struct vki_timespec)); >+ }; > >++/* FreeBSD 11.x stat */ >++/* struct vki_stat_freebsd11 { TODO } */ >+ >++/* FreeBSD 12.x stat */ >++struct vki_stat64 { >++ vki_dev_t st_dev; >++ vki_ino_t st_ino; >++ vki_nlink_t st_nlink; >++ vki_mode_t st_mode; >++ vki_int16_t st_padding0; >++ vki_uid_t st_uid; >++ vki_gid_t st_gid; >++ vki_int32_t st_padding1; >++ vki_dev_t st_rdev; >++#if defined(VGA_x86) >++ vki_int32_t st_atim_ext; >++#endif >++ struct vki_timespec st_atim; >++#if defined(VGA_x86) >++ vki_int32_t st_mtim_ext; >++#endif >++ struct vki_timespec st_mtim; >++#if defined(VGA_x86) >++ vki_int32_t st_ctim_ext; >++#endif >++ struct vki_timespec st_ctim; >++#if defined(VGA_x86) >++ vki_int32_t st_btim_ext; >++#endif >++ struct vki_timespec st_birthtim; >++ >++ vki_off_t st_size; >++ vki_blkcnt_t st_blocks; >++ vki_blksize_t st_blksize; >++ vki_fflags_t st_flags; >++ vki_uint64_t st_gen; >++ vki_uint64_t st_spare[10]; >++}; >++ >+ //---------------------------------------------------------------------- >+ // From linux-2.6.8.1/include/linux/sched.h >+ //---------------------------------------------------------------------- >+@@ -684,6 +722,7 @@ static __inline struct vki_cmsghdr * vki_cmsg_nxthdr ( >+ > #define VKI_SOCK_STREAM 1 > > +#include <sys/types.h> >@@ -8,7 +54,34 @@ > #include <netinet/tcp.h> > > #define VKI_TCP_NODELAY TCP_NODELAY >-@@ -1888,11 +1889,23 @@ >+@@ -1157,7 +1196,9 @@ struct vki_pollfd { >+ //---------------------------------------------------------------------- >+ // From sys/kevent.h >+ //---------------------------------------------------------------------- >+-struct vki_kevent { >++ >++/* FreeBSD 11.x kevent */ >++struct vki_kevent11 { >+ vki_uintptr_t ident; >+ vki_int16_t filter; >+ vki_uint16_t flags; >+@@ -1166,6 +1207,15 @@ struct vki_kevent { >+ void *udata; >+ }; >+ >++struct vki_kevent { >++ vki_uintptr_t ident; >++ vki_int16_t filter; >++ vki_uint16_t flags; >++ vki_uint32_t fflags; >++ vki_int64_t data; >++ void *udata; >++ vki_uint64_t ext[4]; >++}; >+ >+ // QQQ sort >+ >+@@ -1888,11 +1938,23 @@ struct vki_ptrace_vm_entry { > #define VKI_I386_SET_FSBASE 8 > #define VKI_I386_GET_GSBASE 9 > #define VKI_I386_SET_GSBASE 10 >@@ -20,12 +93,12 @@ > #define VKI_AMD64_SET_GSBASE 131 > +#define VKI_AMD64_GET_XFPUSTATE 132 > + >-+typedef struct vki_i386_get_xfpustate { >++struct vki_i386_get_xfpustate { > + unsigned int addr; > + int len; > +}; > + >-+typedef struct vki_amd64_get_xfpustate { >++struct vki_amd64_get_xfpustate { > + void *addr; > + int len; > +}; >Index: devel/valgrind/files/patch-include_vki_vki-scnums-freebsd.h >=================================================================== >--- devel/valgrind/files/patch-include_vki_vki-scnums-freebsd.h (nonexistent) >+++ devel/valgrind/files/patch-include_vki_vki-scnums-freebsd.h (working copy) >@@ -0,0 +1,24 @@ >+--- include/vki/vki-scnums-freebsd.h.orig 2016-01-13 15:20:20.000000000 -0400 >++++ include/vki/vki-scnums-freebsd.h 2019-01-02 08:26:59.364046000 -0400 >+@@ -275,7 +275,7 @@ >+ #define __NR_getresuid 360 >+ #define __NR_getresgid 361 >+ #define __NR_kqueue 362 >+-#define __NR_kevent 363 >++#define __NR_kevent11 363 >+ #define __NR_extattr_set_fd 371 >+ #define __NR_extattr_get_fd 372 >+ #define __NR_extattr_delete_fd 373 >+@@ -408,6 +408,12 @@ >+ #define __NR___semctl 510 >+ #define __NR_shmctl 512 >+ #define __NR_pipe2 542 >++#define __NR_fstat64 551 >++#define __NR_fstatat64 552 >++#define __NR_getdirentries64 554 >++#define __NR_fstatfs64 556 >++#define __NR_kevent 560 >++#define __NR_getrandom 563 >+ >+ #define __NR_fake_sigreturn 1000 >+
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 234631
: 200787 |
202919
|
202943