This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Dynamic loading of cygwin dependent dlls


> > Ah, now I see it. You have to be careful with your typing.
> > pseudo_stubs.dll (with one s in the end) is the name that fails.
> > Apparently both pseudo_stub.dll (no s) and psuedo_stubs.dll (bad
> > spelling) work. And pseudo_stubss.dll (double s) definitely 
> works, that
> > I have tried myself.
> 
> You have checked what error 998 actually is?
> 
> #define ERROR_NOACCESS 998L

Of course. I have also checked what might cause the error. See:
http://support.microsoft.com/default.aspx?scid=kb;en-us;q196069

I can also say that I have tried to use the pure Win32 LoadLibrary call
on the resulting dlls, and the results are consistent with the dlopen
results. My guess is that there is something wrong inside the dll, that
causes a segfault during dlopen/LoadLibrary.

> I cannot believe that it depends on the name of a DLL whether it can
> be dlopened or not.

Me neither, yet the name appears to be significant in some way.

>                      There must be another error with your test!
> 
> Consider this (with source from your first posting):
> $ gcc -shared -o pseudo_stubs.dll foo.c
> $ gcc -o load load.c
> $ ./load
> pseudo_stubs.dll        ok
> foo.dll dlopen: Win32 error 126
> $ cp pseudo_stubs.dll foo.dll
> $ ./load
> pseudo_stubs.dll        ok
> foo.dll ok

Hey, that doesn't explain anything. It's like answering someones awk bug
report with "see, it works with sed, your test must be wrong". Apart
from that, thanks for the example, the project now uses "gcc -shared"
with apparent success. So for me, this problem is now academic.

I'm not saying that it is the name of the dll that is causing the
problem. If I build the dll as foo.dll with dlltool/dllwrap and rename
it to pseudo_stubs.dll, pseudo_stubs.dll works. Also, if I build the dll
as pseudo_stubs.dll and rename it foo.dll, foo.dll doesn't work.

I'd say that there is some sort of problem in dlltool/dllwrap. Please
enlighten me if I'm using them incorrectly.

Can someone also please say if they get error 998 for the example in the
original post, or if that happens on my machine only.

Cheers,
Peter

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]