diff -aru valgrind-3.10.1/coregrind/m_redir.c valgrind.bk/coregrind/m_redir.c
--- valgrind-3.10.1/coregrind/m_redir.c	2014-11-25 11:41:21.000000000 -0800
+++ valgrind.bk/coregrind/m_redir.c	2016-01-11 11:35:13.243688342 -0800
@@ -1367,6 +1367,8 @@
       Odroid uses ld-linux-armhf.so.3 for some reason. */
    if (0==VG_(strcmp)("Memcheck", VG_(details).name)) {
       /* strlen */
+
+      #if CI_HACK_strlen
       add_hardwired_spec(
          "ld-linux.so.3", "strlen",
          (Addr)&VG_(arm_linux_REDIR_FOR_strlen),
@@ -1399,6 +1401,7 @@
          (Addr)&VG_(arm_linux_REDIR_FOR_strcmp),
          complain_about_stripped_glibc_ldso
       );
+      #endif
    }
 
 #  elif defined(VGP_arm64_linux)
Only in valgrind.bk/coregrind: .m_redir.c.swp
diff -aru valgrind-3.10.1/coregrind/m_syswrap/syswrap-arm-linux.c valgrind.bk/coregrind/m_syswrap/syswrap-arm-linux.c
--- valgrind-3.10.1/coregrind/m_syswrap/syswrap-arm-linux.c	2014-11-25 11:41:20.000000000 -0800
+++ valgrind.bk/coregrind/m_syswrap/syswrap-arm-linux.c	2016-01-11 12:06:52.559694749 -0800
@@ -907,7 +907,7 @@
 //zz    //   (__NR_setdomainname,     sys_setdomainname),  // 121 */*(?)
    GENXY(__NR_uname,             sys_newuname),       // 122
 //   PLAX_(__NR_modify_ldt,        sys_modify_ldt),     // 123
-//zz    LINXY(__NR_adjtimex,          sys_adjtimex),       // 124
+    LINXY(__NR_adjtimex,          sys_adjtimex),       // 124
 //zz 
    GENXY(__NR_mprotect,          sys_mprotect),       // 125
    LINXY(__NR_sigprocmask,       sys_sigprocmask),    // 126
Only in valgrind.bk/coregrind/m_syswrap: .syswrap-arm-linux.c.swp
diff -aru valgrind-3.10.1/coregrind/m_syswrap/syswrap-generic.c valgrind.bk/coregrind/m_syswrap/syswrap-generic.c
--- valgrind-3.10.1/coregrind/m_syswrap/syswrap-generic.c	2014-11-25 11:41:20.000000000 -0800
+++ valgrind.bk/coregrind/m_syswrap/syswrap-generic.c	2016-01-11 13:42:35.252945175 -0800
@@ -3496,7 +3496,7 @@
                VG_(umsg)("   This could cause spurious value errors to appear.\n");
                VG_(umsg)("   See README_MISSING_SYSCALL_OR_IOCTL for "
                          "guidance on writing a proper wrapper.\n" );
-               //VG_(get_and_pp_StackTrace)(tid, VG_(clo_backtrace_size));
+               VG_(get_and_pp_StackTrace)(tid, VG_(clo_backtrace_size));
                return;
             }
          }
diff -aru valgrind-3.10.1/coregrind/m_syswrap/syswrap-linux.c valgrind.bk/coregrind/m_syswrap/syswrap-linux.c
--- valgrind-3.10.1/coregrind/m_syswrap/syswrap-linux.c	2014-11-25 11:41:20.000000000 -0800
+++ valgrind.bk/coregrind/m_syswrap/syswrap-linux.c	2016-01-11 13:16:05.550146781 -0800
@@ -6266,6 +6266,17 @@
    case VKI_FBIOPAN_DISPLAY:
       PRE_MEM_READ( "ioctl(FBIOPAN_DISPLAY)", ARG3,
                     sizeof(struct vki_fb_var_screeninfo));
+                    break;
+
+   case VKI_FBIOGET_CON2FBMAP:
+      PRE_MEM_WRITE( "ioctl(FBIOPUT_CON2FBMAP)", ARG3,
+                    sizeof(struct vki_fb_con2fbmap));
+                    break;
+
+   case VKI_FBIOPUT_CON2FBMAP:
+      PRE_MEM_READ( "ioctl(FBIOPUT_CON2FBMAP)", ARG3,
+                    sizeof(struct vki_fb_con2fbmap));
+                    break;
 
       break;
    case VKI_PPCLAIM:
@@ -8835,6 +8846,9 @@
    case VKI_FBIOGET_FSCREENINFO: //0x4602
       POST_MEM_WRITE(ARG3, sizeof(struct vki_fb_fix_screeninfo));
       break;
+   case VKI_FBIOGET_CON2FBMAP: //0x460F
+      POST_MEM_WRITE(ARG3, sizeof(struct vki_fb_con2fbmap));
+      break;
 
    case VKI_PPCLAIM:
    case VKI_PPEXCL:
Only in valgrind.bk/coregrind/m_syswrap: .syswrap-linux.c.swp
diff -aru valgrind-3.10.1/include/vki/vki-linux.h valgrind.bk/include/vki/vki-linux.h
--- valgrind-3.10.1/include/vki/vki-linux.h	2014-11-25 11:41:18.000000000 -0800
+++ valgrind.bk/include/vki/vki-linux.h	2016-01-11 13:14:56.144975442 -0800
@@ -2094,6 +2094,8 @@
 #define VKI_FBIOPUT_VSCREENINFO	0x4601
 #define VKI_FBIOGET_FSCREENINFO	0x4602
 #define VKI_FBIOPAN_DISPLAY	0x4606
+#define VKI_FBIOGET_CON2FBMAP 0x460F
+#define VKI_FBIOPUT_CON2FBMAP 0x4610
 
 struct vki_fb_fix_screeninfo {
 	char id[16];			/* identification string eg "TT Builtin" */
@@ -2161,6 +2163,11 @@
 	__vki_u32 reserved[5];		/* Reserved for future compatibility */
 };
 
+struct vki_fb_con2fbmap {
+    __vki_u32 console;
+    __vki_u32 framebuffer;
+};
+
 //----------------------------------------------------------------------
 // From linux-2.6.9/include/linux/kd.h
 //----------------------------------------------------------------------
Only in valgrind.bk/include/vki: .vki-linux.h.swp
Only in valgrind.bk/: tags
