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 <futex.h> instead of "futex.h".

From-SVN: r170133
This commit is contained in:
Jakub Jelinek 2011-02-14 16:08:23 +01:00 committed by Jakub Jelinek
parent fa0a5acc1e
commit 53b4d41df8
3 changed files with 12 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2011-02-14 Jakub Jelinek <jakub@redhat.com>
PR libgomp/47731
* config/linux/futex.h (futex_wait): Pass NULL as timeout argument
to FUTEX_WAIT futex syscall.
* config/linux/wait.h: Include <futex.h> instead of "futex.h".
2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* configure: Regenerate.

View File

@ -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);
}
}

View File

@ -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 <jakub@redhat.com>.
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 <futex.h>
static inline void do_wait (int *addr, int val)
{