[PATCH 4/4] dlopen: on unspecified lib dir search exe dir

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Sep 1 14:05:00 GMT 2016


On Aug 31 20:07, Michael Haubenwallner wrote:
> Applications installed to some prefix like /opt/application do expect
> dlopen("libAPP.so") to load "/opt/application/bin/cygAPP.dll", which
> is similar to "/opt/application/lib/libAPP.so" on Linux.
> 
> See also https://cygwin.com/ml/cygwin-developers/2016-08/msg00020.html
> 
> * dlfcn.cc (dlopen): For dlopen("N"), search directory where the
> application executable is in.
> ---
>  winsup/cygwin/dlfcn.cc | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/winsup/cygwin/dlfcn.cc b/winsup/cygwin/dlfcn.cc
> index f8b8743..974092e 100644
> --- a/winsup/cygwin/dlfcn.cc
> +++ b/winsup/cygwin/dlfcn.cc
> @@ -232,6 +232,12 @@ dlopen (const char *name, int flags)
>  	     not use the LD_LIBRARY_PATH environment variable. */
>  	  finder.add_envsearchpath ("LD_LIBRARY_PATH");
>  
> +	  /* Search the current executable's directory like
> +	     the Windows loader does for linked dlls. */
> +	  int exedirlen = get_exedir (cpath, wpath);
> +	  if (exedirlen)
> +	    finder.add_searchdir (cpath, exedirlen);
> +
>  	  /* Finally we better have some fallback. */
>  	  finder.add_searchdir ("/usr/bin", 8);
>  	  finder.add_searchdir ("/usr/lib", 8);
> -- 
> 2.7.3

Still not quite sure if that's the right thing to do...


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-patches/attachments/20160901/6af7ef33/attachment.sig>


More information about the Cygwin-patches mailing list