32-bit gcc help

Mike A. Harris mharris at redhat.com
Wed Jul 7 05:22:04 UTC 2004


On Tue, 6 Jul 2004, Jiann-Ming Su wrote:

>Date: Tue, 6 Jul 2004 22:41:06 -0400 (EDT)
>From: Jiann-Ming Su <js290 at bellsouth.net>
>To: axp-list at redhat.com
>Content-Type: TEXT/PLAIN; charset=US-ASCII
>Reply-To: Linux and Red Hat on Alpha processors <axp-list at redhat.com>
>X-BeenThere: axp-list at redhat.com
>Subject: 32-bit gcc help
>
>I'm trying to compile a 32-bit program on my Alpha.  The configure
>script is expecting 32-bit integers:
>
>  checking "size of time_t"... "bad"
>  configure: error: "one or more basic data types has an incompatible size: giving up"
>
>How do I force gcc to compile with 32-bit integers?  I tried
>passing "-msmall-data" as part of the CFLAGS variable.  Some
>architectures allow for a "-m32", but Alpha isn't one of them.  Thanks
>for any tips.

On Alpha, the standard types are of the following sizes:

sizeof(char)=1
sizeof(short)=2
sizeof(int)=4
sizeof(long)=8
sizeof(long long)=8

The above is typical for the majority of 64bit platforms out 
there (but not all).  It looks to me from the above error 
message, that the application you're trying to compile is not 
compatible with a 64bit system and needs to be ported to be 64bit 
clean.

If you were using AMD64 architecture, you could use -m32 to
compile 32bit x86 binaries, as the CPU can run both native 32bit
and 64bit code.  ia64 can do similar with emulation, and ppc64
can run 32bit ppc binaries also.  There never was a 32bit Alpha,
so it has no such capability.

I don't think there's any other option than to fix the 
application to be 64bit clean, or to use a 32bit processor or an 
alternative 64bit architecture which has compatibilty with it's 
32bit predecessor.

Hope this helps.


-- 
Mike A. Harris        ftp://people.redhat.com/mharris
OS Systems Engineer   -   X11 Developer   -   Red Hat





More information about the axp-list mailing list