"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 +#if GCC_VERSION >= 3000 && (W_TYPE_SIZE == 32 || defined (__SIZEOF_INT128__)) typedef unsigned HOST_HALF_WIDE_INT UHWtype; typedef unsigned HOST_WIDE_INT UWtype; typedef unsigned int UQItype __attribute__ ((mode (QI))); typedef unsigned int USItype __attribute__ ((mode (SI))); typedef unsigned int UDItype __attribute__ ((mode (DI))); -typedef unsigned int UTItype __attribute__ ((mode (TI))); #if W_TYPE_SIZE == 32 -# define UDWtype UDItype -#elif W_TYPE_SIZE == 64 -# define UDWtype UTItype +typedef unsigned int UDWtype __attribute__ ((mode (DI))); +#else +typedef unsigned int UDWtype __attribute__ ((mode (TI))); #endif #include "longlong.h" #endif