You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Gerald Richter <ri...@ecos.de> on 2004/04/23 09:34:48 UTC

Re: Undefined synbol embperl_module with Debian packages (was: Configuration Setup)

Mmh, this very hard to say what is wrong here, maybe Angus (who maintains
the Debian packages) has an idea what might be wrong?

I guess it's really a mismatch of source version and/or compiler settings.

Gerald

Marco Scoffier wrote:
> On Thu, Apr 22, 2004 at 06:46:35AM +0200, Gerald Richter wrote:
>> Does make test work if you use the same Apache and same mod_perl and
>> Perl?
> Sorry if I seem dense.  If I build everything myself using the default
> commands everything works.  But I feel there is something I am not
> understanding with the module loading and my whole setup seems very
> fragile, because I don't quite understand.
>>
>> If you do a
>>
>> nm /usr/lib/perl5/auto/Embperl/Embperl.so
>>
>> does it list the symbol embperl_module?
>>
> When trying to use the debian packages, on two seperate debian
> installations (one x86 and one ppc) nm returns :
>
>   nm: /usr/lib/perl5/auto/Embperl/Embperl.so: no symbols
>
> The libembperl-perl package for debian is broken?
>
> On the x86 computer I managed to compile Embperl, that version clearly
> shows an embperl_module :
>
>   [...]
>   0002445c T embperl_Init
>   000284a0 T embperl_InitRequest
>   00028888 T embperl_InitRequestComponent
>   000427a8 T embperl_LibXSLT_Init
>   00042460 T embperl_LibXSLT_Text2Text
>   0002947c t embperl_LogStartReq
>   0003cbe8 t embperl_merge_dir_config
>   0007a800 d embperl_module
>   0001f754 T embperl_OptionListSearch
>   0002f954 T embperl_Parse
>   0003009c t embperl_ParseSource
>   0001ed9c T embperl_PathSearch
>   0001f1dc T embperl_PathStr
>   0003c8bc t embperl_PreExecute
>   [...]
>
> but I get the same error when I try to load a version of embperl I
> compiled myself into the debian packaged apache-perl :
>
>   Syntax error on line 27 of /etc/apache-perl/modules.conf: Can't
>   locate API module structure `embperl_module' in file
>   /usr/local/lib/perl/5.8.3/auto/Embperl/Embperl.so:
>   /usr/sbin/apache-perl: undefined symbol: embperl_module
>
> I guess it was comiled against the wrong source?  Like kernel modules?

---------------------------------------------------------------------------
Gerald Richter            ecos electronic communication services gmbh
IT-Securitylösungen * Webapplikationen mit Apache/Perl/mod_perl/Embperl

Post:       Tulpenstrasse 5          D-55276 Dienheim b. Mainz
E-Mail:     richter@ecos.de          Voice:   +49 6133 939-122
WWW:        http://www.ecos.de/      Fax:     +49 6133 939-333
---------------------------------------------------------------------------
Besuchen Sie uns auf der KOMCOM 2004 in Mannheim
25. bis 27. Mai 2004  Stand K11a   www.komcom.de

ECOS BB-5000 Firewall- und IT-Security Appliance: www.bb-5000.info
---------------------------------------------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Re: Undefined synbol embperl_module with Debian packages

Posted by Marco Scoffier <ma...@metm.org>.
On Sun, Apr 25, 2004 at 01:57:00PM +1000, Angus Lees wrote:
> > Marco Scoffier wrote:
> > >   Syntax error on line 27 of /etc/apache-perl/modules.conf: Can't
> > >   locate API module structure `embperl_module' in file
> > >   /usr/local/lib/perl/5.8.3/auto/Embperl/Embperl.so:
> > >   /usr/sbin/apache-perl: undefined symbol: embperl_module
> > >
> > > I guess it was comiled against the wrong source?  Like kernel modules?
> 
> The debian libembperl-perl package is not compiled with support for
> apache2.  In apache1.3 you don't need the LoadModule line.
> 
Hi Angus thanks for the responce,

The errors referrered to in my message where using the debian
'apache-perl' package which is apache 1.3.29 with mod_perl built in. 
Perhaps you could add a short line or two to the README.debian which
explains that you should use apache + libapache-mod-perl not apache-perl
Or change the dependencies for libembperl-perl.

I have tried the plain 'apache' package + libapache-mod-perl as you
suggested and I am still get weird errors, but I have gotten further.  I
don't know exactly where to send these errors so I'm sending them here.

All the following errors in this email come from these packages:
apache             1.3.29.0.2-5   Versatile, high-performance HTTP
apache-common      1.3.29.0.2-5   Support files for all Apache
apache-utils       1.3.29.0.2-5   Utility programs for webservers
libapache-mod-perl 1.29.0.2-5     Integration of perl with the Apache
libembperl-perl    2.0b10-1       A system for building dynamic websites 
> 
>  LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so
Adding this line to httpd.conf or modules.conf works, and I can run some
simple mod_perl tests I wrote.
>  PerlModule Embperl
This line is the problem.  I add it -> seg-fault both with apachectl
configtest and /etc/init.d/apache start:

 $ apachectl configtest
 Syntax OK
 /usr/sbin/apachectl: line 171: 25891 Segmentation fault      $HTTPD -t

There is nothing interesting in /var/log/apache/error.log 

 [Mon Apr 26 15:58:33 2004] [notice] caught SIGTERM, shutting down

It seems there is something weird with apachectl.  If I start the server
directly, /usr/sbin/apache embperl works! however if I try the
/usr/sbin/apache -t test with the PerlModule Embperl line in httpd.conf
I get a segfault.  As the /usr/sbin/apache -t test is run by apachectl
and /etc/init.d/apache on every server restart, the sysv scripts are
effectively broken.

I double checked my @INC to make sure that I am not pulling in the wrong
Embperl modules:

  for path in  `perl -le 'print  join "\n" , @INC'`; 
  do  find $path -name 'Emb*'; 
  done;

I don't have a startup.pl script to change around the @INC, or any other
directives in httpd.conf which would change it.

Thanks for your help,

-- 
Marco

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Re: Undefined synbol embperl_module with Debian packages (was: Configuration Setup)

Posted by Angus Lees <gu...@inodes.org>.
> Marco Scoffier wrote:
> > The libembperl-perl package for debian is broken?

[...]

> > but I get the same error when I try to load a version of embperl I
> > compiled myself into the debian packaged apache-perl :
> >
> >   Syntax error on line 27 of /etc/apache-perl/modules.conf: Can't
> >   locate API module structure `embperl_module' in file
> >   /usr/local/lib/perl/5.8.3/auto/Embperl/Embperl.so:
> >   /usr/sbin/apache-perl: undefined symbol: embperl_module
> >
> > I guess it was comiled against the wrong source?  Like kernel modules?

The debian libembperl-perl package is not compiled with support for
apache2.  In apache1.3 you don't need the LoadModule line.

This works fine for me (libembperl-perl 2.0b10-1, apache 1.3.29.0.2-4,
libapache-mod-perl 1.29.0.2-4):

 LoadModule perl_module /usr/lib/apache/1.3/mod_perl.so
  ...
 PerlModule Embperl
 Alias /embperl/ /home/gus/somepath/embperl/
 AddType text/html .epl
 <Location /embperl>
   SetHandler    perl-script
   PerlHandler   Embperl::Object
   Options       ExecCGI
   Embperl_Appname       embperl_example
   Embperl_Debug         16517
   Embperl_Object_Base   base.epl
   Embperl_UriMatch      "\.(html|epl)$"
 </Location>

-- 
 - Gus


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org