Michael.Abshoff on Sat, 29 Dec 2007 08:42:54 +0100

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

running examples/extgcd.c on cygwin

Hi Ifti,

ironically I hit the same problem while compiling Sage on cygwin. I wasn't subscribed to pari-users, so I missed the problem. Imagine my surprise While Googling for a solution that I found your problem, but it looks like you didn't solve it [at least you didn't report a solution].

The problem seems to be that you link the static libpari per default and the linker gets easily confused if duplicate symbols appear in static libraries, maybe due to linking the same lib more than once in various stages. Pari doesn't provide an import lib or a def file on cygwin on top of that, so linking dynamically won't work in most cases. My default build results in the following two libs:

$ file libpari.dll.a
libpari.dll.a: current ar archive
$ file libpari.dll
libpari.dll: MS-DOS executable PE for MS Windows (DLL) (console) Intel 80386 32-bit

To resolve my issue [and hopefully yours] I did the following:

$ rm libpari.dll.a
$ dlltool -z libpari.def --export-all-symbol libpari.dll

Then linking libcsage against libpari dynamically worked.

Let me know if that works for you. I can provide some patch for pari so that the def file is created automatically.

On top of that: If you need more than the roughly 1.3GB RAM the cygwin provides for your computation ping me. My offer to build an 64 bit MSVC build of pari for Windows is still standing. I just need a motivating factor to actually do it. I will have some time past the Sage 2.9.2 release due out in about 6 days.

Bill Allombert mentioned in Bristol at Sage Days 6 that I would need to create some config file manually for the MSVC build, but I will ping the pari-devel list once I got time to do so.