Ilya Zakharevich on Sun, 6 Apr 2003 12:53:11 -0700


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

Re: Cygwin + DLL


On Sun, Apr 06, 2003 at 05:31:00PM +0200, Karim BELABAS wrote:
> Hi developers,
> 
>   I have downloaded a recent Cygwin version to try and build that ellusive
> libpari.dll, which has been periodically requested, and which I had been
> unable to build so far [ actually, I could get the DLL to build, but gp-dyn
> crashed ].

The recent Math::Pari build DLLs not only with Cygwin, but with mingw
and M$ cl as well.  So the simplest way out may be to modify the
export list (FUNCLIST of the toplevel Makefile.PL) so that the
resulting DLL works with gp-dyn.

> Also, install() works in gp-dyn, and the bench is about as fast as under
> Linux (DLL takes longer to load though).

Probably the opposite; just the skewed timing.  At least on OS/2, DLLs
are demand-loaded (a page is loaded only when needed; this includes
resolution of symbols); thus the load time of the DLL is included into
the timer output.  IIRC, on Linux the whole DLL is loaded first before
the timer starts.

The situation on Win32 may be similar.

> 1) install() does not work with gp-sta. install itself seems to behave
> correctly, but the DLL is apparently not properly loaded and gp-sta segfaults
> when calling the installed function [ later, it actually crashed XP... ].
> Since gp-dyn is (much smaller and) a little faster than gp-sta, it is not a
> major problem. I changed Configure to build gp-dyn.exe by default.

Did you create the export list for the EXE file?  [This does not work
on OS/2, so I can't be of more assistance; but this is reported to
work on Win32.]

Ilya