Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Sep 2007 22:48:57 +1000
From:      Andrew Milton <akm@theinternet.com.au>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        current@freebsd.org
Subject:   Re: how to tell 64 vs 32 bit architecture ?
Message-ID:  <20070911124857.GW4840@camelot.theinternet.com.au>
In-Reply-To: <20070911123556.GF53667@deviant.kiev.zoral.com.ua>
References:  <20070906111028.A83649@xorpc.icir.org> <20070906222647.GB2737@kobe.laptop> <20070907000950.A91211@xorpc.icir.org> <20070907115021.GA2718@kobe.laptop> <20070907050310.A94579@xorpc.icir.org> <54b90fdf0709070654h103316f3sa3d423f4ff75fee3@mail.gmail.com> <20070911051653.A62022@xorpc.icir.org> <20070911123556.GF53667@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 11, 2007 at 05:16:53AM -0700, Luigi Rizzo wrote:
> 
> gcc 3.4 on a 32bit machine complains because the second constant
> is too large.

Can I ask why the 64 bit constant isn't 0xd00de123deadbeef , which would make
bits 0-31 the same for both architectures, which might simplify the problem.

#define MY_MAGIC 0xd00de123deadbeefLL

int main(int argc, char **argv)
{
        printf("0x%08x\n", MY_MAGIC);
}

outputs 0xdeadbeef on 32 bit architectures, so it IS truncating the top 32
bits.

I know this doesn't solve the broader problem of detecting word length, but,
it might solve your immediate problem.

-- 
Andrew Milton
akm@theinternet.com.au



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070911124857.GW4840>