On 2018-01-25, Daniel P Berrangé <berrange(a)redhat.com> wrote:
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
Perl fails too
<
https://kojipkgs.fedoraproject.org/work/tasks/5805/24425805/build.log>.
While extensions link to libperl.so that itself links to libpthread.so
that defines pthread_getspecific symbol, the extensions linking fails
because they use dTHX macro, provided by included thread.h via perl.h,
that expands to pthread_getspecific.
In other words it looks like -z defs requires that all used symbols
are provided by directly linked libraries. I.e. we will have to patch
Perl so that extensions add -lptrhread to the linker flags.
I don't say this not a bug in Perl, but just that Perl is affected.
-- Petr