This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/3] Use latest <semaphore.h> from FreeBSD for RTEMS


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

Attachment: pgpee0V2AXXlr.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]