On Fri, 18 Mar 2005, Stas Bekman wrote:
> Nick *** wrote:
>
> > >Nick? Can you please remind us what do you use MP_STATIC_EXTS=1 for?
> >
> > This option is the only way to build MP2 under Cygwin. Cygwin doesn't
> > allow undefined symbols when linking, so it's not possible to build a
> > dynamic mod_perl.so and dynamic extensions.
>
> OK, so Randy's BUILD_APREXT should do the trick. Randy, will you have the
> tuits to have that feature used for all when MP_STATIC_EXTS=1 is used?
>
> Also the following needs be integrated:
>
> Index: lib/ModPerl/WrapXS.pm
> ===================================================================
> --- lib/ModPerl/WrapXS.pm (revision 158003)
> +++ lib/ModPerl/WrapXS.pm (working copy)
> @@ -429,9 +429,10 @@
> use ModPerl::BuildMM ();
>
> ModPerl::BuildMM::WriteMakefile(
> - 'NAME' => '$class',
> - 'VERSION' => '$version',
> - 'depend' => $deps,
> + NAME => '$class',
> + VERSION => '$version',
> + linkext => {'LINKTYPE' => ''},
> + depend => $deps,
> );
> EOF
>
> but need to do that only if MP_STATIC_EXTS=1.
>
> You can see what the problems are, by running:
>
> % perl-5.8.6-ithread Makefile.PL MP_STATIC_EXTS=1 MP_COMPAT_1X=0
> MP_USE_STATIC=1 MP_AP_CONFIGURE="--with-mpm=prefork"
> MP_AP_PREFIX=/path/to/httpd-2.0 MP_INST_APACHE2=1 && make && make test
>
> the incomplete patch above solves the build problem. And BUILD_APREXT
> should solve the t/apr-ext tests failure. Notice that you may not see
> these failures, in case you have mp2 already installed.
I've looked into this (on linux), and made some progress,
but still get some problems with tests involving APR::Pool
and APR::Bucket* in the apr-ext tests. I'll post a partial
patch which illustrates the problem, but was wondering a
couple of things:
- just to confirm, the BUILD_APREXT should be used for
whenever MP_STATIC_EXTS is true (and not just on specific
operating systems)?
- When running the tests, I get an error (for example)
t/apr-ext/uuid....APR::UUID object version 0.01 does not
match $APR::UUID::VERSION 0.009000 at
/opt/lib/perl5/5.8.6/i686-linux/DynaLoader.pm line 253.
Compilation failed in require at
/home/randy/svn/modperl-2.0/t/lib/TestAPRlib/uuid.pm line 11.
I haven't figured out where the "APR::UUID object version"
is coming from - I think "0.01" is the default used, when
none is specified ($APR::UUID::VERSION is the version
used in APR/UUID.pm, coming from the module_version sub
of ModPerl::WrapXS).
For the uuid test, changing $APR::UUID::VERSION to 0.01
allows the test to pass.
--
best regards,
randy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]