On Thu, Jan 25, 2018 at 6:33 AM, Daniel P. Berrangé <berrange(a)redhat.com> wrote:
On Thu, Jan 25, 2018 at 08:40:29AM +0000, Tom Hughes wrote:
> On 25/01/18 07:31, Remi Collet wrote:
> > Le 22/01/2018 à 16:24, Florian Weimer a écrit :
> > > I updated redhat-rpm-config to instruct ld to reject linking shared
> > > objects with undefined symbols. Such undefined symbols break symbol
> > > versioning because the are not necessarily bound to the correct symbol
> > > version at run time. (rhbz#1535422)
> >
> > So this break all the PHP stack build...
> >
> > (all php extensions are dl open plugins, relying on symbol from the engine)
>
> Yes it broke all the nodejs binary modules as well, so I fixed them.
>
> Doubtless it will do the same for perl, ruby, python, etc.
Not neccessarily - with perl, the APIs used by extensions are actually
in libperl.so, not /usr/bin/perl, and the extensions link to libperl.so
So perl binary modules ought to still build without undefined symbols,
as IIUC they're not relying on things in /usr/bin/perl
As I understand it, it's the same way for most Python extensions, too.
Just not the ones that rely on ctypes (aka dlopen), like
python-libarchive-c, and whatnot.
--
真実はいつも一つ!/ Always, there's only one truth!