[Zope-Perl] PATCH - FreeBSD, Perl 5.8.6

Jeff Bachtel jeff at cepheid.org
Wed Apr 20 19:43:32 EDT 2005


The attached patch allows pyperl to build and test on FreeBSD. At
least, it did in its initial state (I haven't tested the generation
from try_perlapi.pl, rather I had been modifying the generated .c
file).

Basically, the short names used by pyperl for internal Perl functions
had been phased out, and it was less effort to patch the few calls
than to reexpose everything.

I also define PERL_EXT  at one point to avoid a cxio error.

jeff

-- 
Jeff Bachtel  (root at VPR,TAMU)    http://www.cepheid.org/~jeff
"For centuries, man had	watched	 [finger jeff at cepheid.org for PGP key]
the clouds; now, they were watching him." -  S. Sachs
-------------- next part --------------
diff -ru pyperl-1.0.1-orig/dlhack.c pyperl-1.0.1-mod2/dlhack.c
--- pyperl-1.0.1-orig/dlhack.c	Tue Mar  6 13:36:16 2001
+++ pyperl-1.0.1-mod2/dlhack.c	Wed Apr 20 18:30:18 2005
@@ -46,5 +46,5 @@
 	    return;
 	}
     }
-    PyErr_SetString(PyExc_ImportError, "perl2.so not found");
+    PyErr_SetString(PyExc_ImportError, dlerror());
 }
Only in pyperl-1.0.1-mod2/: dlhack.c.orig
diff -ru pyperl-1.0.1-orig/setup.py pyperl-1.0.1-mod2/setup.py
--- pyperl-1.0.1-orig/setup.py	Tue Mar  6 13:36:16 2001
+++ pyperl-1.0.1-mod2/setup.py	Wed Apr 20 18:30:58 2005
@@ -94,7 +94,6 @@
         cc_extra.append("-DDL_HACK")
         extra_ext.append(Extension(name = "perl",
                                    sources = ["dlhack.c"],
-                                   libraries = ["dl"],
                                    ))
         
 
Only in pyperl-1.0.1-mod2/: setup.py.orig
diff -ru pyperl-1.0.1-orig/svrv_object.c pyperl-1.0.1-mod2/svrv_object.c
--- pyperl-1.0.1-orig/svrv_object.c	Tue Mar  6 13:36:16 2001
+++ pyperl-1.0.1-mod2/svrv_object.c	Wed Apr 20 18:32:04 2005
@@ -492,7 +492,7 @@
     
     diff = newlen - len;
     if (newlen && !AvREAL(av) && AvREIFY(av))
-	av_reify(av);
+	Perl_av_reify(aTHX_ av);
 
 #ifdef SPLICE_DEBUG
     printf("splice(offset=%d, len=%d, diff=%d, after=%d, fill=%d, max=%d, pre=%d)\n",
Only in pyperl-1.0.1-mod2/: svrv_object.c.orig
diff -ru pyperl-1.0.1-orig/try_perlapi.pl pyperl-1.0.1-mod2/try_perlapi.pl
--- pyperl-1.0.1-orig/try_perlapi.pl	Tue Mar  6 13:36:16 2001
+++ pyperl-1.0.1-mod2/try_perlapi.pl	Wed Apr 20 18:35:29 2005
@@ -17,6 +17,7 @@
 print C <<EOT;
 
 #include <EXTERN.h>
+#define PERL_EXT 1
 #include <perl.h>
 #include <Python.h>
 
@@ -50,7 +51,7 @@
     ENTER;
     SAVETMPS;
 
-    push_return(Nullop);
+    Perl_push_return(aTHX_ Nullop);
     PUSHBLOCK(cx, (CXt_EVAL|CXp_TRYBLOCK), PL_stack_sp);
     PUSHEVAL(cx, 0, 0);
     PL_eval_root = PL_op;
@@ -71,7 +72,7 @@
 
         POPBLOCK(cx,newpm);
         POPEVAL(cx);
-        pop_return();
+        Perl_pop_return(aTHX);
         PL_curpm = newpm;
     }
 
Only in pyperl-1.0.1-mod2/: try_perlapi.pl.orig


More information about the Zope-perl mailing list