in reply to Re^8: Not able to load module though @INC contains it
in thread Not able to load module though @INC contains it

Do I need to install 32 bit STAF?

That's probably the easiest option, unless it creates incompatibilities with other software components... (I would just try).  The other option would be to build/install a 64-bit perl.

  • Comment on Re^9: Not able to load module though @INC contains it

Replies are listed 'Best First'.
Re^10: Not able to load module though @INC contains it
by chilukuri_perl (Novice) on Nov 30, 2009 at 16:29 UTC
    32 bit version is installed. Now getting the following error.
    /export/home/STAF/lib> ls *.so* PYSTAF.so libSTAFDSLS.so libSTAFPool.so libssl. +so.0.9.8 libJSTAF.so libSTAFEXECPROXY.so libSTAFTCP.so libstdc +++.so.2.10.0 libJSTAFSH.so libSTAFLIPC.so libSTAFZip.so libPLSTAF.so libSTAFLog.so libSTAFZlib.so libSTAF.so libSTAFMon.so libcrypto.so.0.9.8 /export/home/STAF/lib> file libPLSTAF.so libPLSTAF.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamicall +y linked, stripped /export/home/STAF/lib> perl -e "use PLSTAF;" Can't load '/export/home/STAF/lib/libPLSTAF.so' for module PLSTAF: ld. +so.1: perl: fatal: libperl.so: open failed: No such file or directory + at /usr/perl5/5.8.4/lib/sun4-solaris-64int/DynaLoader.pm line 230. at -e line 1 Compilation failed in require at -e line 1. BEGIN failed--compilation aborted at -e line 1. (romulus:ER:EMTE1) /export/home/STAF/lib>

      I can confirm the problem.

      Actually, I've installed the module and played around with it a bit, but unfortunately, I have no good news... i.e. although you can fix the immediate issue with libperl.so not being found by adding /usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE to LD_LIBRARY_PATH, it doesn't really help, because then you'll (most likely) run into the next problem with a bunch of symbols not being found:

      $ echo $LD_LIBRARY_PATH /home/almut/tmp/STAF/lib/:/usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE $ /usr/bin/perl -MPLSTAF -e1 ld.so.1: perl: fatal: relocation error: file /home/almut/tmp/STAF/lib/ +/libPLSTAF.so: symbol Perl_Tstack_sp_ptr: referenced symbol not found /home/almut/tmp/STAF/lib $ ldd -r libPLSTAF.so libpthread.so.1 => /lib/libpthread.so.1 libsocket.so.1 => /lib/libsocket.so.1 libresolv.so.2 => /lib/libresolv.so.2 libSTAF.so => /home/almut/tmp/STAF/lib//libSTAF.so libperl.so => /usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE/ +libperl.so libstdc++.so.2.10.0 => /home/almut/tmp/STAF/lib//libstdc++.s +o.2.10.0 libm.so.1 => /lib/libm.so.1 libnsl.so.1 => /lib/libnsl.so.1 libc.so.1 => /lib/libc.so.1 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libmp.so.2 => /lib/libmp.so.2 libmd5.so.1 => /lib/libmd5.so.1 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 symbol not found: boot_DynaLoader (./libPLSTAF.s +o) symbol not found: Perl_sys_init3 (./libPLSTAF.s +o) symbol not found: Perl_Tstack_sp_ptr (./libPLSTAF.s +o) symbol not found: Perl_Tmarkstack_ptr_ptr (./lib +PLSTAF.so) symbol not found: Perl_Tstack_base_ptr (./libPLSTAF.s +o) symbol not found: Perl_croak_nocontext (./libPLSTAF.s +o) symbol not found: Perl_Imodglobal_ptr (./libPLSTAF.s +o) symbol not found: Perl_hv_common_key_len (./lib +PLSTAF.so) symbol not found: Perl_sv_2uv_flags (./libPLSTAF.s +o) symbol not found: Perl_Isv_yes_ptr (./libPLSTAF.s +o) symbol not found: Perl_Ttmps_floor_ptr (./libPLSTAF.s +o) symbol not found: Perl_Ttmps_ix_ptr (./libPLSTAF.s +o) symbol not found: Perl_Tmarkstack_max_ptr (./lib +PLSTAF.so) symbol not found: Perl_Ierrgv_ptr (./libPLSTAF.s +o) symbol not found: Perl_TXpv_ptr (./libPLSTAF.so) symbol not found: Perl_newSVpvf_nocontext (./lib +PLSTAF.so) symbol not found: Perl_load_module_nocontext (./lib +PLSTAF.so) symbol not found: Perl_Gthr_key_ptr (./libPLSTAF.s +o) symbol not found: Perl_Iperl_destruct_level_ptr (./lib +PLSTAF.so) symbol not found: Perl_Iexit_flags_ptr (./libPLSTAF.s +o) symbol not found: Perl_Tstack_max_ptr (./libPLSTAF.s +o) symbol not found: Perl_sv_2iv_flags (./libPLSTAF.s +o) symbol not found: Perl_Top_ptr (./libPLSTAF.so) symbol not found: Perl_Tcurpad_ptr (./libPLSTAF.s +o) symbol not found: Perl_Isv_undef_ptr (./libPLSTAF.s +o) /platform/SUNW,Sun-Blade-2500/lib/libc_psr.so.1 /platform/SUNW,Sun-Blade-2500/lib/libmd5_psr.so.1 # confirmed by checking with nm, e.g. $ nm -D ./libPLSTAF.so | grep Perl_Tstack_sp_ptr [41] | 0| 0|FUNC |GLOB |0 |UNDEF |Perl_Tstack_sp_ +ptr $ nm -D /usr/perl5/5.8.4/lib/sun4-solaris-64int/CORE/libperl.so | grep + Perl_T

      AFAICT, most of these symbol errors (if not all - I'm not entirely sure) are related to the Solaris' system perl not being built with threading support, while the perl that the module had been built against was...

      So, your options now seem to be:

      • build an appropriate perl with threading support
      • download the STAF sources and try to build the module yourself (in the hopes that threading support isn't really required...)
        Thank you very much for your help.