Fw: GCC - 64bit long long type, support in lib

Tim Prince timothyprince@sbcglobal.net
Wed Aug 9 02:44:00 GMT 2006


fred wrote:
> 
> 
> The gcc supports 64bit int it seems, but the library as downloaded does not,
> for example try
> 
>  long long ldec = 0x11000000000LL;
>  printf("%s: 0x%Lx,%Ld; %s\n","test",ldec,ldec,"test2");
> 
> seems the library should support it, look in
> usr\src\gcc-3.4.4\libiberty\_doprnt.c
> #if defined(__GNUC__) || defined(HAVE_LONG_LONG)
>    PRINT_TYPE(long long);
> #else
>    PRINT_TYPE(long); /* Fake it and hope for the best.  */
> #endif
> 
> 
> 
> anyway, i've not successfully recompiled gcc library for this, and didn't
> find any FAQ about it.
> the above code still crashes/prints wrong value.
> 
> I think its a problem with configure, I see in configure where test code is
> generated for  #define HAVE_LONG_LONG 1
> but what configure file is supposed to get then set with this
> flag....?config.h ? hmm not happening.
> 
> 
Maybe others will not find your post as confusing as I did.  I agree 
that 64-bit gcc supports 64-bit int, but there is no 64-bit gcc for 
cygwin.  long long, on 32-bit platforms like cygwin, is made up from 2 
32-bit integers.  printf(), I believe, is part of newlib.  "the library" 
isn't very descriptive, but I would have thought, in this context, it 
might refer to the libraries built by gcc, which doesn't appear to be 
what you mean, even though you say "gcc library."  newlib doesn't 
pretend to have as much C99 support as GNU libc.

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list