<div class="gmail_quote">On Thu, Jun 7, 2012 at 6:55 PM, William Gropp <span dir="ltr"><<a href="mailto:wgropp@illinois.edu" target="_blank">wgropp@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Note that there is no reason that the C compiler couldn't use 8 bytes for an int;</blockquote></div><br><div>But this would change the data model so the compiler can't change this at will without breaking binary compatibility with libc and the rest of the system.</div>
<div><br></div><div>You could in principle build up an entire operating system (starting with libc) using an ILP64 data model (though even GCC does not support this option for most architectures), but you would be adopting/defining an unsupported ABI.</div>
<div><br></div><div>(Unicos was SILP64 and apparently HAL's port of Solaris to SPARC64 was ILP64, so (S)ILP64 has been supported by some vendors, but it's far from mainstream.)</div>