This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Recipients Michael.Felt,, martin.panter
Date 2016-08-11.15:10:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
In-reply-to <>
On 02-Aug-16 15:34, Martin Panter wrote:
> Martin Panter added the comment:
> For 2.7, adding the automatic RTLD_MEMBER mode does not seem like a bug fix to me. Currently, I understand this code could load two separate libraries:
> file = CDLL("libcrypto.a(")
Noone (in their right mind, imho) would install, or extract the archive 
member then rename it 

FYI - I did test this case, and as a file, without 0x000400000 (aka 
RLTD_MEMBER) or'd into the mode.
> member = CDLL("libcrypto.a(", DEFAULT_MODE | 0x00040000)
> With your proposed change, the first line will do the same as the second line, and Python will no longer provide a way to load a file named like in the first operation. Maybe this is okay for the next version of Python 3 (because it is only breaking a rare corner case), but my view is it is not worth changing 2.7.
Right now it is broken in AIX - it is impossible to use the native 
archive(member) support. Direct loading of .so files, if I recall 
correctly, was to provide linux affinity (remember the L in AIX 5L).

I believe python2 has some years to go, and basically, you ask anyone 
using python on AIX to go through all kinds of loops. This hurts python 
acceptance on AIX - too much work to get it working and keep it working.

I have been providing AIX support for over 20 years - NEVER have I seen 
anyone name a shared library libxxx.a( What I have seen is 
that people extract archive members from a .a archive into the same 
directory - but when the archive gets updated most forget to extract the 
members again.

In yet another case I have seen a case where they copied everything to a 
new directory and do a chroot() to get the .so files they want - because 
it is impossible to load from a .a file.

Yes, when I first started back in February and March: a) knew next to 
nothing about python; b) was trying to solve it in ways I would like it 
be (mainly more flexible aka smarter re: the argument to find_library().

However, I do believe what I have here does what is done for other 
platforms (e.g., darwin needs a different name ending, just not a 
different mode to go with it) - will "fix" all "performance" related 
issues for AIX re: calling ldconfig (which is only available in 
extremely rare situations - again I have never seen it - because, by 
default, even gcc is using AIX ld, not GNU ld)

I hope saying "please" helps. Without it, the AIX implementation is 
non-existant. The linux code is called for AIX because that is the last 
else: block, not because the code is specific to "posix".

so - PLEASE - pretty please!


p.s. And I shall look at the mercurial pages - and I hope have it working.
> ----------
> nosy: +martin.panter
> title: ctypes and AIX - also for 2.7.X (and later) -> ctypes library loading and AIX - also for 2.7.X (and later)
> _______________________________________
> Python tracker <>
> <>
> _______________________________________
Date User Action Args
2016-08-11 15:10:21aixtools@gmail.comsetrecipients: +, martin.panter, Michael.Felt
2016-08-11 15:10:21aixtools@gmail.comlinkissue27435 messages
2016-08-11 15:10:20aixtools@gmail.comcreate