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: [email protected]
ReportedBy: [email protected]
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.