-=| 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`

Attachment: signature.asc
Description: Digital signature

Reply via email to