[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to package a Python module with shared libraries ?



Le lundi 26 avril 2010 à 11:04 +0100, Floris Bruynooghe a écrit :
> On Mon, Apr 26, 2010 at 09:44:52AM +0200, Josselin Mouette wrote:
> > Unfortunately that won’t work, since the rpath used by dlopen() is the
> > one provided by the binary, not the one for the module being loaded.
> 
> You are correct, I drew the wrong conclusions from some earlier
> experience but upon checking the dlopen manual I see my memory must
> have gotten confused over time.

You have a good excuse, since this behavior is completely
counter-intuitive.

> > A possible way would be to make a wrapper Python extension, that would
> > parse the module for its NEEDED components and load them manually using
> > the given rpath before loading the actual module.
> > 
> > Which in turn will not be possible since there is no shared version of
> > libbfd - which would be required for doing this.
> 
> Is it not possible to do it with just including elf.h and using the
> structures in there to find the relevant NEEDED and RPATH/RUNPATH tags
> in the dynamic section?  It seems like a substantial amount of code
> would be required tough.

Yes, but it might be worth writing a generic Python extension to do
that, given that we already have several packages affected.

-- 
 .''`.      Josselin Mouette
: :' :
`. `'   “A handshake with whitnesses is the same
  `-     as a signed contact.”  -- Jörg Schilling


Reply to: