You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Rude Yak <ru...@yahoo.com> on 2004/07/01 20:34:34 UTC

[mp2] mod_perl 1.99-14, apache 2.0.(49|50), solaris 8, gcc 3.2.3 referenced symbol not found

-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:

I'm trying to get mod_perl and Apache 2.0.49 (I guess now 50 in the last 24
hours :-) built on my Solaris 8 machine but I'm running into various problems
and I'm hoping someone on the list can point me in the right direction.  I'm
using gcc 3.3.2 and I've successfully built both perl 5.8.0, mod_perl 1.99_14,
and Apache 2.0.50 independent of each other.  I built mod_perl 1.99_14 using
the following setting:

 perl Makefile.PL MP_APXS=/apps/apache/2.0.50/bin/apxs MP_INST_APACHE2=1; make;
make install

However, when I try to run Apache, I get this error:

# bin/httpd -C "LoadModule perl_module modules/mod_perl.so" -t
Syntax error in -C/-c directive:\nCannot load
/apps/apache/2.0.50/modules/mod_perl.so into server: ld.so.1: bin/httpd: fatal:
relocation error: file /apps/apache/2.0.50/modules/mod_perl.so: symbol PL_op:
referenced symbol not found

Running Apache without mod_perl or with other add-on modules seems to work OK. 
I've gotten the specific error above with both apache 2.0.49 and 2.0.50.  When
I try "ldd -r modules/mod_perl.so", I get the following:

		 libperl.so =>		  /apps/perl/5.8.0/lib/5.8.0/sun4-solaris/CORE/libperl.so
		 libsocket.so.1 =>		  /usr/lib/libsocket.so.1
		 libnsl.so.1 =>		  /usr/lib/libnsl.so.1
		 libdl.so.1 =>		  /usr/lib/libdl.so.1
		 libm.so.1 =>		  /usr/lib/libm.so.1
		 libc.so.1 =>		  /usr/lib/libc.so.1
		 libmp.so.2 =>		  /usr/lib/libmp.so.2
		 symbol not found: PL_op         (modules/mod_perl.so)
		 symbol not found: PL_op         (modules/mod_perl.so)
		 symbol not found: PL_op         (modules/mod_perl.so)
		 symbol not found: PL_op         (modules/mod_perl.so)
		 symbol not found: PL_curpad         (modules/mod_perl.so)
		 symbol not found: PL_curpad         (modules/mod_perl.so)
		 symbol not found: PL_curpad         (modules/mod_perl.so)
		 symbol not found: PL_curpad         (modules/mod_perl.so)
		 symbol not found: PL_sv_yes         (modules/mod_perl.so)
		 symbol not found: PL_sv_yes         (modules/mod_perl.so)
		 symbol not found: main         (modules/mod_perl.so)
                 [... and so on ...]

PL_op, PL_curpad, etc., seem to be in libperl.a (but not libperl.so).  

  I've tried linking mod_perl statically per the instructions at
http://perl.apache.org/docs/2.0/user/install/install.html#MP_USE_STATIC but
that doesn't actually add mod_perl.a to any of the makefiles as far as I can
tell.  I would have expected something to reference mod_perl in
build/config_vars.mk but it's not there; manually adding
modules/perl/mod_perl.a doesn't seem to do quite what I expect.

2. Used Components and their Configuration:

*** mod_perl version 1.9914

*** using lib/Apache/BuildConfig.pm
*** Makefile.PL options:
  MP_APXS         => /apps/apache/2.0.50/bin/apxs
  MP_COMPAT_1X    => 1
  MP_GENERATE_XS  => 1
  MP_INST_APACHE2 => 1
  MP_LIBNAME      => mod_perl
  MP_USE_DSO      => 1
  MP_USE_STATIC   => 1


*** /apps/apache/2.0.50/bin/httpd -V
Server version: Apache/2.0.50
Server built:   Jul  1 2004 09:48:47
Server's Module Magic Number: 20020903:8
Architecture:   32-bit
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_PROC_PTHREAD_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D HTTPD_ROOT="/apps/apache/2.0.50"
 -D SUEXEC_BIN="/apps/apache/2.0.50/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"


