This is the mail archive of the 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 02/18] Provide POSIX defined id_t in <sys/types.h>

On 15/04/16 10:57, Corinna Vinschen wrote:
Hi Sebastian,

On Apr 14 13:54, Sebastian Huber wrote:
>Signed-off-by: Sebastian Huber<>
>  newlib/libc/include/sys/_types.h       | 4 ++++
>  newlib/libc/include/sys/types.h        | 5 +++++
>  winsup/cygwin/include/cygwin/types.h   | 6 ------
>  winsup/cygwin/include/machine/_types.h | 3 +++
>  4 files changed, 12 insertions(+), 6 deletions(-)
>diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h
>index 762dfed..ebd4943 100644
>--- a/newlib/libc/include/sys/_types.h
>+++ b/newlib/libc/include/sys/_types.h
>@@ -43,6 +43,10 @@ typedef unsigned short __uid_t;
>  typedef unsigned short __gid_t;
>  #endif
> >+#ifndef __machine_id_t_defined
>+typedef __pid_t __id_t;
Glibc defines id_t as unsigned 32 bit type.  __pid_t is int, therefore a
signed type.

That's why Cygwin defined id_t as __uint32_t.  Wouldn't it makes sense
to follow glibc for compatibility here, too?  This would also allow to
get rid of the Cygwin-specific definition.

With the defaults for

#if defined(__XMK__)
typedef signed char __pid_t;
typedef int __pid_t;

#ifndef __machine_dev_t_defined
typedef short __dev_t;

#ifndef __machine_uid_t_defined
typedef unsigned short __uid_t;

#ifndef __machine_gid_t_defined
typedef unsigned short __gid_t;

the use of __uint32_t is wrong for ILP64 targets (yes, very exotic). Maybe we should use fixed-size types in <sys/_types.h> throughout.

On FreeBSD we have this:

typedef    __uint32_t    __gid_t;
typedef __int64_t __id_t; /* can hold a gid_t, pid_t, or uid_t */
typedef    __int32_t    __pid_t;    /* process [group] */
typedef    __uint32_t    __uid_t;

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  :
PGP     : Public key available on request.

Diese Nachricht ist keine geschÃftliche Mitteilung im Sinne des EHUG.

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