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: Shall dlopen("foo") succeeed if only "foo.dll" exists?

On 11/02/2009 11:48 AM, Corinna Vinschen wrote:
Weird question, right?

Here's the problem.

Assume you have a file "" on Linux. If you call

dlopen ("./", RTLD_LAZY);

it succeeds, but

dlopen ("./foo", RTLD_LAZY);

fails because the dlopen function never adds any suffixes like .so

Now assume you have a "foo.dll" file on Cygwin.

dlopen ("./foo.dll", RTLD_LAZY);

succeeds, but so does

dlopen ("./foo", RTLD_LAZY);

The reason is that Cygwin checks for the .dll suffix as well as the
Windows LoadLibrary function does.

For 1.7 our choice is to keep dlopen() checking for the .dll suffix to
be more Windows-like, or to be more Linux-like by dropping the check for
the .dll suffix so that dlopen() fails if the filename isn't specified

OK, I'll admit I'm responding with a question without actually looking at the
code and so one can feel free to ignore me. However the thought that came
to my mind is, should it really matter if dlopen() checks? What does the check
give us that just passing the name along to LoadLibrary() doesn't? At first
impression, doing the check just prematurely rejects names without the DLL suffix
that would otherwise be accepted by Windows. Since there's a source level change
that (typically) needs to happen to make the code work on Windows as opposed
to Linux/Unix, what benefit are we getting from this added check?

Larry Hall                    
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746


A: Yes.
> Q: Are you sure?
>> A: Because it reverses the logical flow of conversation.
>>> Q: Why is top posting annoying in email?

Problem reports:
Unsubscribe info:

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