* Marcel Plch:

> On Mon, 2019-02-11 at 18:47 +0100, Florian Weimer wrote
>> If you take the address of a local variable and pass the resulting
>> pointer to another function, the compiler will generate a call to
>> __stack_chk_fail, which lives in glibc.  At build time, linking
>> against
>> glibc is required so that this symbol receives its proper version,
>> otherwise the resulting binary is invalid and may not be compatible
>> with
>> future glibc versions.
>> 
>> Thanks,
>> Florian
>
> Since the extensions get the symbols from the Python interpreter on
> dynamic load, I can see the risk here in case of third-party software,
> where the interpreter gets recompiled against a new glibc version and
> the extension is left alone. However, the extensions are recompiled
> whenever the interpreter is and so will always be compatible with the
> 'current' glibc version. There is no need to keep an eye out for future
> versions. Or is there?

It's certainly possible to run an old Python binary with a newer glibc.

How do you even get an extension that is not linked against glibc when
it uses symbols from glibc?  Do you build extensions with -nostdlib?  Or
invoke ld directly, instead of gcc/g++?

Thanks,
Florian
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
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