Niko Tyni wrote:
On Mon, Mar 10, 2008 at 12:06:54AM -0700, Philippe M. Chiasson wrote:

Niko Tyni wrote:
We're switching to Perl 5.10 in Debian soon, and I'm trying to update the
mod_perl2 package to keep it working. Unfortunately the ModPerl-Registry
test suite is failing on the Sparc architecture because apache2 is killed
by a bus error (SIGBUS).

Does this patch make the problem go away? (untested)

-            handler->attrs = *modperl_code_attrs(aTHX_ cv);
+ memcpy(&(handler->attrs),modperl_code_attrs(aTHX_ cv), sizeof(handler->attrs));

No, unfortunately I can't see any change at all with this patch.
The backtrace looks just the same.

How about this s/U16/U32/ diff, basically keeping the flag type at U32,
since it was not an essential part of the fix itself.

--
Philippe M. Chiasson     GPG: F9BFE0C2480E7680 1AE53631CB32A107 88C3A5A5
http://gozer.ectoplasm.org/       m/gozer\@(apache|cpan|ectoplasm)\.org/
Index: src/modules/perl/modperl_types.h
===================================================================
--- src/modules/perl/modperl_types.h    (revision 635455)
+++ src/modules/perl/modperl_types.h    (working copy)
@@ -195,7 +195,7 @@
     const char *name;
     CV *cv;
     U8 flags;
-    U16 attrs;
+    U32 attrs;
     modperl_handler_t *next;
 };
 
Index: src/modules/perl/modperl_util.c
===================================================================
--- src/modules/perl/modperl_util.c     (revision 635455)
+++ src/modules/perl/modperl_util.c     (working copy)
@@ -900,7 +900,7 @@
     return newRV_inc((SV *)*pnotes);
 }
 
-U16 *modperl_code_attrs(pTHX_ CV *cv) {
+U32 *modperl_code_attrs(pTHX_ CV *cv) {
     MAGIC *mg;    
 
     if (!SvMAGICAL(cv)) {
Index: src/modules/perl/modperl_util.h
===================================================================
--- src/modules/perl/modperl_util.h     (revision 635455)
+++ src/modules/perl/modperl_util.h     (working copy)
@@ -149,6 +149,6 @@
 SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val,
                    request_rec *r, conn_rec *c);
 
-U16 *modperl_code_attrs(pTHX_ CV *cv);
+U32 *modperl_code_attrs(pTHX_ CV *cv);
 
 #endif /* MODPERL_UTIL_H */
Index: xs/Apache2/Filter/Apache2__Filter.h
===================================================================
--- xs/Apache2/Filter/Apache2__Filter.h (revision 635455)
+++ xs/Apache2/Filter/Apache2__Filter.h (working copy)
@@ -86,7 +86,7 @@
     return len;
 }
 
-static MP_INLINE U16 *modperl_filter_attributes(pTHX_ SV *package, SV *cvrv)
+static MP_INLINE U32 *modperl_filter_attributes(pTHX_ SV *package, SV *cvrv)
 {
     return modperl_code_attrs(aTHX_ (CV*)SvRV(cvrv));
 }
@@ -118,7 +118,7 @@
 MP_STATIC XS(MPXS_modperl_filter_attributes)
 {
     dXSARGS;
-    U16 *attrs = modperl_filter_attributes(aTHX_ ST(0), ST(1));
+    U32 *attrs = modperl_filter_attributes(aTHX_ ST(0), ST(1));
     I32 i;
 #ifdef MP_TRACE
     HV *stash = gv_stashsv(ST(0), TRUE);
Index: xs/tables/current/ModPerl/FunctionTable.pm
===================================================================
--- xs/tables/current/ModPerl/FunctionTable.pm  (revision 635455)
+++ xs/tables/current/ModPerl/FunctionTable.pm  (working copy)
@@ -1239,7 +1239,7 @@
     ]
   },
   {
-    'return_type' => 'U16 *',
+    'return_type' => 'U32 *',
     'name' => 'modperl_code_attrs',
     'args' => [
      {

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to