Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I am porting STAF based perl services to new perl version. When trying to load threads in thread modules, getting error

threads.so: undefined symbol: PL_thr_key at /opt/ActivePerl-5.26/lib/XSLoader.pm

I saw some post which says this occurs if perl is not threaded. However, I have installed threaded perl downloaded from Active State. version is perl 5.26.1

Any clue to solve this?
  • Comment on With perl5.26 getting threads.so: undefined symbol: PL_thr_key

Replies are listed 'Best First'.
Re: With perl5.26 getting threads.so: undefined symbol: PL_thr_key
by BrowserUk (Patriarch) on Nov 17, 2018 at 09:13 UTC

    Type perl -V on your command line, then copy&paste the output here.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". The enemy of (IT) success is complexity.
    In the absence of evidence, opinion is indistinguishable from prejudice. Suck that fhit
Re: With perl5.26 getting threads.so: undefined symbol: PL_thr_key
by Laurent_R (Canon) on Nov 17, 2018 at 09:15 UTC
    Just to be sure, can you please show the output of the perl -v command?


      Summary of my perl5 (revision 5 version 26 subversion 1) configuration:

      Platform:
      osname=linux
      osvers=3.2.0-24-virtual
      archname=x86_64-linux-thread-multi
      uname='linux perl-stackato64-precise 3.2.0-24-virtual #39-ubuntu smp mon may 21 18:44:18 utc 2012 x86_64 x86_64 x86_64 gnulinux '
      config_args='-ders -Dcc=gcc -Dusethreads -Duseithreads -Uinstallusrbinperl -Ulocincpth= -Uloclibpth= -Duse64bitall -Accflags=-DUSE_SITECUSTOMIZE -Duselargefiles -Accflags=-DPERL_RELOCATABLE_INCPUSH -Accflags=-fno-merge-constants -Dprefix=/opt/ActivePerl-5.26 -Dprivlib=/opt/ActivePerl-5.26/lib -Darchlib=/opt/ActivePerl-5.26/lib -Dsiteprefix=/opt/ActivePerl-5.26/site -Dsitelib=/opt/ActivePerl-5.26/site/lib -Dsitearch=/opt/ActivePerl-5.26/site/lib -Dsed=/bin/sed -Duseshrplib -Dcf_by=ActiveState -Dcf_email=support@ActiveState.com'
      hint=recommended
      useposix=true
      d_sigaction=define
      useithreads=define
      usemultiplicity=define
      use64bitint=define
      use64bitall=define
      uselongdouble=undef
      usemymalloc=n
      default_inc_excludes_dot=define
      bincompat5005=undef
      Compiler:
      cc='gcc'
      ccflags ='-D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
      optimize='-O2'
      cppflags='-D_REENTRANT -D_GNU_SOURCE -DUSE_SITECUSTOMIZE -DPERL_RELOCATABLE_INCPUSH -fno-merge-constants -fwrapv -fno-strict-aliasing -pipe -fstack-protector'
      ccversion=''
      gccversion='4.6.3'
      gccosandvers=''
      intsize=4
      longsize=8
      ptrsize=8
      doublesize=8
      byteorder=12345678
      doublekind=3
      d_longlong=define
      longlongsize=8
      d_longdbl=define
      longdblsize=16
      longdblkind=3
      ivtype='long'
      ivsize=8
      nvtype='double'
      nvsize=8
      Off_t='off_t'
      lseeksize=8
      alignbytes=8
      prototype=define
      Linker and Libraries:
      ld='gcc'
      ldflags =' -fstack-protector'
      libpth=/usr/local/lib /usr/lib /lib/../lib /usr/lib/../lib /lib /lib64 /usr/lib64 /usr/local/lib64
      libs=-lpthread -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
      perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
      libc=libc-2.15.so
      so=so
      useshrplib=true
      libperl=libperl.so
      gnulibc_version='2.15'
      Dynamic Linking:
      dlsrc=dl_dlopen.xs
      dlext=so
      d_dlsymun=undef
      ccdlflags='-Wl,-E -Wl,-rpath,/opt/ActivePerl-5.26/lib/CORE'
      cccdlflags='-fPIC'
      lddlflags='-shared -O2 -fstack-protector'


      Characteristics of this binary (from libperl):
      Compile-time options:
      HAS_TIMES
      MULTIPLICITY
      PERLIO_LAYERS
      PERL_COPY_ON_WRITE
      PERL_DONT_CREATE_GVSV
      PERL_IMPLICIT_CONTEXT
      PERL_MALLOC_WRAP
      PERL_OP_PARENT
      PERL_PRESERVE_IVUV
      PERL_RELOCATABLE_INCPUSH
      USE_64_BIT_ALL
      USE_64_BIT_INT
      USE_ITHREADS
      USE_LARGE_FILES
      USE_LOCALE
      USE_LOCALE_COLLATE
      USE_LOCALE_CTYPE
      USE_LOCALE_NUMERIC
      USE_LOCALE_TIME
      USE_PERLIO
      USE_PERL_ATOF
      USE_REENTRANT_API
      USE_SITECUSTOMIZE
      Locally applied patches:
      ActivePerl Build 2601 404865
      Built under linux
      Compiled at Dec 11 2017 13:17:08
      @INC:
      /opt/ActivePerl-5.26/site/lib
      /opt/ActivePerl-5.26/lib


        I don't really have an understanding of what's going wrong here, but I'm wondering if the error you see is reproduced by running:
        perl -Mthreads -le 1
        Can you confirm ?

        Cheers,
        Rob