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: ja...@gcc.gnu.org ReportedBy: ja...@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.