1834296 Members
2520 Online
110066 Solutions
New Discussion

DynaLoader Problem

 
SOLVED
Go to solution
calvin trowell
New Member

DynaLoader Problem

How do I resolve this Perl
DynaLoader problem:

Can't load '/ntcad/etc/perl5.00503/site_perl/auto/Tk/Tk.sl' for module Tk: No such file or directory at /ntcad/etc/perl5.00503/PA-RISC2.0/DynaLoader.pm line 169.

1 REPLY 1
Christopher Caldwell
Honored Contributor
Solution

Re: DynaLoader Problem

If you recently patched HP, watch out for PHCO_22923 (11.00) and PHCO_23772 (11.11) libc cumulative patches. These patches stubbed out pthread hooks in libc.

Here's the disposition from the ITRC:

-remove -lc from the build command of all shared libraries
-remove -lc from the build command of all executables
-use the LD_PRELOAD environment variable set to the full pathname for
libpthread or libcma, which will cause the library to be
loaded at program startup before other dependent libraries. LD_PRELOAD
functionality is available in linker patch PHSS_22478 and
later. See the dld.sl(5) man page.
-if you link directly with ld(1) instead of with a compiler driver, add -lc
as the last component on the link line.

Workaround 1: rebuild executable with proper link list as above.
Workaround 2: chatr +s enable /pathtoperl/bin/perl
put a older version of libc.2 in a directory
/pathtoperl/lib

export SHLIB_PATH=/pathtoperl/perl5.005_03/lib
perl test.pl

I found that none of my extra modules that reference shared libraries would work.
I rebuilt the base perl executable linking against the new libc.