[PATCH] Add and use __INTTYPES_EXP()
Ralf Corsepius
ralf.corsepius@rtems.org
Wed Nov 28 13:41:00 GMT 2012
On 11/23/2012 10:41 AM, Corinna Vinschen wrote:
> On Nov 22 12:36, Ralf Corsepius wrote:
>> On 11/22/2012 12:15 PM, Sebastian Huber wrote:
>>> I deleted stdint.h from Newlib, but there seem to be more issues in
>>> inttypes.h.
>>
>> Yes. Like I said, RTEMS has a different patch to inttypes.h, which
>> is supposed to exactly address these issues.
>>
>>> For example the format specifier for PRIuMAX was wrong.
>> Which particular case (target/multilib)?
>>
>> I can check my testsuite with the current rtems toolchain rpms.
>>
>>> I use now stdint.h from Newlib and this works.
>> This would surprise me, because I know, newlib's inttypes.h/stdint.h
>> are broken.
>
> Nice discussion, but would anybody of you let the rest of us in on
> the secret of newlib's stdint.h/intttypes.h brokenness?
It's been a while since I checked the last time, when I had switched
RTEMS to use GCC's stdint.h. I'll try to check whether the current
status in vanilla newlib still has issues. Unfortunately I currently
don't have sufficient time available, so this will take time.
One major issue had been, newlib's stdint.h/inttypes.h types based on
guesses base on ordinal types' _sizes_, while GCC internally is
expecting certain _types_ in certain GCC internal operrations/checks.
For example, GCC was issuing warnings for certain types of arguments to
fprintf, even through the sizes of a stdint-type matches the expectations.
AFAIR, the cause for this, was for example newlib's stdint.h setting
"int32_t" to "long", while GCC was expecting "int" (with sizeof(int) ==
sizeof(long) == 32bit) ... and vice versa on other targets/multilibs.
Ralf
More information about the Newlib
mailing list