[newlib] print formats for FAST and LEAST types

Corinna Vinschen vinschen@redhat.com
Tue Jul 14 14:34:00 GMT 2015


On Jul 14 15:08, Andre Vieira wrote:
> On 14/07/15 14:49, Corinna Vinschen wrote:
> >On Jul 14 12:17, Andre Vieira wrote:
> >>Hello,
> >>
> >>Kevin Bracey commented on Launchpad that he was having issues with a
> >>mismatch between <inttypes.h> and <stdint.h> when printing an int_fast32_t.
> >>See https://answers.launchpad.net/gcc-arm-embedded/+question/269083
> >>
> >>This is due to the fact that on targets where the size of ‘int’ and ‘long’
> >>are equal and 32 bits, the current header files will configure the type of
> >>int_fast32_t to be ‘int’ and PRIdFAST32 to be ‘ld’ and make printf thus
> >>expect a ‘long’. The macro’s used in <stdint.h> come from
> >>‘gcc/config/newlib-stdint.h’.
> >
> >Are you looking into an older version of newlib by any chance?  We
> >added code to newlib's headers to check explicitely at runtime whether
> >__INT32_TYPE__ is int or long, and set the PRIxxx32 macros accordingly.
> >
> >See https://sourceware.org/git/?p=newlib-cygwin.git;h=496380c
> >
> >I just checked this on 32 bit Cygwin:
> >
> >   $ gcc -E - <<EOF
> >   #include <inttypes.h>
> >   #include <stdint.h>
> >   __INT_FAST32_TYPE__
> >   PRIdFAST32
> >   EOF
> >   [...]
> >   int
> >   "d"
> >
> >If there's still anything wrong with that, feel free to send patches.
> >
> >
> >Corinna
> >
> 
> Hi Corinna,
> 
> I am on a newer version than the linked patch.
> 
> However when I run your example I get int and "ld".
> In your example, if you pass -dM, does it show INT32_EQ_LONG to be defined?

No, it's undefined.  This is i686-pc-cygwin.  Please have a look at
libc/include/sys/_intsup.h  and try to find out why this doesn't work
for your target.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20150714/b9f02b41/attachment.sig>


More information about the Newlib mailing list