factor: apply a more general fix to enable correct assembly
authorPádraig Brady <P@draigBrady.com>
Fri, 4 Jan 2013 18:07:01 +0000 (18:07 +0000)
committerPádraig Brady <P@draigBrady.com>
Mon, 7 Jan 2013 02:11:36 +0000 (02:11 +0000)
commit05382299cd9953a32c95f89b7cdef6f512176a81
tree40a19c7c44a2957345db313363e4425cc0b78f05
parent1248cc816ce61e61829b510ae6969cbf224ce300
factor: apply a more general fix to enable correct assembly

In addition to the previous 64 bit guards we've placed in longlong.h
there are additional _LP64 guards required for mips with -mcpu >= 3,
to avoid a build failure (http://bugs.gnu.org/13353) and on sparc
with -mcpu >= v9 in 32 bit mode where for example,
`factor 2123123123123123123123` would go into an infinite loop.

Since factor.c currently operates on uintmax_t, we restrict the use
of the assembly in longlong.h to when 'long' has the same width, to
provide a more general guard for this code.

* src/factor.c: Restrict the use of longlong.h assembly code,
to when the width of intmax_t == long.
* src/longlong.h: Remove the previous _LP64 guards to avoid
divergence from GMP's longlong.h
* NEWS: Adjust the info on build and runtime fixes.
NEWS
src/factor.c
src/longlong.h