From: Jakub Jelinek Date: Wed, 26 Mar 2014 21:52:16 +0000 (+0100) Subject: futex_bits.h: Include errno.h. X-Git-Tag: releases/gcc-4.9.0~283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7cc51d643eb0b504396f77155d80eda2b081819c;p=thirdparty%2Fgcc.git futex_bits.h: Include errno.h. * config/linux/futex_bits.h: Include errno.h. (sys_futex0): If syscall returns -1, return -errno rather than -1. From-SVN: r208855 --- diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 00db949bad91..1ce194ec9341 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,9 @@ +2014-03-26 Jakub Jelinek + + * config/linux/futex_bits.h: Include errno.h. + (sys_futex0): If syscall returns -1, return -errno rather than + -1. + 2014-03-26 Joseph Myers * libitm.texi (Index): Rename to Library Index. diff --git a/libitm/config/linux/futex_bits.h b/libitm/config/linux/futex_bits.h index 62d83d185570..dc1eb1fa301d 100644 --- a/libitm/config/linux/futex_bits.h +++ b/libitm/config/linux/futex_bits.h @@ -31,9 +31,13 @@ #include #include +#include static inline long sys_futex0 (std::atomic *addr, long op, long val) { - return syscall (SYS_futex, (int*) addr, op, val, 0); + long res = syscall (SYS_futex, (int*) addr, op, val, 0); + if (__builtin_expect (res == -1, 0)) + return -errno; + return res; }