On 10 May 2016 at 18:52, Matthew Brett <[email protected]> wrote:
> On Tue, May 10, 2016 at 5:26 PM, Matthew Brett <[email protected]> > wrote: > >> [...] > >> > >> This would probably look like: > >> > >> _tkagg.so has a DT_NEEDED entry naming tkinter.so (or whatever Python > calls > >> this module) > >> > >> Before loading _tkagg.so, we use Python level introspection figure out > where > >> tkinter.so lives > >> > >> We add its directory to LD_LIBRARY_PATH > >> > >> we import _tkagg.so > >> > >> We take its directory back off of LD_LIBRARY_PATH > >> > >> Very weird, but I can't see why it wouldn't work, and probably more > reliable > >> than anything where we try to reimplement the dynamic loader's search > logic > >> ourselves. > > > > Nice - yes - it does work in a first-pass test - I'll look into > automating that. > > Ah - except I do not believe it is possible to change the linker path > for Python modules, within the Python process: > > http://www.gossamer-threads.com/lists/python/python/393770#393770 I was about to point that out... On the other hand, if there is a `Tkinter` module that Python can import, just importing it will make the symbols needed the `_tkagg` module available, assuming Python calls `dlopen()` on import with RTLD_GLOBAL[1]. [1] http://man7.org/linux/man-pages/man3/dlopen.3.html
_______________________________________________ Wheel-builders mailing list [email protected] https://mail.python.org/mailman/listinfo/wheel-builders
