Subject: | build under perl 5.14 [patch] |
I use an automated process to install hundreds of module tarballs and it's
necessary for each tarball to PASS its tests.
perl 5.14 no longer supports "#define PERL_POLLUTE"
but offers the alternative
perl Makefile.PL POLLUTE=1
Instead the patch restores the needed symbols.
Looks like there's an effort to remove PERL_POLLUTE from DBI
http://www.gossamer-threads.com/lists/perl/porters/254012
Another approach might have been
http://search.cpan.org/~mhx/Devel-PPPort-3.20/PPPort_pm.PL
FYI The PL_ "namespace" for C symbols was introduced in perl 5.005
http://search.cpan.org/~flora/perl-5.14.2/pod/perl5005delta.pod#C_Source_Compatibility
"All Perl global variables that are visible for use by extensions now
have a PL_ prefix. New extensions should not refer to perl globals by
their unqualified names."
NB perl_destruct_level was needed for DBD::Ingres but not perldap-1.41
diff -u DBD-Ingres-0.53.orig/Ingres.sh DBD-Ingres-0.53/Ingres.sh
--- DBD-Ingres-0.53.orig/Ingres.sh 2004-01-12 19:59:08.000000000 +1000
+++ DBD-Ingres-0.53/Ingres.sh 2011-11-29 07:25:49.000000000 +1000
@@ -16,6 +16,17 @@
#include <DBIXS.h> /* installed by the DBI module */
#include <dbd_xsh.h> /* ditto */
+/* [DMT 29-Nov-2011] needed for perl 5.14 */
+#ifndef sv_yes
+#define sv_yes PL_sv_yes
+#define sv_no PL_sv_yes
+#define sv_undef PL_sv_undef
+#define dirty PL_dirty
+#define stack_base PL_stack_base
+#define na PL_na
+#define perl_destruct_level PL_perl_destruct_level
+#endif
+
EXEC SQL INCLUDE SQLDA;
EXEC SQL INCLUDE SQLCA;