Hi

On Fri, Nov 15, 2019 at 10:22 AM Victor Stinner <vstin...@redhat.com> wrote:
>
> Hi Jan,
>
> With the helper of Florian Weimer and Charalampos Stratakis, we also agreed 
> to test this flag in priority. I understood that it disables the LD_PRELOAD 
> feature: it's no longer possible to override symbols in libpython with 
> LD_PRELOAD. Thanks to that, the compiler can avoid PLT indirection for 
> function calls and can inline more function functions in libpython. I'm 
> talking about a function call from libpython to libpython: something which is 
> very common in python. Basically, almost all function calls are calls from 
> libpython to libpython.
>
> I'm impressed. Thanks to -fno-semantic-interposition, I get the same speedup 
> on a dynamically linked Python (libpython) compared to statically linked 
> Python!
>
> Yesterday, I tried on a vanilla Python compiled manually:
>
> ./configure --enable-optimizations --with-lto --enable-shared
> CFLAGS="-fno-semantic-interposition" LDFLAGS="-fno-semantic-interposition"
>
> I saw the same speed up than avoiding --enable-shared. Today I validated this 
> result using the RPM generated by Charalampos's PR:
> https://src.fedoraproject.org/rpms/python38/pull-request/53
>
> In short, https://fedoraproject.org/wiki/Changes/PythonStaticSpeedup is 
> useless: there is no need to modify Python to statically link it to 
> libpython. We can keep the dynamically library libpython and keep Python 
> dynamically linked to it. We only need to pass -fno-semantic-interposition to 
> compiler and linker flags when building Python!
>
> I'm not sure if we need a Fedora change just for a compiler flag. Again, the 
> only drawback is that we will no longer be able to override a symbol using 
> LD_PRELOAD. Honestly, I never did that. I don't see any use case for that. 
> But I used LD_PRELOAD on the libc multiple times to mock the system clock for 
> example.

Please do file a Change. It works not only as a coordination tracker,
but also as a tool to inform everyone about changes happening in
Fedora.

The discussion on the topic has been very interesting, as well as the
outcome. I think it would be nice to see the summary with the
estimated impact and highlight it via Release Notes.

> If someone really needs LD_PRELOAD, it's quite easy to build a custom Python 
> without -fno-semantic-interposition.
>
> Victor
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> 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@lists.fedoraproject.org

-- 
Aleksandra Fedorova
bookwar
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
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@lists.fedoraproject.org

Reply via email to