Message278066
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>
> _______________________________________ |
|
Date |
User |
Action |
Args |
2016-10-04 17:23:16 | aixtools@gmail.com | set | recipients:
+ aixtools@gmail.com, python-dev, martin.panter, David.Edelsohn, Michael.Felt |
2016-10-04 17:23:16 | aixtools@gmail.com | link | issue26439 messages |
2016-10-04 17:23:15 | aixtools@gmail.com | create | |
|