Michael Haubenwallner f763e2dc88 dlopen: on x/lib search x/bin if exe is in x/bin
On 09/02/2016 11:03 AM, Corinna Vinschen wrote:
> On Sep  2 10:46, Michael Haubenwallner wrote:
>> On 09/01/2016 03:32 PM, Corinna Vinschen wrote:
>>> You could just use the global variable program_invocation_name.  If in
>>> doubt, use the Windows path global_progname and convert it to full POSIX
>>> via cygwin_conv_path.
>>
>> Patch updated, using global_progname now.
>
> Looks good and you're right to do it this way since I just noticed
> that program_invocation_name may return a relative pathname.

Yep.

> Btw., in other calls which require the full POSIX path we use
> mount_table->conv_to_posix_path instead of cygwin_conv_path (see
> e. g. fillout_pinfo()).  It's a bit faster.  Maybe something for a
> followup patch.

No problem - attached.
This renders the original patch 4/4 valid again.

> Note for some later improvement:  I really wonder why we don't store
> the absolute POSIX path of the current executable globally yet...

Same here.

Thanks!
/haubi/

>From f7255edd33cb4abe34f27188aab8dccdfa5dd2a0 Mon Sep 17 00:00:00 2001
From: Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
Date: Wed, 31 Aug 2016 18:05:11 +0200
Subject: [PATCH 3/4] dlopen: on x/lib search x/bin if exe is in x/bin

citing https://cygwin.com/ml/cygwin-developers/2016-08/msg00020.html
> Consider the file /usr/bin/cygz.dll:
> - dlopen (libz.so)            success
> - dlopen (/usr/bin/libz.so)   success
> - dlopen (/usr/lib/libz.so)   fails

* dlfcn.c (dlopen): For dlopen("x/lib/N"), when the application
executable is in "x/bin/", search for "x/bin/N" before "x/lib/N".
2016-09-08 13:36:32 +02:00
..
2013-04-30 23:43:08 +00:00
2012-11-23 13:22:47 +00:00
2016-08-23 17:51:14 +02:00
2016-08-23 15:07:42 +01:00
2016-06-25 00:43:01 +02:00
2016-08-23 15:07:42 +01:00
2014-04-26 17:38:22 +00:00
2016-06-24 23:32:39 +02:00
2016-06-24 23:32:39 +02:00
2016-06-25 00:43:01 +02:00
2016-08-23 15:07:42 +01:00
2015-03-03 12:58:34 +00:00
2016-06-25 00:43:01 +02:00
2016-06-24 23:32:39 +02:00
2015-11-18 19:09:47 +01:00
2016-06-25 17:08:18 +01:00
2016-08-25 12:06:17 +02:00
2016-08-23 15:07:42 +01:00
2015-08-17 11:05:43 +02:00
2013-04-23 09:44:36 +00:00
2016-06-23 16:56:41 +02:00
2016-06-24 23:32:39 +02:00
2016-06-23 21:30:15 +02:00
2016-08-23 15:07:42 +01:00
2016-06-23 21:30:15 +02:00
2016-06-24 23:32:39 +02:00
2016-06-24 23:32:39 +02:00
2016-08-19 16:27:07 +02:00
2016-07-27 17:02:08 +01:00
2013-04-23 09:44:36 +00:00
2016-08-23 15:07:42 +01:00
2016-06-23 16:56:41 +02:00
2016-08-18 10:27:28 +02:00
2016-06-24 21:00:04 +02:00
2016-06-24 21:00:04 +02:00
2016-06-24 23:33:01 +02:00