Michael Felt added the comment: 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 <rep...@bugs.python.org> > <http://bugs.python.org/issue26439> > _______________________________________ ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26439> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com