Randy Kobes <[EMAIL PROTECTED]> writes:

> As a first step, I looked through the APR::* modules, and
> came up with the following (entry-level) dependencies on
> mod_perl.so:
> 
> Pool: modperl_interp_unselect (modperl_interp.c)

This one looks to be a PITA because of the (eventual)
request_rec dependence.

> Bucket: modperl_bucket_sv_create (modperl_bucket.c)

Simple fix- add 

  #include "modperl_bucket.c" 

to APR__Bucket.h.

[...]

> Table: modperl_hash_tie, modperl_hash_tied_object
>   (modperl_util.c)

Simple fix: copy those two functions from modperl_util.c
right into APR__Table.h.

The above fixes produce the following from `make`:

  % for i in Bucket Brigade Pool Table; do echo "APR/$i/$i.so:";
  > nm --dynamic blib/arch/Apache2/auto/APR/$i/$i.so | grep modperl;
  > done
  APR/Bucket/Bucket.so:
  0000000000001b90 T modperl_bucket_sv_create
  APR/Brigade/Brigade.so:
  APR/Pool/Pool.so:
                   U modperl_interp_unselect
  APR/Table/Table.so:
  0000000000004cd0 T modperl_hash_tie
  0000000000002590 T modperl_hash_tied_object

so IMO if we can figure out what to do about APR::Pool, the
other changes needed (for apreq2's Apache::Request) will be 
straightforward.

> It also occurred to me though in trying to trace all the
> needed functions down - would it be easier to just treat
> mod_perl.so, when using the APR::* modules, as a needed .so
> that has to be loaded, like an Apache libapr*.so or like
> libapreq2.so? 

That doesn't really help because of mod_perl.so's ap_* 
dependence. There's no libhttpd on *nix that will resolve 
the missing ap_* symbols from mod_perl.so.

-- 
Joe Schaefer


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to