64bit integer problem?

Warner Losh imp at bsdimp.com
Tue Sep 18 10:17:44 PDT 2007


From: Michael Reifenberger <mike at Reifenberger.com>
Subject: 64bit integer problem?
Date: Tue, 18 Sep 2007 18:35:04 +0200 (CEST)

> Hi,
> 
> on my AVILA-arm board I'm unable to compile lang/perl
> 
> On of the problems seems to be related to long long handling:
> 
> The following program:
> ##############################
> #include <sys/types.h>
> #include <stdio.h>
> int main() {
>    long long q = 12345678901LL;
>    printf("%lld\n", q);
> }
> ##############################
> 
> gives the output:
> -2315945094416433150
> 
> Is there a endian issue?

12345678901 is 0x2DFDC1C35
2315945094416433151 is 0x2023E3CAFFFFFFFF
-2315945094416433150 is therefore 0xdfdc1c3500000000

which the lower 32bits of 'q' shifted over 32 bits.

Maybe this is an endian issue, since I don't see it on my AT91RM9200
based boards (which are little endian).

Warner


More information about the freebsd-arm mailing list