delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/08/08/22:11:27

X-Spam-Check-By: sourceware.org
Message-ID: <44D94430.2030107@sbcglobal.net>
Date: Tue, 08 Aug 2006 19:10:56 -0700
From: Tim Prince <timothyprince AT sbcglobal DOT net>
Reply-To: tprince AT myrealbox DOT com
User-Agent: Thunderbird 1.5.0.5 (Windows/20060719)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Fw: GCC - 64bit long long type, support in lib
References: <019701c6bb49$c9b225a0$26e0110a AT FRED4>
In-Reply-To: <019701c6bb49$c9b225a0$26e0110a@FRED4>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019