This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
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.
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.
-- 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/
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |