On Thu, 30 Mar 2000, Steve Hay wrote:

> Since I had no reply to my previous problem (re-directing STDOUT in
> system() calls), I thought I would try using Perl 5.6.0 instead of
> 5.005_03 (probably a good idea anyway) to see if that helped.
> 
> Unfortunately, now I can't get (the Apache side of) mod_perl to compile.
> 
> I'm using MSVC++ 6.0 on Windows NT 4.  Perl 5.6.0 and Apache 1.3.12
> compiled fine, as does the Perl side of mod_perl 1.22, but when I go
> into Dev Studio to compile the Apache side I get the following output
> for each file:
> 
> D:\Temp\apache_1.3.12\src\include\../os/win32/os.h(87) : warning C4005:
> 'crypt' : macro redefinition
>         D:\perl5\lib\CORE\win32iop.h(301) : see previous definition of
> 'crypt'
> D:\Temp\apache_1.3.12\src\include\../os/win32/os.h(109) : warning C4142:
> benign redefinition of type
> D:\Temp\apache_1.3.12\src\include\../os/win32/os.h(110) : warning C4142:
> benign redefinition of type
> D:\Temp\apache_1.3.12\src\include\../os/win32/os.h(112) : error C2371:
> 'mode_t' : redefinition; different basic types
>         D:\perl5\lib\CORE\win32.h(197) : see declaration of 'mode_t'
> D:\Temp\apache_1.3.12\src\include\../os/win32/os.h(146) : warning C4005:
> 'sleep' : macro redefinition
>         D:\perl5\lib\CORE\win32iop.h(279) : see previous definition of
> 'sleep'
> D:\Program Files\Microsoft Visual Studio\VC98\Include\stddef.h(78) :
> warning C4005: 'errno' : macro redefinition
>         D:\perl5\lib\CORE\win32iop.h(188) : see previous definition of
> 'errno'
> D:\Temp\apache_1.3.12\src\include\../os/win32/os.h(165) : warning C4005:
> 'stat' : macro redefinition
>         D:\perl5\lib\CORE\win32iop.h(223) : see previous definition of
> 'stat'
> D:\Temp\apache_1.3.12\src\include\../os/win32/readdir.h(34) : error
> C2373: 'win32_opendir' : redefinition; different type modifiers
>         D:\perl5\lib\CORE\win32iop.h(116) : see declaration of
> 'win32_opendir'
> D:\Temp\apache_1.3.12\src\include\../os/win32/readdir.h(35) : error
> C2373: 'win32_readdir' : redefinition; different type modifiers
>         D:\perl5\lib\CORE\win32iop.h(117) : see declaration of
> 'win32_readdir'
> D:\Temp\apache_1.3.12\src\include\../os/win32/readdir.h(36) : error
> C2373: 'win32_closedir' : redefinition; different type modifiers
>         D:\perl5\lib\CORE\win32iop.h(121) : see declaration of
> 'win32_closedir'
> 
> Any ideas, anyone?
> 
> Has anyone else got 5.6.0 / 1.3.12 / 1.22 going on NT 4?

Hi,
     There's a couple things you can do -

- add the flag /D "WIN32IOP_H" - this handles the win32_opendir
and similar errors.
- for the mode_t error, in apache/src/os/win32/os.h, change
the typedef of mode_t from 'int' to 'unsigned short', so as
to agree with the mode_t typedef of perl in perl/lib/core/win32.h.
In the same apache os.h file, if you change the typedef of
uid_t and gid_t from 'int' to 'long', again so as to agree
with Perl's typedefs, then the compilation, at least for me,
proceeeds without warnings.

Unfortunately, there's some problems in the linking phase - some
symbols that were present in perl.lib of 5.005_03 have been
removed from perl56.lib of 5.6.0. Doug has worked on this - you
may want to get the latest mod_perl cvs snapshot from
http://perl.apache.org/ and try that.

best regards,
randy kobes


Reply via email to