Subject: | Won't build with EU::ParseXS 3.03 (incorrect XS) |
Date: | Sat, 27 Aug 2011 11:59:39 +0100 |
To: | bug-Unicode-Map8 [...] rt.cpan.org |
From: | Ben Morrow <ben [...] morrow.me.uk> |
Unicode::Map8 won't build with recent versions of ExtUtils::ParseXS, due
to a slightly incorrect use of INPUT sections in Map8.xs. The failure
looks like this
/usr/bin/perl /usr/local/lib/perl5/site_perl/5.14.1/ExtUtils/xsubpp
-typemap /usr/local/lib/perl5/5.14.1/ExtUtils/typemap -typemap
typemap Map8.xs > Map8.xsc && mv Map8.xsc Map8.c
Could not find a typemap for C type 'U16*' in Map8.xs, line 229
and the problem is that variables declared in an INPUT section with the
same names as parameters need to have types which are in the typemap.
(For some reason older versions of xsubpp didn't enforce this.) The
simplest fix is to rename the parameters in question, as in the patch
below.
Ben
--- Map8.xs.orig 2011-08-27 11:42:45.404611555 +0100
+++ Map8.xs 2011-08-27 11:43:08.343260769 +0100
@@ -218,7 +218,7 @@
U16 uc
SV*
-to8(map, str16)
+to8(map, xstr16)
Map8* map
PREINIT:
STRLEN len;
@@ -282,7 +282,7 @@
RETVAL
SV*
-to16(map, str8)
+to16(map, xstr8)
Map8* map
PREINIT:
STRLEN len;