"H.J. Lu" <hjl.to...@gmail.com> writes: > On Thu, May 8, 2014 at 1:12 PM, Richard Sandiford > <rdsandif...@googlemail.com> wrote: >> "H.J. Lu" <hjl.to...@gmail.com> writes: >>> On Thu, May 8, 2014 at 12:42 PM, Jakub Jelinek <ja...@redhat.com> wrote: >>>> On Thu, May 08, 2014 at 12:34:28PM -0700, H.J. Lu wrote: >>>>> On Thu, May 8, 2014 at 12:18 PM, Richard Sandiford >>>>> <rdsandif...@googlemail.com> wrote: >>>>> > Kenneth Zadeck <zad...@naturalbridge.com> writes: >>>>> >> everyone who has a private port will hate you forever. note that i >>>>> >> have 2 of them. >>>>> > >>>>> > Got any other ideas though? I suppose if we're prepared to break >>>>> > compatibility with whatever the upstream of longlong.h is, we could >>>>> > make more use of intN_t and uintN_t. >>>>> > >>>>> > Having a whitelist of hosts seems like the best fix though. >>>>> > I'm not sure the default umul_ppmm is going to be any better >>>>> > than not defining it. >>>>> > >>>>> >>>>> Can you add a configure time check if >>>>> >>>>> typedef unsigned int UTItype __attribute__ ((mode (TI))); >>>>> >>>>> is supported? >>>> >>>> Why? Isn't that #ifdef __SIZEOF_INT128__ ? >> >> Read this just after getting the configure test to work... >> >>> Yes, we can use that. Will it work? >> >> Seems to. How does this look? >> >> Thanks, >> Richard >> >> >> gcc/ >> * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or >> __SIZEOF_INT128__ is defined. >> >> Index: gcc/wide-int.cc >> =================================================================== >> --- gcc/wide-int.cc 2014-05-08 20:48:25.341583885 +0100 >> +++ gcc/wide-int.cc 2014-05-08 21:09:29.324386217 +0100 >> @@ -27,18 +27,17 @@ along with GCC; see the file COPYING3. >> #include "tree.h" >> #include "dumpfile.h" >> >> -#if GCC_VERSION >= 3000 >> #define W_TYPE_SIZE HOST_BITS_PER_WIDE_INT > > Isn't HOST_BITS_PER_WIDE_INT always 64 now?
Right, but like I said in reply to Ramana's email, there's no guarantee that we'll continue to use HOST_WIDE_INT for wide-int.h. I'd rather keep this code parameterised on W_TYPE_SIZE rather than hard-code W_TYPE_SIZE==64. >> +#if GCC_VERSION >= 3000 && (W_TYPE_SIZE == 32 || defined >> (__SIZEOF_INT128__)) > > W_TYPE_SIZE == 32 is always false and on 32-bit hosts, > __SIZEOF_INT128__ won't be defined. Right, but we won't try to use TImode if in future we do revert to using 32-bit types for 32-bit hosts. Thanks, Richard