Alan needs a DLL guru (was Re: [PATCH] Re: pthread).

Alan Hourihane alanh@fairlite.demon.co.uk
Sun May 6 08:27:00 GMT 2001


On Sun, May 06, 2001 at 11:12:16PM +1000, Robert Collins wrote:
> > On Sun, May 06, 2001 at 01:35:41AM +1000, Robert Collins wrote:
> > > > _XLIBINT_ and NeedLibInsideFlag did not help.
> > > > However I can compile win32-x11 with pthread from
> > > > ( http://sources.redhat.com/win32-x11 and pthread from win32 from
> > > > sourceware), and no crashes ;-)
> > >
> > > Can you compile Xfree86 with the source win32 pthreads? fork() may
> > > break, but if that works, you could tell me whats wrong with my code
> and
> > > I'll write to your spec to fix it. (ahh the beauty of clean room
> r/e).
> > >
> > I've been bashing on this all day and I'll give a better update later.
> 
> Coool.. well I'm heading to sleep land shortly :].
> 
> > But to put you out of your misery on the win32 pthreads - it still
> happens
> > with this.
> 
> Whew. (I was reassured when you indicated that the problem was
> var_p == var instead of
> var_p == &var.)
> 
> You might want to look at the cygwin-dev and cygwin list archives. Just
> search for dll and data|variable|export. I suspect this problem has been
> solved many times before.
> 
It's o.k. I've fixed it now....Finally understood how DLL's and function
pointers are handled in a cross DLL situation. Part of the problem is
here....

Can anyone here tell me if there's a better solution than using

__declspec(dllimport) void func();

Can't I do something like this at the linker level ? As otherwise I'll
need to fixup the function pointers in quite a few places for the mutex's.
Ugh.

If not, I'll post to cygwin-devel in a day or so.

Oh, twm.exe is working now. Obviously it doesn't create any threads though.

I've got an OpenGL thread program which crashes in another function pointer
place. I'll eventually test this and fix it's mutex too, but it'd be good
to get a better solution than what I've currently got.

Alan.



More information about the Cygwin-xfree mailing list