*** /apps/perl/5.8.0/bin/perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos l98udfw8 5.8 generic_108528-14 sun4u sparc sunw,ultraax-i2 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef
usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-fno-strict-aliasing -m32 -mcpu=ultrasparc
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-fno-strict-aliasing -m32 -mcpu=ultrasparc'
    ccversion='', gccversion='3.1', gccosandvers='solaris2.8'
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc -m32 -mcpu=ultrasparc', ldflags =' -L/usr/local/lib '
    libpth=/usr/lib /usr/ccs/lib /usr/local/lib
    libs=-lsocket -lnsl -ldb -ldl -lm -lc
    perllibs=-lsocket -lnsl -ldl -lm -lc
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-m32
-mcpu=ultrasparc'
    cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Jul 21 2003 09:26:39
  %ENV:
    PERL_LWP_USE_HTTP_10="1"
  @INC:
    /apps/perl/5.8.0/lib/5.8.0/sun4-solaris
    /apps/perl/5.8.0/lib/5.8.0
    /apps/perl/5.8.0/lib/site_perl/5.8.0/sun4-solaris
    /apps/perl/5.8.0/lib/site_perl/5.8.0
    /apps/perl/5.8.0/lib/site_perl
    .

*** Packages of interest status:

Apache::Request: -
CGI            : 3.00
LWP            : 5.65
mod_perl       : 1.29, 1.9914


3. This is the core dump trace: (if you get a core dump):

  [CORE TRACE COMES HERE]

This report was generated by t/REPORT on Thu Jul  1 18:31:50 2004 GMT.

-------------8<---------- End Bug Report --------------8<----------


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


Re: [mp2] mod_perl 1.99-14, apache 2.0.(49|50), solaris 8, gcc 3.2.3 referenced symbol not found

Posted by Stas Bekman <st...@stason.org>.
Rude Yak wrote:
> -------------8<---------- Start Bug Report ------------8<----------
> 1. Problem Description:
> 
> I'm trying to get mod_perl and Apache 2.0.49 (I guess now 50 in the last 24
> hours :-) built on my Solaris 8 machine but I'm running into various problems
> and I'm hoping someone on the list can point me in the right direction.  I'm
> using gcc 3.3.2 and I've successfully built both perl 5.8.0, mod_perl 1.99_14,
> and Apache 2.0.50 independent of each other.  I built mod_perl 1.99_14 using
> the following setting:
> 
>  perl Makefile.PL MP_APXS=/apps/apache/2.0.50/bin/apxs MP_INST_APACHE2=1; make;
> make install
> 
> However, when I try to run Apache, I get this error:
> 
> # bin/httpd -C "LoadModule perl_module modules/mod_perl.so" -t
> Syntax error in -C/-c directive:\nCannot load
> /apps/apache/2.0.50/modules/mod_perl.so into server: ld.so.1: bin/httpd: fatal:
> relocation error: file /apps/apache/2.0.50/modules/mod_perl.so: symbol PL_op:
> referenced symbol not found
> 
> Running Apache without mod_perl or with other add-on modules seems to work OK. 
> I've gotten the specific error above with both apache 2.0.49 and 2.0.50.  When
> I try "ldd -r modules/mod_perl.so", I get the following:
> 
> 		 libperl.so =>		  /apps/perl/5.8.0/lib/5.8.0/sun4-solaris/CORE/libperl.so
> 		 libsocket.so.1 =>		  /usr/lib/libsocket.so.1
> 		 libnsl.so.1 =>		  /usr/lib/libnsl.so.1
> 		 libdl.so.1 =>		  /usr/lib/libdl.so.1
> 		 libm.so.1 =>		  /usr/lib/libm.so.1
> 		 libc.so.1 =>		  /usr/lib/libc.so.1
> 		 libmp.so.2 =>		  /usr/lib/libmp.so.2
> 		 symbol not found: PL_op         (modules/mod_perl.so)
> 		 symbol not found: PL_op         (modules/mod_perl.so)
> 		 symbol not found: PL_op         (modules/mod_perl.so)
> 		 symbol not found: PL_op         (modules/mod_perl.so)
> 		 symbol not found: PL_curpad         (modules/mod_perl.so)
> 		 symbol not found: PL_curpad         (modules/mod_perl.so)
> 		 symbol not found: PL_curpad         (modules/mod_perl.so)
> 		 symbol not found: PL_curpad         (modules/mod_perl.so)
> 		 symbol not found: PL_sv_yes         (modules/mod_perl.so)
> 		 symbol not found: PL_sv_yes         (modules/mod_perl.so)
> 		 symbol not found: main         (modules/mod_perl.so)
>                  [... and so on ...]
> 
> PL_op, PL_curpad, etc., seem to be in libperl.a (but not libperl.so).  

Something is wrong about your perl. Or do you have more than one perl 
installed on your system. This:

> *** /apps/perl/5.8.0/bin/perl -V
> Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
>     libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a

tells that your perl has no shared library libperl.so, though your ldd shows 
that you have: /apps/perl/5.8.0/lib/5.8.0/sun4-solaris/CORE/libperl.so
I'd suggestion to scrap /apps/perl/5.8.0/ completely, reinstall perl and try 
again.

Most likely you've built perl twice, first dynamically, then statically and 
have a mixed up installation in the same location, confusing the loader.

-- 
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com

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