GNU bug report logs -
#13030
factor: infinite loop on Linux/powerpc
Previous Next
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):
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.