1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-09 06:51:44 +00:00

Add a patch for "unhandled sysarch cmd 132" error.

PR:		202766
Submitted by:	Julien Nadeau <vedge@hypertriton.com>
This commit is contained in:
Dmitry Sivachenko 2015-11-13 13:35:02 +00:00
parent ac8b1acefe
commit 08d5219abf
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=401512
3 changed files with 58 additions and 4 deletions

View File

@ -4,7 +4,7 @@
PORTNAME= valgrind
DISTVERSIONPREFIX= freebsd-
PORTVERSION= 3.10.0.20150126
PORTREVISION= 1
PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= devel
MASTER_SITES= https://bitbucket.org/${BB_ACCOUNT}/${BB_PROJECT}/get/${BB_COMMIT}.tar.gz?dummy=/ \

View File

@ -0,0 +1,30 @@
--- 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 @@
SET_STATUS_Success2( tst->arch.vex.guest_FS_ZERO, tst->arch.vex.guest_RDX );
POST_MEM_WRITE( ARG2, sizeof(void *) );
break;
+ case VKI_AMD64_GET_XFPUSTATE:
+ {
+ UChar fpuState[160];
+ struct vki_amd64_get_xfpustate *xfs = (struct vki_amd64_get_xfpustate *)ARG2;
+ int fpuSaveLen;
+
+ PRINT("sys_amd64_get_xfpustate ( %#lx, %d )", (long unsigned int)xfs->addr, xfs->len);
+ tst = VG_(get_ThreadState)(tid);
+
+ if (xfs->len <= sizeof(fpuState)) {
+ amd64g_dirtyhelper_FXSAVE_ALL_EXCEPT_XMM(
+ (VexGuestAMD64State *)&tst->arch.vex,
+ (HWord)fpuState);
+ VG_(memcpy)(xfs->addr, fpuState, xfs->len);
+ POST_MEM_WRITE( xfs->addr, xfs->len );
+ SET_STATUS_Success ( 0 );
+ } else {
+ SET_STATUS_Failure( VKI_EINVAL );
+ }
+ }
+ break;
default:
VG_(message) (Vg_UserMsg, "unhandled sysarch cmd %ld", ARG1);
VG_(unimplemented) ("unhandled sysarch cmd");

View File

@ -1,6 +1,6 @@
--- ./include/vki/vki-freebsd.h.orig 2014-02-08 15:00:31.591069799 -0600
+++ ./include/vki/vki-freebsd.h 2014-02-08 15:00:39.993068845 -0600
@@ -681,6 +681,7 @@
--- 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 @@
#define VKI_SOCK_STREAM 1
@ -8,3 +8,27 @@
#include <netinet/tcp.h>
#define VKI_TCP_NODELAY TCP_NODELAY
@@ -1888,11 +1889,23 @@
#define VKI_I386_SET_FSBASE 8
#define VKI_I386_GET_GSBASE 9
#define VKI_I386_SET_GSBASE 10
+#define VKI_I386_SET_XFPUSTATE 11
#define VKI_AMD64_GET_FSBASE 128
#define VKI_AMD64_SET_FSBASE 129
#define VKI_AMD64_GET_GSBASE 130
#define VKI_AMD64_SET_GSBASE 131
+#define VKI_AMD64_GET_XFPUSTATE 132
+
+typedef struct vki_i386_get_xfpustate {
+ unsigned int addr;
+ int len;
+};
+
+typedef struct vki_amd64_get_xfpustate {
+ void *addr;
+ int len;
+};
//----------------------------------------------------------------------
// From sys/module.h