On Tuesday, October 18, 2011 6:50 PM, "Hans-Christoph Steiner" hans@at.or.at wrote:
On Thursday, September 29, 2011 8:49 AM, "IOhannes m zmölnig" zmoelnig@iem.at wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 09/28/2011 03:07 PM, Hans-Christoph Steiner wrote:
Ah, ok, that changes things. So you are sure there isn't a way to make this work?
on, i'm not sure. i only reported issues i came across.
If so, do you think there are other shared library techniques you think could work?
i hope, but i do not know.
Otherwise, it looks like we are back to my original manual dlopen() proposal.
i'm still no friend of this. i'm afraid that all real-life solutions that involve dlopen(), will require significantly more code to be crammed into each external (only to make this work) than will be put into the "shared code library".
which would make the entire attempt futile.
I found something promising for GNU/Linux to complete this project: http://grahamwideman.wordpress.com/2009/02/09/the-linux-loader-and-how-it-fi...
DT_RUNPATH: Using the DT_RUNPATH dynamic section attribute of the binary if present. (Ie: the executable can provide a list of paths t search for objects to load. However, DT_RUNPATH is not applied at the point those objects load other objects. — GW)
.hc
Yes! I got it working. I see the way to use it for this situation, basically set DT_RUNPATH in the .pd_linux file to the special string $ORIGIN. $ORIGIN is then replaced with the CWD of the .pd_linux file. This was the source of info that finally nailed this down for me:
http://blog.lxgcc.net/?tag=dt_runpath
The set of directories specified by a given DT_RUNPATH entry is used to find only the immediate dependencies of the executable or shared object containing the DT_RUNPATH entry. That is, it is used only for those dependencies contained in the DT_NEEDED entries of the dynamic structure containing the DT_RUNPATH entry, itself. One object's DT_RUNPATH entry does not affect the search for any other object's dependencies. http://www.sco.com/developers/gabi/2000-07-17/ch5.dynamic.html#shobj_depende...
I committed the change to tkwidgets and the template/Makefile.
.hc