Python libraries

Arran Cudbard-Bell a.cudbardb at freeradius.org
Wed Jul 24 11:19:23 CEST 2013


On 23 Jul 2013, at 23:04, Phil Mayers <p.mayers at IMPERIAL.AC.UK> wrote:

> On 07/23/2013 08:52 PM, Arran Cudbard-Bell wrote:
>> Anyone have an idea about what the 'm' suffix is on some python
>> libraries? e.g. libpython3.3m.so
>> 
> 
> It signals that it was built with pymalloc. I believe other letters are possible, to indicate other build-time options e.g. debugging compiled in, unicode width. The idea, if I understand it correctly, is to allow more than one installation of the same version of python with these different build-time options, and this is achieved with the namespacing symbol ("m" in this case)

Ah, thanks.  Is this a new thing for python3?

> IIRC the python binary and all the modules link against the 3.3m.so and the "libpython3.so" is a tiny stub that does nothing.
> 
> I assume you are using python3-config [--cflags|--libs] to get the various compiler flags back; I guess if you want to permit people to build against >1 installed python

The current configure script doesn't.  The most advanced it gets is using sys.prefix/exec_prefix/version.

Is there a similar utility for python 2.x?

> , you will want a:
> 
> --with-pyconfig
> 
> ...and they can always run:
> 
> ./configure --with-pyconfig=/usr/bin/python3.3mabceud-config

Neat, i'll add that in.

As an aside, it looks like the module is not wholly compatible with Python 3, it still builds, but lots of mismatched types and undefined symbols. 

If anyone wants to have a go at fixing it doesn't look too hard. Most of the issues are in the martialing/un-martialing code.

Arran Cudbard-Bell <a.cudbardb at freeradius.org>
FreeRADIUS Development Team



More information about the Freeradius-Devel mailing list