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 22:38:00 UTC

Amended:

This is a repost. Sorry for not including everything. I believe this post is complete.

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

"t/REPORT" says
  #!/usr/local/bin/perl
  # WARNING: this file is generated, do not edit
  # 01: Apache-Test/lib/Apache/TestConfig.pm:875
  # 02: Apache-Test/lib/Apache/TestConfig.pm:965
  # 03: Apache-Test/lib/Apache/TestReport.pm:44
  # 04: Makefile.PL:274
  # 05: Makefile.PL:51

  BEGIN { eval { require blib; } }


  use strict;
  use warnings FATAL => 'all';

  use lib qw(
      /usr/src/mod_perl-1.99_16/lib
      /usr/src/mod_perl-1.99_16/Apache-Test/lib
      /usr/src/mod_perl-1.99_16/t/lib
  );
"which perl" says
  /usr/local/bin/perl
which is the version I built today
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: Amended:

Posted by Ed Brown <eb...@arcompanies.net>.
I got this. (Thanks for the hint Stas Beckman)

I deleted the perl executable directory tree, did a make clean, rebuilt passing "=fPIC" as a compiler flag.

Then configured and built mod_perl.  No problems this time.




Ed 
  ----- Original Message ----- 
  From: Ed Brown 
  To: modperl@perl.apache.org 
  Sent: Saturday, September 25, 2004 1:38 PM
  Subject: Amended:


  This is a repost. Sorry for not including everything. I believe this post is complete.

  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

  "t/REPORT" says
    #!/usr/local/bin/perl
    # WARNING: this file is generated, do not edit
    # 01: Apache-Test/lib/Apache/TestConfig.pm:875
    # 02: Apache-Test/lib/Apache/TestConfig.pm:965
    # 03: Apache-Test/lib/Apache/TestReport.pm:44
    # 04: Makefile.PL:274
    # 05: Makefile.PL:51

    BEGIN { eval { require blib; } }


    use strict;
    use warnings FATAL => 'all';

    use lib qw(
        /usr/src/mod_perl-1.99_16/lib
        /usr/src/mod_perl-1.99_16/Apache-Test/lib
        /usr/src/mod_perl-1.99_16/t/lib
    );
  "which perl" says
    /usr/local/bin/perl
  which is the version I built today
  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