Hello monks!
I am in a very specialized industry that depends on perl and I bought what I though was going to be a perl module but it turns out to be a .so file. I have no doubt that it probably works but this is new territory for me regarding perl. The documentation is REALLY light from the vendor (they probably hired someone to code it and that's it. Literally their documentation is "since the directory in which the perl interpreter looks for shared objects varies from installation to installation, we cannot give precise installation instructions" <sigh>
Specifically the object itself is named...
perl64_mhdrg.so
The example code given to make it work is here....
use mhdrg;
$retval = mhdrg ( ..... some stuff ..... );
Again forgive my ignorance for not knowing this but I'm very familiar with traditional modules but sharing an .so object is a complete mystery.
I tried the following...
ln -s perl64_mhdrg.so libmhdrg.so
perl -MDynaLoader -I . -e 'package mhdrg; use parent "DynaLoader";
+bootstrap mhdrg; package main; mhdrg("f22", "/usr/tmp/drgmasks","1","
+34","2","V3000"," ","5","4");'
perl: symbol lookup error: ./libmhdrg.so: undefined symbol: Perl_Ts
+tack_sp_ptr
Looks like it's trying to load the library......
I do have my perl -V output appended to this message.
I'm guessing that I'm not using the same version of Perl that the .so was built for but admittedly that's a guess.
I will be donating to the offering plate in conjunction with finding this answer. Lemons can be lemonade. :-)
UPDATE: I just donated $20.00 to the Perl Foundation. (You guys are the best and I appreciate the answer.
Anyone have an idea how I would proceed ?
JC
PS - perl -V output below ... (sorry about the lengthiness)
------------------------------------------
Summary of my perl5 (revision 5 version 10 subversion 1) configuration
+:
Platform:
osname=linux, osvers=2.6.24-29-server, archname=x86_64-linux-gnu-t
+hread-multi
uname='linux crested 2.6.24-29-server #1 smp wed mar 16 19:04:28 u
+tc 2011 x86_64 x86_64 x86_64 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dccc
+dlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/us
+r/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -D
+vendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/
+usr/local -Dsitelib=/usr/local/share/perl/5.10.1 -Dsitearch=/usr/loca
+l/lib/perl/5.10.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/
+man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/m
+an/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -
+Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-
+O2 -Dplibpth=/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu -Duseshr
+plib -Dlibperl=libperl.so.5.10.1 -Dd_dosuid -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und
+ef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict
+-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_S
+OURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing
+ -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.5.2', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1
+6
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
+ lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-
+gnu /lib /usr/lib /lib64 /usr/lib64
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=, so=so, useshrplib=true, libperl=libperl.so.5.10.1
gnulibc_version='2.13'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fs
+tack-protector'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_
+BIT_ALL
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_REENTRANT_API
Locally applied patches:
DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.o
+rg/501970 Raise the timeout of ext/threads/shared/t/stress.t to accom
+modate slower build hosts
DEBPKG:debian/cpan_config_path - Set location of CPAN::Config
+to /etc/perl as /usr may not be writable.
DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALL
+DIRS default for modules installed from CPAN.
DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remo
+ve overly restrictive DB_File version check.
DEBPKG:debian/doc_info - Replace generic man(1) instructions w
+ith Debian-specific information.
DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak
+ enc2xs to follow symlinks and ignore missing @INC directories.
DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove
+ Errno version check due to upgrade problems with long-running proces
+ses.
DEBPKG:debian/extutils_hacks - Various debian-specific ExtUtil
+s changes
DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation t
+o the binary targets.
DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .p
+acklist files for core or vendor.
DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_P
+ATH as per Debian policy.
DEBPKG:debian/libnet_config_path - Set location of libnet.cfg
+to /etc/perl/Net as /usr may not be writable.
DEBPKG:debian/m68k_thread_stress - http://bugs.debian.org/4958
+26 Disable some threads tests on m68k for now due to missing TLS.
DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
DEBPKG:debian/module_build_man_extensions - http://bugs.debian
+.org/479460 Adjust Module::Build manual page extensions for the Debia
+n Perl policy
DEBPKG:debian/perl_synopsis - http://bugs.debian.org/278323 Re
+arrange perl.pod
DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune
+ the list of libraries wanted to what we actually need.
DEBPKG:debian/use_gdbm - Explicitly link against -lgdbm_compat
+ in ODBM_File/NDBM_File.
DEBPKG:fixes/assorted_docs - http://bugs.debian.org/443733 [38
+4f06a] Math::BigInt::CalcEmu documentation grammar fix
DEBPKG:fixes/net_smtp_docs - http://bugs.debian.org/100195 [rt
+.cpan.org #36038] Document the Net::SMTP 'Port' option
DEBPKG:fixes/processPL - http://bugs.debian.org/357264 [rt.cpa
+n.org #17224] Always use PERLRUNINST when building perl modules.
DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make per
+livp skip include directories in /usr/local
DEBPKG:fixes/pod2man-index-backslash - http://bugs.debian.org/
+521256 Escape backslashes in .IX entries
DEBPKG:debian/disable-zlib-bundling - Disable zlib bundling in
+ Compress::Raw::Zlib
DEBPKG:fixes/kfreebsd_cppsymbols - http://bugs.debian.org/5330
+98 [3b910a0] Add gcc predefined macros to $Config{cppsymbols} on GNU/
+kFreeBSD.
DEBPKG:debian/cpanplus_definstalldirs - http://bugs.debian.org
+/533707 Configure CPANPLUS to use the site directories by default.
DEBPKG:debian/cpanplus_config_path - Save local versions of CP
+ANPLUS::Config::System into /etc/perl.
DEBPKG:fixes/kfreebsd-filecopy-pipes - http://bugs.debian.org/
+537555 [16f708c] Fix File::Copy::copy with pipes on GNU/kFreeBSD
DEBPKG:fixes/anon-tmpfile-dir - http://bugs.debian.org/528544
+[perl #66452] Honor TMPDIR when open()ing an anonymous temporary file
DEBPKG:fixes/abstract-sockets - http://bugs.debian.org/329291
+[89904c0] Add support for Abstract namespace sockets.
DEBPKG:fixes/hurd_cppsymbols - http://bugs.debian.org/544307 [
+eeb92b7] Add gcc predefined macros to $Config{cppsymbols} on GNU/Hurd
+.
DEBPKG:fixes/autodie-flock - http://bugs.debian.org/543731 All
+ow for flock returning EAGAIN instead of EWOULDBLOCK on linux/parisc
DEBPKG:fixes/archive-tar-instance-error - http://bugs.debian.o
+rg/539355 [rt.cpan.org #48879] Separate Archive::Tar instance error s
+trings from each other
DEBPKG:fixes/positive-gpos - http://bugs.debian.org/545234 [pe
+rl #69056] [c584a96] Fix \G crash on first match
DEBPKG:debian/devel-ppport-ia64-optim - http://bugs.debian.org
+/548943 Work around an ICE on ia64
DEBPKG:fixes/trie-logic-match - http://bugs.debian.org/552291
+[perl #69973] [0abd0d7] Fix a DoS in Unicode processing [CVE-2009-362
+6]
DEBPKG:fixes/hppa-thread-eagain - http://bugs.debian.org/55421
+8 make the threads-shared test suite more robust, fixing failures on
+hppa
DEBPKG:fixes/crash-on-undefined-destroy - http://bugs.debian.o
+rg/564074 [perl #71952] [1f15e67] Fix a NULL pointer dereference when
+ looking for a DESTROY method
DEBPKG:fixes/tainted-errno - http://bugs.debian.org/574129 [pe
+rl #61976] [be1cf43] fix an errno stringification bug in taint mode
DEBPKG:fixes/safe-upgrade - http://bugs.debian.org/582978 Upgr
+ade Safe.pm to 2.25, fixing CVE-2010-1974
DEBPKG:fixes/tell-crash - http://bugs.debian.org/578577 [f4817
+f3] Fix a tell() crash on bad arguments.
DEBPKG:fixes/format-write-crash - http://bugs.debian.org/57953
+7 [perl #22977] [421f30e] Fix a crash in format/write
DEBPKG:fixes/arm-alignment - http://bugs.debian.org/289884 [f1
+c7503] Prevent gcc from optimizing the alignment test away on armel
DEBPKG:fixes/fcgi-test - Fix a failure in CGI/t/fast.t when FC
+GI is installed
DEBPKG:fixes/hurd-ccflags - http://bugs.debian.org/587901 Make
+ hints/gnu.sh append to $ccflags rather than overriding them
DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org
+/508764 Squelch locale warnings in Debian package maintainer scripts
DEBPKG:fixes/lc-numeric-docs - http://bugs.debian.org/379329 [
+perl #78452] [903eb63] LC_NUMERIC documentation fixes
DEBPKG:fixes/lc-numeric-sprintf - http://bugs.debian.org/60154
+9 [perl #78632] [b3fd614] Fix sprintf not to ignore LC_NUMERIC with c
+onstants
DEBPKG:fixes/concat-stack-corruption - http://bugs.debian.org/
+596105 [perl #78674] [e3393f5] Fix stack pointer corruption in pp_con
+cat() with 'use encoding'
DEBPKG:fixes/cgi-multiline-header - http://bugs.debian.org/606
+995 [CVE-2010-2761 CVE-2010-4410 CVE-2010-4411] CGI.pm MIME boundary
+and multiline header vulnerabilities
DEBPKG:fixes/h2ph-gcc-4.5 - http://bugs.debian.org/599933 [8d6
+6b3f] Fix h2ph and test
DEBPKG:fixes/threads-tmps-crash - [perl #70411] [24855df] Cond
+itionally compile tmps stack cleanup code
DEBPKG:patchlevel - http://bugs.debian.org/567489 List package
+d patches for 5.10.1-17ubuntu1 in patchlevel.h
Built under linux
Compiled at Apr 26 2011 15:56:28
@INC:
/etc/perl
/usr/local/lib/perl/5.10.1
/usr/local/share/perl/5.10.1
/usr/lib/perl5
/usr/share/perl5
/usr/lib/perl/5.10
/usr/share/perl/5.10
/usr/local/lib/site_perl