[PATCH] Fix mq_{send, receive, timedreceive} for , non-ADVANCED_REALTIME
Michael Deutschmann
michael at talamasca.ocis.net
Sun Jan 16 11:42:06 UTC 2011
On Tue, 11 Jan 2011, Bernhard Reutner-Fischer wrote:
> On Tue, Dec 28, 2010 at 10:00:21AM -0600, Steven J. Magnani wrote:
> >Disable compilation of librt files that depend on ADVANCED_REALTIME.
> >On microblaze, which does not have ADVANCED_REALTIME, 0.9.32-rc1 builds fail with
> That falls under SUSv4 audit. Postponed since mq requires
> ADVANCED_REALTIME, really.
I'd disagee there. That REALTIME && !ADVANCED_REALTIME fails to compile
in stock 0.9.32-rc1 is a showstopper.
I would also consider this setting rather common. Nothing on my system
uses librt, so there is no point (other than supressing this bug) in
turning on ADVANCED_REALTIME. Yet I'm compelled to turn on REALTIME
because this setting also controls a few vital functions (nanosleep and
sched_*) in the libc itself.
That said, it looks like the original patch is not a valid answer, since
the files that break due to this bug are still vital to provide the API
promised by REALTIME. A better short-term hack would be to do:
#include <features.h>
#undef __UCLIBC_HAS_ADVANCED_REALTIME
#define __UCLIBC_HAS_ADVANCED_REALTIME 1
at the start of the relevant files, as all that is needed is valid
prototypes for certain "advanced" functions.
---- Michael Deutschmann <michael at talamasca.ocis.net>
More information about the uClibc
mailing list