Re: Fedora 32 System-Wide Change proposal: Build Python 3 to statically link with libpython3.8.a for better performance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On ke, 06 marras 2019, Miro Hrončok wrote:
On 06. 11. 19 11:41, Alexander Bokovoy wrote:
Python extension modules embedding Python and linking to libpython

- needs to be evaluated case by case
- changes to cmake/autotools are needed
- changes in code might be necessary as well
- if not changed, might misbehave
- Python Maint will provide help if asked for

Do you have a list of affected packages?

We anticipate that the number of affected packages that actually need to link to libpython from extension modules is (very close to) 0.

But no, we don't have a list yet. We intent to go package by package (see the list in the proposal) and examine the reason the file is linked to libpython.

We are aware about samba linking to libpython and we anticipate changes will be needed. This was already semi-discussed when samba libs didn't build with Python 3.8.

If you'd be able to help us removing this linking dependency, that would
be great.


Samba (and thus SSSD and FreeIPA) is affected. It is pretty fundamental
that Samba modules link to libpython and I think it was designed so by
you guys (Python team at Red Hat) when we ported Samba bindings to Python3.

Why is it fundamental to link extension modules to libpython?
I wasn't directly involved with porting Samba, looping Lumír in.
However note that when samba was ported, it was common to ink Python extension to libpython by default.

We had to support two different Python builds in parallel and had to do
a lot to link them properly to both runtimes in a correct way.


# find /usr/lib64/python3.7/site-packages/samba -name '*.so' | xargs -n1 -I '{}' sh -c "ldd {} | egrep -q libpython && echo 'LINKED: {}' "
LINKED: /usr/lib64/python3.7/site-packages/samba/_glue.cpython-37m-x86_64-linux-gnu.so
...

On Python 3.7, extension modules are linked to libpython by default.
On Python 3.8, extension modules are only linked to libpython if explicitly told so by the build system, such as sambas's waf.

Extension modules built with distutils/setuptools are not linked to libpython.

Important pointer:

https://bugzilla.redhat.com/show_bug.cgi?id=1711638#c8 ... #c34

Thanks for the link, will read later.

--
/ Alexander Bokovoy
Sr. Principal Software Engineer
Security / Identity Management Engineering
Red Hat Limited, Finland
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux