blob: 38600cc7cd977c56e5150b82d0771094b005fa34 [file] [log] [blame]
########################################
# external (non-mod_perl) APR:: issues #
########################################
* As mike chamberlain told me over irc, apr-ext/perlio was faling for
him because of the modperl_perl_gensym not being resolved in
APR/PerlIO.so. I didn't see that error since on linux by default
symbols resolution is lazy and since that part of the api wasn't
tested I did see the problem. On MacOSX the loading is RTLD_NOW
(non-lazy) so it detects any missing symbols problems immediately.
Luckily DynaLoader allows us to force the non-lazy mode by setting
an env var: PERL_DL_NONLAZY=1. We need to force this env variable on
when building with MP_MAINTAINER=1. I suppose that it should be
added to the autogenerated t/TEST and t/SMOKE. and to
t/conf/modperl_extra.pl ($ENV{PERL_DL_NONLAZY}=1) so it affects the
server-side as well as the client-side (normally env var aren't
propogated to the server).
* APR::Pool relies on interpreter management function:
modperl_interp_unselect. At the moment I've worked around it by
defining an empty function in APR.xs. But a cleaner solution is
desirable.
* modules that we need to add tests for in apr-ext:
APR::Date
APR::Const
APR::URI
APR::Base64
APR::String
APR::Error
APR::XSLoader
APR::PerlIO
APR::OS
APR::Socket
APR::Brigade
APR::Finfo
APR::Util
APR::Bucket
APR::NetLib
APR::ThreadMutex
APR::SockAddr
I think that it's enough to just load them, since most of them are
already thoroughly tested under mod_perl. Then if we find some
running-outside-mod_perl specific bugs we can write specific tests
for those.