From 53b4d41df8af3027dac1edd7965cb44bf0747494 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 14 Feb 2011 16:08:23 +0100 Subject: [PATCH] re PR libgomp/47731 (futex_wait broken on Linux) PR libgomp/47731 * config/linux/futex.h (futex_wait): Pass NULL as timeout argument to FUTEX_WAIT futex syscall. * config/linux/wait.h: Include instead of "futex.h". From-SVN: r170133 --- libgomp/ChangeLog | 7 +++++++ libgomp/config/linux/futex.h | 6 +++--- libgomp/config/linux/wait.h | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 69627d3b151..e2844762002 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,10 @@ +2011-02-14 Jakub Jelinek + + PR libgomp/47731 + * config/linux/futex.h (futex_wait): Pass NULL as timeout argument + to FUTEX_WAIT futex syscall. + * config/linux/wait.h: Include instead of "futex.h". + 2011-02-13 Ralf Wildenhues * configure: Regenerate. diff --git a/libgomp/config/linux/futex.h b/libgomp/config/linux/futex.h index 7324b78383e..bab088a558b 100644 --- a/libgomp/config/linux/futex.h +++ b/libgomp/config/linux/futex.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2010 Free Software Foundation, Inc. +/* Copyright (C) 2010, 2011 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of the GNU OpenMP Library (libgomp). @@ -41,12 +41,12 @@ static inline void futex_wait (int *addr, int val) { - long err = syscall (SYS_futex, addr, gomp_futex_wait, val); + long err = syscall (SYS_futex, addr, gomp_futex_wait, val, NULL); if (__builtin_expect (err == -ENOSYS, 0)) { gomp_futex_wait &= ~FUTEX_PRIVATE_FLAG; gomp_futex_wake &= ~FUTEX_PRIVATE_FLAG; - syscall (SYS_futex, addr, gomp_futex_wait, val); + syscall (SYS_futex, addr, gomp_futex_wait, val, NULL); } } diff --git a/libgomp/config/linux/wait.h b/libgomp/config/linux/wait.h index bd5bb637727..0e8abf111b0 100644 --- a/libgomp/config/linux/wait.h +++ b/libgomp/config/linux/wait.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2008, 2009, 2011 Free Software Foundation, Inc. Contributed by Jakub Jelinek . This file is part of the GNU OpenMP Library (libgomp). @@ -42,7 +42,7 @@ extern long int gomp_futex_wait, gomp_futex_wake; -#include "futex.h" +#include static inline void do_wait (int *addr, int val) {