You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Randy Kobes <ra...@theoryx5.uwinnipeg.ca> on 2003/07/02 16:04:41 UTC

Re: [mp1] 1.28 release candidate #2

On Wed, 2 Jul 2003, Issac Goldstand wrote:

> *Almost* works on Win32 (XP-SP1) against ActivePerl 5.8.0 build
> 806...
> Compiling...
> Apache.c
> Apache.xs(1966) : error C2115: '=' : incompatible types

This problem comes from

> Characteristics of this binary (from libperl):
>   Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
> PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS

ActiveState enabling LARGE_FILES support in the 8xx series - the
incompatible types refer to differences between what Perl and
Apache see on either side of the assignment. Short of recompiling
Perl without LARGE_FILES support, or recompiling Apache with it,
I'm not sure what can easily be done - perhaps someone with
experience with this issue on Unix might have an idea?

-- 
best regards,
randy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [mp1] 1.28 release candidate #2

Posted by Randy Kobes <ra...@theoryx5.uwinnipeg.ca>.
On Wed, 2 Jul 2003, Randy Kobes wrote:

> On Wed, 2 Jul 2003, Issac Goldstand wrote:
>
> > *Almost* works on Win32 (XP-SP1) against ActivePerl 5.8.0 build
> > 806...
> > Compiling...
> > Apache.c
> > Apache.xs(1966) : error C2115: '=' : incompatible types
>
> This problem comes from
>
> > Characteristics of this binary (from libperl):
> >   Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
> > PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
>
> ActiveState enabling LARGE_FILES support in the 8xx series
[ ... ]

Could you try this patch in the mod_perl sources:
===================================================================
Index: src/modules/perl/Apache.xs
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/Apache.xs,v
retrieving revision 1.127
diff -u -r1.127 Apache.xs
--- src/modules/perl/Apache.xs	14 Mar 2003 06:05:06 -0000	1.127
+++ src/modules/perl/Apache.xs	3 Jul 2003 02:14:13 -0000
@@ -1962,8 +1962,22 @@
             croak("statbuf is not an object");
         }
     }
-
+/* workaround for USE_LARGE_FILES on WIN32 ActivePerl 8xx */
+#if defined(WIN32) && defined(USE_LARGE_FILES)
+    statcache.st_dev = r->finfo.st_dev;
+    statcache.st_ino = r->finfo.st_ino;
+    statcache.st_mode = r->finfo.st_mode;
+    statcache.st_nlink = r->finfo.st_nlink;
+    statcache.st_uid = r->finfo.st_uid;
+    statcache.st_gid = r->finfo.st_gid;
+    statcache.st_rdev = r->finfo.st_rdev;
+    statcache.st_size = (__int64) r->finfo.st_size;
+    statcache.st_atime = r->finfo.st_atime;
+    statcache.st_mtime = r->finfo.st_mtime;
+    statcache.st_ctime = r->finfo.st_ctime;
+#else
     statcache = r->finfo;
+#endif
     if (r->finfo.st_mode) {
 	laststatval = 0;
         sv_setpv(statname, r->filename);
==============================================================

It's sorta ugly, and there's probably a better way (or perhaps
even a more correct way :), but it seems to work with ActivePerl
8xx (with USE_LARGE_FILES), and all the supplied tests pass.

-- 
best regards,
randy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org