lowlevellock.h is included unconditionally even if on production system it's absent Needs wrapping like libc-lock.h --- stdio-lock.h 2004-09-12 08:42:20.000000000 +0000 +++ stdio-lock.h 2004-09-13 01:10:19.275829960 +0000 @@ -21,8 +21,9 @@ #define _BITS_STDIO_LOCK_H 1 #include <bits/libc-lock.h> +#ifdef _LIBC #include <lowlevellock.h> - +#endif /* The locking here is very inexpensive, even for inlining. */ #define _IO_lock_inexpensive 1
There are some macroses who actually use LLL_LOCK_INITIALIZER defined in lowlevellock.h ... File lowlevellock.h is different for different supported platforms but actual definition of LLL_LOCK_INITIALIZER is the same: /* Initializer for compatibility lock. */ #define LLL_MUTEX_LOCK_INITIALIZER (0) #define LLL_MUTEX_LOCK_INITIALIZER_LOCKED (1) Needs further investigation. I was able to add -DLLL_MUTEX_LOCK_INITIALIZER=0 in command line but it does not look like a good long-term solution, ne?
would you mind filing this bug upstream with redhat? http://sources.redhat.com/bugzilla/