[PATCH 3/3] Use latest <semaphore.h> from FreeBSD for RTEMS
Corinna Vinschen
vinschen@redhat.com
Wed Mar 11 10:42:00 GMT 2015
Hi Sebastian,
On Mar 9 14:03, Sebastian Huber wrote:
> Import the latest <semaphore.h> from FreeBSD and adjust it for RTEMS.
> The OpenMP support from GCC (libgomp) needs a <semaphore.h>.
Apart from the maverick implementation in libc/sys/linux, we don't
have any semaphore implementation. This, plus the fact that the
type of sem_t is implementaiton-specific, makes me a bit reluctant
to include this header in newlib. On some systems sizeof(sem_t)
is pointer sized.
If we add semaphore.h, we should make the definition of sem_t
conditional somehow, so e.g. Cygwin can reuse this file, removing its
own.
Kind of like this:
> +#ifndef _SEMAPHORE_H_
> +#define _SEMAPHORE_H_
> +
> +#include <sys/cdefs.h>
> +#include <sys/_types.h>
> +
#ifdef __CYGWIN__
#ifndef __INSIDE_CYGWIN__
#endif
#elif defined (...)
[...]
#else
/* Fallback, as on BSDs */
> +typedef __uint32_t sem_t;
#endif
> +
> +#define SEM_FAILED ((sem_t *)0)
> +#define SEM_VALUE_MAX (__INT_MAX__ * 2U + 1U)
Should the definition of SEM_VALUE_MAX be __BSD_VISIBLE? It's not a
definition required or even mentioned in POSIX.
Thanks,
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20150311/82ae9d5e/attachment.sig>
More information about the Newlib
mailing list