diff -r c38988024f1f src/kern/linux/linux.hh --- a/src/kern/linux/linux.hh Wed Sep 19 06:15:46 2012 -0400 +++ b/src/kern/linux/linux.hh Thu Sep 20 17:47:14 2012 +0200 @@ -225,6 +225,7 @@ static const unsigned TGT_FUTEX_WAKE = 1; static const unsigned TGT_EAGAIN = 11; static const unsigned TGT_EWOULDBLOCK = TGT_EAGAIN; + static const unsigned TGT_FUTEX_PRIVATE_FLAG = 128; }; // class Linux diff -r c38988024f1f src/sim/syscall_emul.hh --- a/src/sim/syscall_emul.hh Wed Sep 19 06:15:46 2012 -0400 +++ b/src/sim/syscall_emul.hh Thu Sep 20 17:47:14 2012 +0200 @@ -359,6 +359,7 @@ DPRINTF(SyscallVerbose, "In sys_futex: Address=%llx, op=%d, val=%d\n", uaddr, op, val); + op &= ~OS::TGT_FUTEX_PRIVATE_FLAG; if (op == OS::TGT_FUTEX_WAIT) { if (timeout != 0) { @@ -410,7 +411,7 @@ "thread contexts\n", wokenUp); return wokenUp; } else { - warn("sys_futex: op %d is not implemented, just returning..."); + warn("sys_futex: op %d is not implemented, just returning...", op); return 0; }