If you want to build mod_perl as a DSO, you must make sure that Perl was built with the system's native malloc( ). If Perl was built with its own malloc( ) and -Dbincompat5005, it pollutes the main httpd program with free and malloc symbols. When httpd starts or restarts, any references in the main program to free and malloc become invalid, causing memory leaks and segfaults.
Notice that mod_perl's build system warns about this problem.
With Perl 5.6.0+ this pollution can be prevented by using -Ubincompat5005 or -Uusemymalloc for any version of Perl. However, there's a chance that -Uusemymalloc might hurt performance on your platform, so -Ubincompat5005 is likely a better choice.
If you get the following reports with Perl version 5.6.0+:
% perl -V:usemymalloc usemymalloc='y'; % perl -V:bincompat5005 bincompat5005='define';
rebuild Perl with -Ubincompat5005.
For pre-5.6.x Perl versions, if you get:
% perl -V:usemymalloc usemymalloc='y';
rebuild Perl with -Uusemymalloc.
Now rebuild mod_perl.