How to compile an EAPI compliant DSO module ?

[prev] [thread] [next] [Date index for 2004/12/28]

From: didier Belot
Subject: How to compile an EAPI compliant DSO module ?
Date: 17:49 on 28 Dec 2004
--------------090308010409040904020107
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello all!

Using apache 1.3.33 with mod_ssl 2.8.22, i want to compile mod_perl 1.29 
as a
loadable module.

here is the snippet related to mod_perl installation:

perl Makefile.PL USE_APXS=1 \
                WITH_APXS=/usr/local/sbin/apxs \
                ENABLE_RULE=EAPI \
                EVERYTHING=1
make
make install

this create and install a usable libperl.so module, but when starting 
apache-ssl, i've got the
following warning:

[warn] Loaded DSO /usr/local/libexec/libperl.so uses plain Apache 1.3 
API, this module might crash under EAPI! (please recompile it with -DEAPI)

but the module IS compiled with -DEAPI, as can be seen in logs:

cc -fPIC -O2 -I/usr/lib/perl/5.6.1/CORE -DDEBIAN -fno-strict-aliasing 
-I/usr/local/include  -DMOD_PERL_VERSION=\"1.29\" 
-DMOD_PERL_STRING_VERSION=\"mod_perl/1.29\" 
-I/usr/local/include/apache-ssl -DMOD_PERL -DLINUX=22 
-DTARGET=\"apache-ssl\" -DHAVE_SET_DUMPABLE -I/usr/include/db1 
-DDEV_RANDOM=/dev/random -DMOD_SSL=208122 -DUSE_HSREGEX -DEAPI -DEAPI_MM 
-fpic -DSHARED_CORE -O2 -Wall  -c mod_perl.c && mv mod_perl.o mod_perl.lo

Does the link phase have this define too ? that's not the case:

rm -f libperl.so
cc -shared -L/usr/local/lib -o libperl.so mod_perl.lo perlxsi.lo 
perl_config.lo
perl_util.lo perlio.lo mod_perl_opmask.lo Apache.lo Constants.lo 
ModuleConfig.lo Log.lo URI.lo Util.lo Connection.lo Server.lo File.lo 
Table.lo -rdynamic  -L/usr/local/lib 
/usr/lib/perl/5.6.1/auto/DynaLoader/DynaLoader.a 
-L/usr/lib/perl/5.6.1/CORE -lperl -ldl -lm -lc -lcrypt

Any help appreciated ;-)
        -- 
        Didier Belot

<http://www.spreadfirefox.com/?q=affiliates&id=5591&t=82>;

--------------090308010409040904020107
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#336666">
Hello all!<br>
<br>
Using apache 1.3.33 with mod_ssl 2.8.22, i want to compile mod_perl
1.29 as a <br>
loadable module.<br>
<br>
here is the snippet related to mod_perl installation:<br>
<br>
perl Makefile.PL USE_APXS=1 \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WITH_APXS=/usr/local/sbin/apxs \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENABLE_RULE=EAPI \<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EVERYTHING=1 <br>
make<br>
make install<br>
<br>
this create and install a usable libperl.so module, but when starting
apache-ssl, i've got the<br>
following warning:<br>
<br>
[warn] Loaded DSO /usr/local/libexec/libperl.so uses plain Apache 1.3
API, this module might crash under EAPI! (please recompile it with
-DEAPI)<br>
<br>
but the module IS compiled with -DEAPI, as can be seen in logs:<br>
<br>
cc -fPIC -O2 -I/usr/lib/perl/5.6.1/CORE -DDEBIAN -fno-strict-aliasing
-I/usr/local/include&nbsp; -DMOD_PERL_VERSION=\"1.29\"
-DMOD_PERL_STRING_VERSION=\"mod_perl/1.29\"
-I/usr/local/include/apache-ssl -DMOD_PERL -DLINUX=22
-DTARGET=\"apache-ssl\" -DHAVE_SET_DUMPABLE -I/usr/include/db1
-DDEV_RANDOM=/dev/random -DMOD_SSL=208122 -DUSE_HSREGEX -DEAPI
-DEAPI_MM -fpic -DSHARED_CORE -O2 -Wall&nbsp; -c mod_perl.c &amp;&amp; mv
mod_perl.o mod_perl.lo<br>
<br>
Does the link phase have this define too ? that's not the case:<br>
<br>
rm -f libperl.so<br>
cc -shared -L/usr/local/lib -o libperl.so mod_perl.lo perlxsi.lo
perl_config.lo<br>
perl_util.lo perlio.lo mod_perl_opmask.lo Apache.lo Constants.lo
ModuleConfig.lo Log.lo URI.lo Util.lo Connection.lo Server.lo File.lo
Table.lo -rdynamic&nbsp; -L/usr/local/lib
/usr/lib/perl/5.6.1/auto/DynaLoader/DynaLoader.a
-L/usr/lib/perl/5.6.1/CORE -lperl -ldl -lm -lc -lcrypt<br>
<br>
Any help appreciated ;-)<br>
<div class="moz-signature">-- <br>
Didier Belot<br>
<a href="http://www.spreadfirefox.com/?q=affiliates&amp;id=5591&amp;t=82"><br>;
</a></div>
</body>
</html>

--------------090308010409040904020107--

How to compile an EAPI compliant DSO module ?
didier Belot 17:49 on 28 Dec 2004

Re: How to compile an EAPI compliant DSO module ?
John D Groenveld 20:30 on 29 Dec 2004

Generated at 12:15 on 16 Jan 2005 by mariachi v0.52