-=| Niko Tyni, 22.06.2014 23:50:56 +0300 |=- > Package: perl > Version: 5.20.0-1 > Severity: important > User: debian-p...@lists.debian.org > Usertags: perl-5.20-transition > > This is a regression from 5.18 and makes xchat-gnome drop > its libperl linkage because its autoconf probe fails. > > % cat perltest.c > #include <XSUB.h> > #include <EXTERN.h> > #include <perl.h> > int main() { return 0; } > % gcc $(perl -MExtUtils::Embed -e ccopts) perltest.c > /tmp/ccN3C0Sz.o: In function `S_croak_memory_wrap': > perltest.c:(.text+0x5): undefined reference to `PL_memory_wrap' > perltest.c:(.text+0x14): undefined reference to `Perl_croak_nocontext' > collect2: error: ld returned 1 exit status
I see this too. The compilation succeeds with 5.18. > The severity should arguably be 'serious'. Perhaps. But I think the fix is not in perl but in xchat-gnome. It seems PL_memory_wrap and Perl_croak_nocontext were moved to libperl in 5.20, so the test library needs to link with that. Adding $(perl -MExtUtils::Embed -e ldopts) to the compiler flags makes it pass. And xchat-gnome configuration looks like this: checking for perl... /usr/bin/perl checking for Perl header files... found checking for Perl library... found … checking for perl... /usr/bin/perl checking for perl >= 5.8.1... 5.20.0 checking for XML::Parser... ok … checking which plugins to build... autoaway notification url_scraper sound-notification net-monitor notify-osd perl python tcl … config.status: creating plugins/perl/Makefile Attached is the patch to xchat-gnome. Not yet reassigning to allow a sanity check on my conclusions :) Cheers, dam
Description: configure.ac: fix perl header test for perl 5.20 The PL_memory_wrap and Perl_croak_nocontext symbols are now in libperl so a test program needs to link with it. Adding $($PERL -MExtUtils::Embed -e ldopts) to the compiler command line does just that. Author: Damyan Ivanov <d...@debian.org> Bug-Debian: http://bugs.debian.org/752354 --- a/configure.ac +++ b/configure.ac @@ -164,7 +164,7 @@ fi if test "x$have_perl" != "xno"; then AC_MSG_CHECKING(for Perl header files) - PERL_HEADER_TEST=`PT=perltest.c ; echo "#include <EXTERN.h>" > $PT; echo "#include <perl.h>" >> $PT; echo "#include <XSUB.h>" >> $PT ; echo "int main() { return 0; }" >> $PT ; $CC -Wall $PT -o $PT.out $($PERL -MExtUtils::Embed -e ccopts) 1>/dev/null 2>&1; echo $?; rm -f $PT $PT.out 1>/dev/null 2>&1` + PERL_HEADER_TEST=`PT=perltest.c ; echo "#include <EXTERN.h>" > $PT; echo "#include <perl.h>" >> $PT; echo "#include <XSUB.h>" >> $PT ; echo "int main() { return 0; }" >> $PT ; $CC -Wall $PT -o $PT.out $($PERL -MExtUtils::Embed -e ccopts) $($PERL -MExtUtils::Embed -e ldopts) 1>/dev/null 2>&1; echo $?; rm -f $PT $PT.out 1>/dev/null 2>&1` if test "x$PERL_HEADER_TEST" = "x0" ; then PERL_CFLAGS=`$PERL -MExtUtils::Embed -e ccopts`
signature.asc
Description: Digital signature