Missing datatypes in lib/include/machine/types.h ?

Ralf Corsepius corsepiu at faw.uni-ulm.de
Sat Dec 1 01:05:02 UTC 2001


Am Sam, 2001-12-01 um 00.02 schrieb Charlie &:
> 
> Hi,
> I am porting some UNIX C code to work under RTEMS.  The software is
> expecting the following typedefs in lib/include/machine/types.h:
> 
> typedef unsigned char           uint8_t;
> typedef unsigned short          uint16_t;
> typedef unsigned int              uint32_t;
> typedef unsigned long long   uint64_t;
> 
> I see that the OpenBSD version of this file does define these values
> but the RTEMS version only has the u_intXX_t versions.  Should
> the RTEMS version be updated into include the above typedefs or
> are these not standard datatypes?

AFAIK, these are ISOC99 types and are supposed to be defined in stdint.h
and to be included into sources via stdint.h or inttypes.h (normally
implictly includes stdint.h).

Apparently, newlib is not ISOC99-ready. As a work-around, we could
either provide a stdint.h with RTEMS or try to get it properly
introduced into newlib.

Anyway, if the code your are trying to compile is expecting these typesm
in machine/types.h, it is bugged (machine/*.h should not be accessed
directly and is not standardized at all) or probably relies on a
BSD-proprietary feature.

Ralf




More information about the users mailing list