httpd-apreq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: [mp2 patch] getting APR to work w/o modperl
Date Fri, 07 May 2004 06:07:20 GMT
Randy Kobes wrote:
> On Wed, 5 May 2004, Stas Bekman wrote:
> 
> 
>>I did some more tweaks and this time generated the source
>>scan. Here is the updated version:
>>http://apache.org/~stas/apr-ext.patch
> 
> 
> Thanks for that, Stas! There's a couple of things on
> Win32 (I'm not sure how specific they are to Win32):
> 
> - the WriteMakefile sub of ModPerl::BuildMM includes
> by default linking against $build->modperl_libs.
> This results in a dependency on mod_perl.so for,
> eg, APR::Pool. Something like this:
> ====================================================
> Index: BuildMM.pm
> ===================================================================
> RCS file: /home/cvs/modperl-2.0/lib/ModPerl/BuildMM.pm,v
> retrieving revision 1.15
> diff -u -r1.15 BuildMM.pm
> --- BuildMM.pm	4 Mar 2004 06:01:06 -0000	1.15
> +++ BuildMM.pm	7 May 2004 05:31:41 -0000
> @@ -77,7 +77,9 @@
>          }
>      }
> 
> -    my $libs = join ' ', $build->apache_libs, $build->modperl_libs;
> +    my $outside = join '|', qw(APR::Table APR::UUID APR::Pool APR::PerlIO);
> +    my $libs = join ' ', $build->apache_libs,
> +        ($args{NAME} =~ /^$outside$/ ? '' : $build->modperl_libs);
>      my $ccflags = $build->perl_ccopts . $build->ap_ccopts;
> 
>      my @opts = (
> ====================================================================
> would avoid this, but ...

Hmm, what kind of dependcy is that? How can I reproduce it?

On linux it doesn't depend on mod_perl.so at the moment:

% ldd blib/arch/Apache2/auto/APR/Pool/Pool.so
         linux-gate.so.1 =>  (0xffffe000)
         libc.so.6 => /lib/tls/libc.so.6 (0x4001d000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

> - Even with the above, I get some fatal errors with
> unresolved symbols; for example, modperl_hash_tie, when
> building APR::Table. If I understand things correctly, this
> would get resolved at run time by loading APR, but I'm not

Correct. APR.so has these symbols.

> sure how to tell APR::* at build time that this will be
> resolved later. One possibility is to do like is done for
> APR - copy all the necessary src/modules/perl/*.[ch] files
> to the build directory of the relevant APR::* modules, but
> this seems like unnecessary duplication. Another possibility
> is to perhaps just link the APR::* modules against the
> relevant src/modules/perl/*.o object files that already have
> been built at this point?

That will explode probably explode everything. If not it'll be horribly 
inefficient, since they aren't shared objects.

Did I mentioned already that windows ... :)

So, please explain to me and show what does windows do when building Pool.o 
and linking Pool.so. Thanks!

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

Mime
View raw message