bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#13030: factor: infinite loop on Linux/powerpc


From: Pádraig Brady
Subject: bug#13030: factor: infinite loop on Linux/powerpc
Date: Thu, 29 Nov 2012 20:08:43 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1

On 11/29/2012 07:36 PM, Torbjorn Granlund wrote:
Pádraig Brady <address@hidden> writes:

   > -#if HAVE_HOST_CPU_FAMILY_powerpc && W_TYPE_SIZE == 64
   > +#if HAVE_HOST_CPU_FAMILY_powerpc && W_TYPE_SIZE == 64 && defined (_LP64)
   >   #if !defined (_LONG_LONG_LIMB)
   >   /* _LONG_LONG_LIMB is ABI=mode32 where adde operates on 32-bit values.  
So
   >      use adde etc only when not _LONG_LONG_LIMB.  */
   >
   > Thanks,
   >

I suppose it might be much better to make W_TYPE_SIZE not be set to a
size not supported by the present ABI.

That way, we will avoid longlong.h divergence.

So that's a bit in contradiction to:
http://bugs.gnu.org/12754#20

So you're suggesting that this would be safest?

diff --git a/src/factor.c b/src/factor.c
index 6d1d17a..d2a4158 100644
--- a/src/factor.c
+++ b/src/factor.c
@@ -126,11 +126,11 @@
 /* Make definitions for longlong.h to make it do what it can do for us */

 /* bitcount for uintmax_t */
-# if UINTMAX_MAX == UINT32_MAX
+# if ULONG_MAX == UINT32_MAX
 #  define W_TYPE_SIZE 32
-# elif UINTMAX_MAX == UINT64_MAX
+# elif ULONG_MAX == UINT64_MAX
 #  define W_TYPE_SIZE 64
-# elif UINTMAX_MAX == UINT128_MAX
+# elif ULONG_MAX == UINT128_MAX
 #  define W_TYPE_SIZE 128
 # endif

In this particular case that would enable
the 32 bit ppc assembly in longlong.h

thanks,
Pádraig.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]