public inbox for cygwin-developers@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin-developers@cygwin.com
Subject: Re: About the dll search algorithm of dlopen
Date: Wed, 01 Jun 2016 11:09:00 -0000	[thread overview]
Message-ID: <20160601110947.GE11431@calimero.vinschen.de> (raw)
In-Reply-To: <574E835E.7090109@ssi-schaefer.com>

[-- Attachment #1: Type: text/plain, Size: 1694 bytes --]

On Jun  1 08:40, Michael Haubenwallner wrote:
> Hi,
> 
> two issues with dlopen here (I'm about to prepare patches):
> 
> *) The algorithm to combine dll file name variants with the search path
>    entries needs to be reordered, as in:
>    - for each dll file name variant:
>    -   for each search path:
>    + for each search path entry:
>    +   for each dll file name variant:
>          check if useable

Rationale?  We only need to find one version of the file and there
usually only is one.  This is mainly for moduled systems like perl,
python, etc.  However, if you can speed up the search process ignore the
question...

> *) The directory of the current main executable should be searched
>    after LD_LIBRARY_PATH and before /usr/bin:/usr/lib.
>    And PATH should be searched before /usr/bin:/usr/lib as well.

Checking the executable path and $PATH are Windows concepts.  dlopen
doesn't do that on POSIX systems and we're not doing that either.

Having said that, LoadLibrary will search the usual paths.  After 2.5.2,
we're leaving XP/2003 behind, and then we probably should tighten the
search algorithm along the lines of

  AddDllDirectory ("/usr/bin");
  AddDllDirectory ("/usr/lib");
  [...]
  LoadLibraryEx (path, NULL, LOAD_LIBRARY_SEARCH_USER_DIRS
			     | LOAD_LIBRARY_SEARCH_SYSTEM32);

>    For consistency, IMO, when any searched path ends in either
>    x/bin or x/lib, we should search x/bin:x/lib.

This might make sense, at least in the direction lib->bin.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-06-01 11:09 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-01  6:39 Michael Haubenwallner
2016-06-01 11:09 ` Corinna Vinschen [this message]
2016-06-01 14:25   ` Michael Haubenwallner
2016-06-01 20:18     ` Corinna Vinschen
2016-06-01 23:29       ` Yaakov Selkowitz
2016-08-19 16:37       ` Michael Haubenwallner
2016-08-19 16:39         ` Michael Haubenwallner
2016-08-20 19:32           ` Corinna Vinschen
2016-08-22 12:15             ` Michael Haubenwallner
2016-08-22 12:48               ` Peter Rosin
2016-08-22 13:01                 ` Michael Haubenwallner
2016-08-22 16:02               ` About the dll search algorithm of dlopen (patch-r2) Michael Haubenwallner
2016-08-22 18:37                 ` Corinna Vinschen
2016-08-23  8:16                   ` Corinna Vinschen
2016-08-25 17:48                   ` About the dll search algorithm of dlopen (patch-r3) Michael Haubenwallner
2016-08-26 10:59                     ` Corinna Vinschen
2016-08-26 11:18                       ` Corinna Vinschen
2016-08-26 11:49                         ` Corinna Vinschen
2016-08-29 16:50                           ` Michael Haubenwallner
2016-08-30 14:51                             ` Corinna Vinschen
2016-08-30 15:57                               ` Michael Haubenwallner
2016-08-31 18:48                                 ` Corinna Vinschen
2016-09-01  8:58                         ` Michael Haubenwallner
2016-08-26 14:08                       ` Michael Haubenwallner
2016-08-30 13:26                         ` Corinna Vinschen
2016-08-26 12:04                     ` Corinna Vinschen
2016-08-29  9:24                       ` Michael Haubenwallner
2016-08-30 13:35                         ` Corinna Vinschen
2016-08-30 16:41                           ` Michael Haubenwallner
2016-08-31 18:43                             ` Corinna Vinschen
2016-08-22 18:49               ` About the dll search algorithm of dlopen Corinna Vinschen
2016-08-23  8:55                 ` Michael Haubenwallner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160601110947.GE11431@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=cygwin-developers@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).