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.

Author aixtools@gmail.com
Recipients David.Edelsohn, Michael.Felt, aixtools@gmail.com, martin.panter, python-dev
Date 2016-10-04.17:23:15
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1d4d7f58-5ec0-3230-1549-0a3093951d49@gmail.com>
In-reply-to <1475304242.97.0.22792218719.issue26439@psf.upfronthosting.co.za>
Content
On 01-Oct-16 08:44, Martin Panter wrote:
> Martin Panter added the comment:
>
> Hi Michael, I have done some cleanup and modifications to your patch. The result is in aix-library.161001.patch, which has all the changes, i.e. it is not based on another patch.
Thanks.
>   More significant changes I made:
>
> * Change getExecLibPath_aix() and find_parts() to return a list object, rather than building a colon-separated string only to be pulled apart again
> * Escape dots in get_legacy() regular expressions, so that they no longer match [shr_64xo], [shrxo], etc.
> * Make get_dumpH() return the a list of (object, objectinfo) tuples, where objectinfo is a list of lines; avoids building multiline strings and then splitting them apart again
> * Rewrite get_exactMatch() and get_version() without nested inline “for” loops; use RE capture group
> * Reuse util._last_version() instead of copying the _num_version() function
> * Use lower case B for liB in get_member(). This means e.g. libcrypto.so is now preferred over libcrypto.so.1.0.0.
That was a typo - to be sure I was still finding the versioned ones (the 
previous ones had had a bug that they no longer found the "standard" 
one. I forgot to remove (rather save file before the diff command) - you 
see everything!
>
> I did test it a bit on Linux with faked dump -H output, but I may have made mistakes that I did not pick up.
Will apply the patch, build in 32 and 64 bit modes, and respond.
>
> Also, this still needs documentation, and I think some more tests for the test suite exercising various aspects of find_library() would be nice if possible.
Working on that - have been posting some questions on python-list as I 
want to build an interface with an AIX performance library (libperfstat).
Without this library one must run a command and then do some string 
manipulation, and sometimes call a second command once that has been 
found (e.g., uuid calls to get a MAC address, cloud-init to get 
boottime) - things that - with a library do not need a subprocess at all.

But I shall also write up the AIX dlopen() process to explain how both 
.so and .a(member.so) works (as the argument to CDLL).
>
> Another thing: in the last few patches, you dropped the definition of RTLD_MEMBER from Modules/_ctypes/_ctypes.c. Is that intended, or just a temporary thing?
Temporary thing - as I keep hoping for inclusion in Python2 and I recall 
you not wanting to add that into _ctypes on Python2.
>
> ----------
> versions:  -Python 3.6
> Added file: http://bugs.python.org/file44902/aix-library.161001.patch
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue26439>
> _______________________________________
History
Date User Action Args
2016-10-04 17:23:16aixtools@gmail.comsetrecipients: + aixtools@gmail.com, python-dev, martin.panter, David.Edelsohn, Michael.Felt
2016-10-04 17:23:16aixtools@gmail.comlinkissue26439 messages
2016-10-04 17:23:15aixtools@gmail.comcreate