Gordon Royle on Tue, 16 Aug 2011 05:52:35 +0200


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

Re: polroots: impossible inverse


Unfortunately I still can't make it work, though probably it is my configuration rather than any problem with Pari.

Anyway, just in case anyone can help, here is the situation:

- new machine running Mac OS X Lion 64-bit kernel (uname -m returns x86_64)
- fink-installed version of gcc4.6 (no version 4.5 for Lion)


However I can't figure out how to actually change the pari-gp configure or makefile to use the gcc4.6 and nor can I work out how to make gcc4.6 the default compiler for everything.

(I did try the dumbest thing, which was just to point the symlink /usr/bin/gcc to the new version of gcc, and it compiled ok, but immediately crashed on starting gp)


Any help would be appreciated, though I understand this problem is getting pretty peripheral to the list..


On 12/08/2011, at 5:26 PM, Bill Allombert wrote:

> On Fri, Aug 12, 2011 at 03:16:28PM +0800, Gordon Royle wrote:
>> I have just compiled Pari/GP for Mac OS X (10.7) from source.
>> 
>> When I try
>> 
>> p = 0+(0*x^0)+(0*x^1)+(11*x^2)+(-25*x^3)+(20*x^4)+(-7*x^5)+(1*x^6);
>> polrootsâ
>> 
>> I get
>> 
>> ? polroots(p)
>>  ***   at top-level: polroots(p)
>>  ***                 ^-----------
>>  *** polroots: impossible inverse modulo: Mod(4, 27457).
>>  ***   Break loop: type 'break' to go back to GP
>> 
>> 
>> Why is this?
> 
> Every new Mac OS X major release comes with a broken compiler.  This one generates
> wrong code for the modular inverse code.
> 
> To work around this problem, you can do:
> 
> rm Odarwin-i386/mp.o; make -C Odarwin-i386 gp CFLAGS="-O0 -fno-strict-aliasing"
> 
> but you will get a slow binary.
> 
> Better is to install gcc 4.5 and use it instead.
> 
> Cheers,
> Bill.
> PS: please note the new list address.
> 

Professor Gordon Royle
School of Mathematics and Statistics
University of Western Australia
Gordon.Royle@uwa.edu.au