From: Rich Felker Date: Sun, 20 Mar 2011 03:18:34 +0000 (-0400) Subject: if returning errno value directly from a syscall, we need to negate it. X-Git-Tag: v0.7.5~49 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=be82e122bf37fdcd1766d1ed220f0300b30ab6a3;p=oweals%2Fmusl.git if returning errno value directly from a syscall, we need to negate it. --- diff --git a/src/thread/__timedwait.c b/src/thread/__timedwait.c index b38ea990..28b777bc 100644 --- a/src/thread/__timedwait.c +++ b/src/thread/__timedwait.c @@ -17,7 +17,7 @@ int __timedwait(volatile int *addr, int val, clockid_t clk, const struct timespe if (to.tv_sec < 0) return ETIMEDOUT; } if (priv) priv = 128; priv=0; - r = __syscall(__NR_futex, (long)addr, FUTEX_WAIT | priv, val, at ? (long)&to : 0); + r = -__syscall(__NR_futex, (long)addr, FUTEX_WAIT | priv, val, at ? (long)&to : 0); if (r == ETIMEDOUT) return r; return 0; } diff --git a/src/thread/pthread_kill.c b/src/thread/pthread_kill.c index 6448d978..17aa5c4b 100644 --- a/src/thread/pthread_kill.c +++ b/src/thread/pthread_kill.c @@ -2,5 +2,5 @@ int pthread_kill(pthread_t t, int sig) { - return __syscall(__NR_tgkill, t->pid, t->tid, sig); + return -__syscall(__NR_tgkill, t->pid, t->tid, sig); } diff --git a/src/time/clock_nanosleep.c b/src/time/clock_nanosleep.c index c777c179..721e7941 100644 --- a/src/time/clock_nanosleep.c +++ b/src/time/clock_nanosleep.c @@ -6,7 +6,7 @@ int clock_nanosleep(clockid_t clk, int flags, const struct timespec *req, struct { int ret; CANCELPT_BEGIN; - ret = __syscall(__NR_clock_nanosleep, clk, flags, req, rem); + ret = -__syscall(__NR_clock_nanosleep, clk, flags, req, rem); CANCELPT_END; return ret; }