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]

Reply via email to