At 3:50 AM -0700 10/16/06, doug brann wrote: >I don't know if I'm sending this e-mail to the right place, but I am stuck on >a weird problem building a Perl module.
vmsperl is the right place. I believe vmsperl-help is just for help with the mailing list, not for help with Perl or VMS. > >I have a persistent perl executable based on the code found in the "perldoc >perlembed" example, and this executable will be running scripts that use a >Perl module that has a C extension that is making a call to an .obj that >contains FORTRAN code (how's that for confusing?). The .obj file is known >PersistentPerl, but is not known to PerlInterface. PerlInterface.XS contains a >prototype of the call to the FORTRAN routine, and a routine in >PerlInterface.XS contains the call to the routine. > >Believe it or not, the PerlInterface and PersistentPerl actually work as >desired under *NIX systems. That is, when a script with 'use PerlInterface' is >run under the PersistentPerl executable, a call to the FORTRAN routine behaves >exactly the way it's supposed to. If that same script is run by just typing >"perl [script].pl", the script can't compile. This is exactly what I need >this thing to do. You can do a 'perl Makefile.PL' and a 'make install', (but >not 'make test' obviously), and after that, PersistentPerl and PerlInterface >work perfectly. > >When I ported the whole thing over to VMS, everything worked. Almost. >PERSISTENTPERL compiled, and successfully linked all the FORTRAN .obj files. What did it link them into? Did it create a shareable image (aka dynamic library)? >I did a 'perl MAKEFILE.PL' and it created a DESCRIP.MMS for PERLINTERFACE. >Then I did an 'mms install' and got a headace. > >%LINK-W-USEUNDEF UNDEFINED SYMBOL REFERRED IN MODULE PERLINTERFACE fiile >[....path to .olb file]PERLINTERFACE.OLB > >%MMS-F-ABORT PL_PERLINTERFACE.EXE CLI RETURNED ABORT STATUS %X10648268 > >I'm a real VMS novice, and mms is new to me as well, so I have no idea what is >going on here. It looks to me as though I'm missing some sort of explicit call >in my MAKEFILE.PL to ensure that my module doesn't try to resolve the lack of >the actual code the call is trying to make. > >Thanks for any help you can give me. Is there any code in PerlInterface that is expected to know how to locate a dynamic library at run-time, i.e., any dlopen() calls or similar? -- ________________________________________ Craig A. Berry mailto:[EMAIL PROTECTED] "... getting out of a sonnet is much more difficult than getting in." Brad Leithauser