Bug#806897: libembperl-perl: FTBFS with perl 5.22: 'PL_sv_objcount' undeclared

Axel Beckert abe at debian.org
Thu Jan 14 01:23:27 UTC 2016


Hi,

Dominic Hargreaves wrote:
> This package FTBFS with perl 5.22, in experimental:
> 
> epnames.h:329:21: error: 'PL_sv_objcount' undeclared (first use in this function)
>  #define sv_objcount PL_sv_objcount

This happens because PL_sv_objcount has been removed from Perl 5.22
(deprecated since 5.20). See e.g.
http://www.gossamer-threads.com/lists/perl/porters/311420 or
https://rt.perl.org/Public/Bug/Display.html?id=121876

Removing all occurrences of PL_sv_objcount and sv_objcount as well as
the according "-OBJs: %d" format strings from Embperl's source
suffices to make it build against 5.22. Unfortunately the test suite
fails afterwards.

Anyways, here's the patch to make the upstream code build again:

Index: libembperl-perl/epmain.c
===================================================================
--- libembperl-perl.orig/epmain.c       2014-10-13 23:44:08.653839074 +0200
+++ libembperl-perl/epmain.c    2016-01-14 02:02:20.330219409 +0100
@@ -1506,8 +1506,8 @@
 #ifdef DMALLOC
                            /* unsigned long mark, int not_freed_b, int freed_b, int details_b */
     dmalloc_log_changed (nMemCheckpoint, 1, 0, 1) ;
-    dmalloc_message ( "[%d]Request freed. Exit-SVs: %d -OBJs: %d\n", getpid(),
-           sv_count, sv_objcount) ;
+    dmalloc_message ( "[%d]Request freed. Exit-SVs: %d\n", getpid(),
+           sv_count) ;
     if (nMemCheckpoint2)
         {
         dmalloc_message ( "***TO PREVIOUS REQUEST***\n") ;
Index: libembperl-perl/epnames.h
===================================================================
--- libembperl-perl.orig/epnames.h      2014-10-13 23:44:08.653839074 +0200
+++ libembperl-perl/epnames.h   2016-01-14 02:01:27.702358491 +0100
@@ -325,9 +325,6 @@
 #ifndef sv_count
 #define sv_count PL_sv_count
 #endif
-#ifndef sv_objcount
-#define sv_objcount PL_sv_objcount
-#endif
 #ifndef op_mask
 #define op_mask PL_op_mask
 #endif
Index: libembperl-perl/Old.xs
===================================================================
--- libembperl-perl.orig/Old.xs 2014-10-13 23:44:08.641839222 +0200
+++ libembperl-perl/Old.xs      2016-01-14 02:03:06.254101118 +0100
@@ -252,7 +252,7 @@
     tReq * r
     char * sText
 CODE:
-    lprintf (r->pApp,"[%d]MEM:  %s: SVs: %d OBJs: %d\n", r->pThread->nPid, sText, sv_count, sv_objcount) ;
+    lprintf (r->pApp,"[%d]MEM:  %s: SVs: %d\n", r->pThread->nPid, sText, sv_count) ;
 
 SV *
 embperl_Escape(r, str, mode)

And here's the currently resultung test suite failure:

→ perl -Iblib/lib -Iblib/arch test.pl

loading...                    ok

Testing offline mode...

#0 ascii...                   ok
#1 pure.htm...                ok
#2 nooutput.htm...            ok
#3 nooutput.htm...            ok
#4 plain.htm...               
Error in Line 23
Is:     >HASH%a=num=<BR><
Should: >HASH%a=num=0<BR><
Input:          test/html/plain.htm
Output:         test/tmp/out.htm
Compared to:    test/cmp/plain.htm
Log:            test/tmp/test.log
Testparameter:
  repeat = 3

 ERRORS detected! NOT all tests have been passed successfully

cat: test/tmp/httpd.pid: No such file or directory

Not marking as pending or as with patch for now, as the solution is
still incomplete.

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE



More information about the pkg-perl-maintainers mailing list