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:
parent
fa0a5acc1e
commit
53b4d41df8
@ -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.
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user