]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
OS X 10.11: Tweak magic offset, which was amended prior to xnu-3247.1.36~7 (DP3)...
authorRhys Kidd <rhyskidd@gmail.com>
Sun, 12 Jul 2015 13:25:55 +0000 (13:25 +0000)
committerRhys Kidd <rhyskidd@gmail.com>
Sun, 12 Jul 2015 13:25:55 +0000 (13:25 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15411

coregrind/m_syswrap/syswrap-amd64-darwin.c
coregrind/m_syswrap/syswrap-x86-darwin.c

index d4e1cb5e28a5bf93b2da621852802b957e3726c3..d836d81aa53ee746f31f13dc345b7e4c6d731b90 100644 (file)
@@ -479,8 +479,10 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem,
        UWord magic_delta = 0;
 #      elif DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8
        UWord magic_delta = 0x60;
-#      elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11
+#      elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
        UWord magic_delta = 0xE0;
+#      elif DARWIN_VERS == DARWIN_10_11
+       UWord magic_delta = 0x100;
 #      else
 #        error "magic_delta: to be computed on new OS version"
          // magic_delta = tst->os_state.pthread - self
@@ -497,9 +499,9 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem,
        tst = VG_(get_ThreadState)(tid);
 
        if (0) VG_(printf)("wqthread_hijack reuse %s: tid %d, tst %p, "
-                          "tst->os_state.pthread %#lx\n",
+                          "tst->os_state.pthread %#lx, self %#lx\n",
                           tst->os_state.pthread == self ? "SAME" : "DIFF",
-                          tid, tst, tst->os_state.pthread);
+                          tid, tst, tst->os_state.pthread, self);
 
        vex = &tst->arch.vex;
        vg_assert(tst->os_state.pthread - magic_delta == self);
index 89e0595ae42eff42c5fc190a1add804839362528..fb529617d78a5611996ebcba4e3071b52b82cb49 100644 (file)
@@ -427,8 +427,10 @@ void wqthread_hijack(Addr self, Addr kport, Addr stackaddr, Addr workitem,
       UWord magic_delta = 0;
 #     elif DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8
       UWord magic_delta = 0x48;
-#     elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11
+#     elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
       UWord magic_delta = 0xB0;
+#     elif DARWIN_VERS == DARWIN_10_11
+      UWord magic_delta = 0x100;
 #     else
 #       error "magic_delta: to be computed on new OS version"
         // magic_delta = tst->os_state.pthread - self