[PATCH] Harmonize stdint.h and _default_types.h

Sebastian Huber sebastian.huber@embedded-brains.de
Tue Dec 3 14:52:00 GMT 2013


On 2013-12-03 15:38, Hans-Peter Nilsson wrote:
>> From: Corinna Vinschen <vinschen@redhat.com>
>> Date: Tue, 3 Dec 2013 15:11:15 +0100
>
>> this patch looks good to me.  Hans-Peter, would you mind to have a look
>> as well?
>
> Thanks.  These look odd:
>
>> +++ b/newlib/libc/include/stdint.h
>
>> +#ifdef INT8_C
>> +#define INT8_C(x) __INT8_C(x)
>> +#define UINT8_C(x) __UINT8_C(x)
>> +#else
>>   #define INT8_C(x)	x
>>   #if __STDINT_EXP(INT_MAX) > 0x7f
>>   #define UINT8_C(x)	x
>>   #else
>>   #define UINT8_C(x)	x##U
>>   #endif
>> +#endif
>
> It doesn't look like you want to redefine INT8_C (in which case
> better #undef it) but rather like you meant "#ifdef __INT8_C"
> for the first line.

Oh, thanks for spotting this.  I will update the patch.

>
> Same for the other *_C variants, except for INTMAX_C
> (__INTMAX_C) where it is as expected.
>
> Otherwise, nothing suspicious besides the include stdint.h in
> libc/sys/rtems/machine/_types.h, but which the comment says is a
> conscious choice.

FreeBSD includes <sys/_stdint.h> in <sys/types.h>.  Which defines the C99 fixed 
integer types (only the types, not the MIN/MAX etc. defines) depending on a 
define guard for every type.

As I first step I added this hack for RTEMS only (it preserves the existing 
situation).  The GCC test suite results are all right on ARM and PowerPC with 
these patches.

http://gcc.gnu.org/ml/gcc-testresults/2013-12/msg00272.html
http://gcc.gnu.org/ml/gcc-testresults/2013-12/msg00271.html

-- 
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  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

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



More information about the Newlib mailing list