3.2 Building mod_perl (make)
After completing
the configuration, it's time to build the server by
simply calling:
panic% make
The make program first compiles the source files
and creates a mod_perl library file. Then, depending on your
configuration, this library is either linked with
httpd (statically) or not linked at all,
allowing you to dynamically load it at runtime.
You should avoid putting the mod_perl source directory inside the
Apache source directory, as this confuses the build process. The best
choice is to put both source directories under the same parent
directory.
3.2.1 What Compiler Should Be Used to Build mod_perl?
All Perl
modules that use C extensions must be compiled
using the compiler with which your copy of Perl was built.
When you run perl Makefile.PL, a
Makefile is created. This
Makefile includes the same compilation options
that were used to build Perl itself. They are stored in the
Config.pm module and can be displayed with the
Perl -V command. All these options are reapplied
when compiling Perl modules.
If you use a different compiler to build Perl extensions, chances are
that the options this compiler uses won't be the
same, or they might be interpreted in a completely different way. So
the code may not compile, may dump core, or may behave in unexpected
ways.
Since Perl, Apache, and third-party modules all work together under
mod_perl, it's essential to use the same compiler
while building each of the components.
If you compile a non-Perl component separately, you should make sure
to use both the same compiler and the same options used to build
Perl. You can find much of this information by running perl
-V.
3.2.2 make Troubleshooting
The following errors are the ones that frequently
occur during the make process when building
mod_perl.
3.2.2.1 Undefined reference to `Perl_newAV'
This and similar error messages may show up during the
make process. Generally it happens when you have
a broken Perl installation. If it's installed from a
broken rpm or another precompiled binary
package, build Perl from source or use another properly built binary
package. Run perl -V to learn what version of
Perl you are using and other important details.
3.2.2.2 Unrecognized format specifier for...
This error is usually reported due to the problems with
some versions of the SFIO library. Try to use the
latest version to get around this problem or, if you
don't really need SFIO, rebuild
Perl without this library.
|