<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
When cm3cg --help prints<br>-m32 [enabled]<br>-m64 [disabled]<br><br>enabled/disabled is the present (default) setting. It doesn't indicate if the compiler supports the flag.<br>To see the meaning of the switch spelled out, use cm3cg --quiet --help.<br>  Found by searching the code for [enabled]. Seems backwards, and gcc/cc1 don't work this way. No matter.<br><br>To see if the switch works, try running it:<br>  cm3cg -m32 <br>  cm3cg -m64  <br><br>Some variants will give a clear error that the feature isn't there. Otherwise press control-d (or z) twice to exit.<br><br>AMD64 hosts by default can target 64 bit and 32 bit.<br>PowerPC and SPARC ought to be the same imho but I don't think they are (yet).<br>I saw some mail thread people asking for this for PowerPC.<br>The docs indicate it is there for PowerPC. The code or the ChangeLog at least shows churn here for SPARC.<br><br>32 bit hosts do not default to being able to target multiple architectures.<br>But you can configure them so:<br><br>x86 hosts can be configured to have a working -m64 switch via<br>--enable-targets=all<br>or --enable-targets=i686-pc-linux-gnu,amd64-pc-linux-gnu<br><br>Same for 32 bit PowerPC I think, and maybe SPARC.<br><br>Those same switches should work for AMD64 hosts, but it is the default.<br>I guess you might be able to trim out the x86 target via --enable-targets-amd64-pc-linux-gnu or --disable-targets=i686-pc-linux-gnu, but I didn't try that.<br><br>There is a term "biarch" or "bi-arch" for "two architectures".<br>When searching the code, be sure to also look for bi-arch.<br>Searching the web I see people refer to --enable-biarch, but I don't believe there is any "biarch" flag anywhere in gcc.<br>Just this --enable-targets=all.<br>And --multilibs stuff.<br><br>I can't speak to glibc and binutils. Perhaps biarch does mean something in the code. Or maybe it used to.<br><br>That's what I know.<br><br>Tony -- your multiarch cm3cg may or may not run on x86.<br>As I understand, there are both 32 bit and 64 bit Intel Macintoshes out there.<br>  The first generation were "Core" not "Core 2" and no 64 bit.<br>In the hardware. And presumably in the software. I don't know when they enabled 64 bit Intel.<br>Lately I believe all Intel Macintoshes are 64 bit hardware. I don't know if therefore they can all run 64 bit user mode code, or if this isn't always enabled.<br>I'm not sure if the kernel is 32 bit or 64 bit but we don't care, I'm sure.<br><br>Historically we have built WAY more of gcc than is generally needed.<br>I can see there being bootstrap scenarios from Sun/IBM/SGI tools, and whatnot, and certainly gcc needs this stuff, they need the bootstrap scenario, etc.<br>However for Modula-3, on systems with a reasonably current gcc already, lots of extra.<br>My machine also took hours to build m3cc recently and now just 7 minutes. Yeah.<br><br>Later,<br> - Jay<br></body>
</html>