GNU bug report logs - #13030
factor: infinite loop on Linux/powerpc

Previous Next

Package: coreutils;

Reported by: Colin Watson <cjwatson <at> ubuntu.com>

Date: Thu, 29 Nov 2012 17:51:01 UTC

Severity: normal

Done: Pádraig Brady <P <at> draigBrady.com>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 13030-done <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Colin Watson <cjwatson <at> ubuntu.com>
Cc: coreutils <at> packages.debian.org, 13030-done <at> debbugs.gnu.org,
	Torbjorn Granlund <tg <at> gmplib.org>
Subject: Re: bug#13030: factor: infinite loop on Linux/powerpc
Date: Thu, 29 Nov 2012 19:34:03 +0000
On 11/29/2012 02:28 PM, Colin Watson wrote:
> Both Debian and Ubuntu builds of coreutils 8.20 hang while running the
> test suite on powerpc.  This turns out to be reproducible using 'factor
> 122'.
>
> This turns out to be somewhat related to
> http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12754, but not quite the
> same.  uintmax_t is 64 bits, but the cntlzw instruction takes 32-bit
> operands, and the cntlzd option is only available on 64-bit hardware.  I
> believe the correct answer is to add an _LP64 check around the PPC64
> code, so that this falls back to the C implementations:
>
> --- coreutils-8.20~/src/longlong.h	2012-11-29 14:25:07.000000000 +0000
> +++ coreutils-8.20/src/longlong.h	2012-11-29 14:26:40.000000000 +0000
> @@ -1398,7 +1398,7 @@
>
>   /* We should test _IBMR2 here when we add assembly support for the system
>      vendor compilers.  */
> -#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,
>

The fix looks good thanks.
I'll commit that in your name along with this NEWS entry:

** Bug fixes

  factor no longer hangs on 32 bit powerpc systems.
  [bug introduced in coreutil-8.20]

thanks,
Pádraig.




This bug report was last modified 12 years and 133 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.