This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgomp/47731] New: [4.6 Regression] futex_wait broken on Linux
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 14 Feb 2011 09:53:12 +0000
- Subject: [Bug libgomp/47731] New: [4.6 Regression] futex_wait broken on Linux
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47731
Summary: [4.6 Regression] futex_wait broken on Linux
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgomp
AssignedTo: jakub@gcc.gnu.org
ReportedBy: jakub@gcc.gnu.org
As reported in http://gcc.gnu.org/ml/fortran/2011-02/msg00108.html
futex_wait is very much broken since
http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00256.html
There are two problems:
1) the arm futex.h version is broken, as it doesn't pass NULL as the timeout
parameter to FUTEX_WAIT or FUTEX_WAIT|FUTEX_PRIVATE. This means the
parameter contains random garbage, if it happens to be NULL, fine, otherwise
it could contain some valid pointer and risk that the futex times out or
it can contain invalid address and thus the syscall can EFAULT right away.
2) as wait.h includes "futex.h", the CPU specific futex.h versions are no
longer
used.