enable maximum integer type to be 128 bits

Jan Beulich JBeulich@novell.com
Mon Jul 12 12:43:00 GMT 2004


Doing this just for an individual target is how I first did it. When I
did it for the second target, I already saw that doing this one-by-one
is not efficient. Thus the approach you got to see... Anyway, the target
this was done for originally is dead, but I submitted the patch because
unltimately I'd still like to see (not immediately) an ABI flavor on
x86-64/ia64 Linux that supports 128-bit ints (and not just
unidentifiable types that behave exactly like integer ones). Jan

>>> "Joseph S. Myers" <jsm@polyomino.org.uk> 12.07.04 10:28:11 >>>
On Mon, 12 Jul 2004, Jan Beulich wrote:

> We, basing our types model exclusively on C99, decided to not do so,
and
> you're basically saying that because gcc shouldn't be supported for
such
> an environment (my interpretation of 'open source' is that the source
is
> not only visible but also useful to everyone who cares).

Implementing a new target on which intmax_t is __int128_t, which is an
extended integer type, would be less controversial than an
ABI-breaking
configure option.  After all, if your target's ABI says that is
intmax_t,
we support many weird things for the sake of target ABI compatibility. 

If it makes size_t bigger than long it's still the case that as a host
(not target) it falls outside what the GNU Coding Standards say are of
interest for GNU software.  I don't consider intmax_t bigger than long
an
intrinsic problem (that's only the case for C90 and POSIX <= 1996
integer
typedefs, and in practice off_t needs to be bigger than 32 bits anyway;
I
prefer the *BSD approach of 64-bit off_t unconditionally to the LFS
approach using _FILE_OFFSET_BITS as used by glibc).

I gave pointers in my first message to how to support wider intmax_t on
a
new target, updating the documentation of type macros and defining
__INTMAX_TYPE__, __UINTMAX_TYPE__, __INTMAX_MAX__ and using those in
the
testsuite.

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/ 
    jsm@polyomino.org.uk (personal mail)
    jsm28@gcc.gnu.org (Bugzilla assignments and CCs)



More information about the Gcc-patches mailing list