You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Ed Brown <eb...@arcompanies.net> on 2004/09/25 21:47:11 UTC

Dynaloader.a error making mod_perl-1.99_16 with Apache httpd-2.0.51 on Suse 9.0

I started with a standard Suse 9.0 on AMD Athlon. I built the current versions of Apache and PHP from source, then perl. I'm getting an error at dynaloader. I'm moderately knowledgeable in linux, but I don't know how to resolve this. Can anyone give me a suggestion?


Thanks



Ed Brown


I built Perl perl-5.8.5. perl -V says
  Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
    Platform:
      osname=linux, osvers=2.4.21-102-default, archname=x86_64-linux
      uname='linux http01 2.4.21-102-default #1 wed sep 24 13:57:05 utc 2003 x86_64 x86_64 x86_64 gnulinux '
      config_args='-ds -e -Duse64bitint -Dusethreads -Duseshrplib'
      hint=previous, useposix=true, d_sigaction=define
      usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
      useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
      use64bitint=define use64bitall=define uselongdouble=undef
      usemymalloc=n, bincompat5005=undef
    Compiler:
      cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
      optimize='-O2',
      cppflags='-fno-strict-aliasing -pipe -I/usr/local/include -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
      ccversion='', gccversion='3.3.1 (SuSE Linux)', gccosandvers=''
      intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
      d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
      ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
      alignbytes=8, prototype=define
    Linker and Libraries:
      ld='cc', ldflags =' -L/usr/local/lib'
      libpth=/usr/local/lib /lib /usr/lib
      libs=-lnsl -lgdbm -ldl -lm -lcrypt -lutil -lc
      perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
      libc=, so=so, useshrplib=false, libperl=libperl.a
      gnulibc_version='2.3.2'
    Dynamic Linking:
      dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
      cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


  Characteristics of this binary (from libperl):
    Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
    Built under linux
    Compiled at Sep 25 2004 11:45:02
    @INC:
      /usr/local/lib/perl5/5.8.5/x86_64-linux
      /usr/local/lib/perl5/5.8.5
      /usr/local/lib/perl5/site_perl/5.8.5/x86_64-linux
      /usr/local/lib/perl5/site_perl/5.8.5
      /usr/local/lib/perl5/site_perl
make test says
  <snip>
  All tests successful.
  u=1.65  s=0.32  cu=133.99  cs=10.52  scripts=821  tests=84931
  make[2]: Leaving directory `/usr/src/perl-5.8.5'
  make[1]: Leaving directory `/usr/src/perl-5.8.5'
I configure mod_perl with
  perl Makefile.PL  -Duse64bitint -Dusethreads -Duseshrplib MP_APXS=/usr/local/apache2/bin/apxs -MP_INST_APACHE2=1  
and when I do make 
I get
  <snip>
  DynaLoader.a -L/usr/local/lib/perl5/5.8.5/x86_64-linux/CORE -lperl -lnsl -ldl -lm -lcrypt -lutil -lc \
  -o mod_perl.so
  /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.1/../../../../x86_64-suse-linux/bin/ld: /usr/local/lib/perl5/5.8.5/x86_64-linux/auto/DynaLoader/DynaLoader.a(DynaLoader.o): relocation R_X86_64_32 can not be used when making a shared object; recompile with -fPIC
  /usr/local/lib/perl5/5.8.5/x86_64-linux/auto/DynaLoader/DynaLoader.a: could not read symbols: Bad value
  collect2: ld returned 1 exit status
  make[1]: *** [mod_perl.so] Error 1
  make[1]: Leaving directory `/usr/src/mod_perl-1.99_16/src/modules/perl'
  make: *** [modperl_lib] Error 2




Re: Dynaloader.a error making mod_perl-1.99_16 with Apache httpd-2.0.51 on Suse 9.0

Posted by Stas Bekman <st...@stason.org>.
Ed Brown wrote:
> I started with a standard Suse 9.0 on AMD Athlon. I built the current
> versions of Apache and PHP from source, then perl. I'm getting an error
> at dynaloader. I'm moderately knowledgeable in linux, but I don't know
> how to resolve this. Can anyone give me a suggestion?

Ed, please submit a proper bug report, as explained here: 
http://perl.apache.org/bugs/

> I configure mod_perl with perl Makefile.PL  -Duse64bitint -Dusethreads
> -Duseshrplib MP_APXS=/usr/local/apache2/bin/apxs -MP_INST_APACHE2=1 and
> when I do make I get <snip> DynaLoader.a
> -L/usr/local/lib/perl5/5.8.5/x86_64-linux/CORE -lperl -lnsl -ldl -lm
> -lcrypt -lutil -lc \ -o mod_perl.so 
> /usr/lib64/gcc-lib/x86_64-suse-linux/3.3.1/../../../../x86_64-suse-linux/bin/ld:
> /usr/local/lib/perl5/5.8.5/x86_64-linux/auto/DynaLoader/DynaLoader.a(DynaLoader.o):
> relocation R_X86_64_32 can not be used when making a shared object;
> recompile with -fPIC 
> /usr/local/lib/perl5/5.8.5/x86_64-linux/auto/DynaLoader/DynaLoader.a:
> could not read symbols: Bad value collect2: ld returned 1 exit status 
> make[1]: *** [mod_perl.so] Error 1 make[1]: Leaving directory
> `/usr/src/mod_perl-1.99_16/src/modules/perl' make: *** [modperl_lib]
> Error 2

In addition, please post the output of

% which perl

and whether you have more than one perl installed on your system (which is
most likely the cause of your problem).

But even before you do that I'd try to download any CPAN module which has 
an XS extension, and try to build it first. For example:
http://search.cpan.org/~roode/Time-Format_XS-0.13/

-- 
__________________________________________________________________
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

-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html